Durch die Nutzung von AWS re:Post stimmt du den AWS re:Post Nutzungsbedingungen

Wie schränke ich CIDR-IP-Adressen für einen Dienst vom Typ LoadBalancer in Amazon EKS ein?

Lesedauer: 3 Minute
0

Ich möchte die CIDR-IP-Adressen für einen Dienst vom Typ LoadBalancer in Amazon Elastic Kubernetes Service (Amazon EKS) einschränken.

Kurzbeschreibung

Wenn Sie einen Dienst der Art LoadBalancer erstellen, sind Anfragen von der Quelle 0.0.0.0/0 standardmäßig zulässig. Wenn sich der Load Balancer in einem öffentlichen Subnetz befindet, werden Anfragen von überall im Internet an Worker-Knoten weitergeleitet.

Um die Quelle statt 0.0.0.0/0 einzuschränken, verwenden Sie loadBalancerSourceRanges.

Behebung

**Anmerkung:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, finden Sie weitere Informationen unter Troubleshoot AWS CLI errors. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.

Ihre Umgebung einrichten

Gehen Sie wie folgt vor, um Ihre Umgebung einzurichten:

  1. Erstellen Sie einen Amazon EKS-Cluster.
  2. Erstellen Sie Worker-Knoten, und starten Sie sie dann.
  3. Richten Sie kubectl ein.
  4. Richten Sie die AWS CLI ein.
  5. Stellen Sie den AWS Load Balancer Controller ein.
    **Anmerkung:**Für den Dienst der Art LoadBalancer unterstützt der AWS Load Balancer Controller den Network Load Balancer (NLB) IP-Modus Version 2.0.0 oder höher und den NLB-Instance-Modus 2.2.0 oder höher.

Wichtig: Um einen neuen Network Load Balancer für Dienste der Art LoadBalancer zuzuweisen, empfiehlt es sich, den AWS Load Balancer Controller anstelle des Kubernetes Service-Load-Balancer-Controllers zu verwenden. Die neueste Version des AWS Balancer Controllers finden Sie unter aws-load-balancer-controller auf der GitHub-Website.

CIDR-IP-Adressen einschränken

Wählen Sie eine der folgenden Methoden, um die loadBalancerSourceRanges anzugeben.

Eine Anmerkung verwenden

Verwenden Sie eine Anmerkung in Ihrer Dienst-Manifestdatei (svc.yaml).

Beispiel für eine Anmerkung:

service.beta.kubernetes.io/load-balancer-source-ranges: 143.231.0.0/16

Weitere Informationen finden Sie unter Zugriffskontrolle auf der Kubernetes-Website.

Hinzufügen des Felds LoadBalancerSourceRanges

  1. Fügen Sie das Feld .spec.loadBalancerSourceRanges in Ihre svc.yaml-Datei ein:

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: nginx
      name: nginx
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-type: "external"
        service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "instance"
        service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx
      type: LoadBalancer
      loadBalancerSourceRanges:
      - "143.231.0.0/16"
  2. Führen Sie den folgenden Befehl aus, um Ihre svc.yaml-Datei anzuwenden:

    $ kubectl apply -f svc.yaml

    Führen Sie den folgenden Befehl aus, um die Pod-Protokolle des AWS Load Balancer Controllers zu überprüfen:

    $ kubectl logs -f <aws load balancer controller pod> -n <namespace>
  3. Der AWS Load Balancer Controller fügt die konfigurierten Load Balancer-Quellbereiche zu den eingehenden Regeln der Sicherheitsgruppe hinzu. Führen Sie den folgenden AWS-CLI-Befehl aus, um zu bestätigen, dass die eingehenden Regeln für die Sicherheitsgruppe geändert wurden:

    $ aws ec2 describe-security-groups --group-ids sg-XXXXXXXXXXXXXXXXX
    ...
        "CidrIp": "143.231.0.0/16"
    ...
  4. Wenn Sie einen Network Load Balancer im IP-Modus verwenden, wird das Feld .spec.loadBalancerSourceRanges standardmäßig ignoriert. Verwenden Sie in diesem Fall die folgende Anmerkung, um die Client-IP-Erhaltung zu aktivieren:

    service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: preserve_client_ip.enabled=true

    Für einen Dienst mit einer Network Load Balancer-Art möchten Sie möglicherweise das maximale Sicherheitsgruppenlimit erhöhen. Für jeden Knotenport und jeden Subnetz-CIDR-Bereich erstellt der Controller Regeln für die Sicherheitsgruppe des Worker-Knotens. Weitere Informationen finden Sie unter Eingehender Datenverkehr auf der Kubernetes-Website.

    Anmerkung: Für einen Dienst mit einer Network Load Balancer-Art möchten Sie möglicherweise das maximale Sicherheitsgruppenquote erhöhen. Für jeden Knotenport und jeden Subnetz-CIDR-Bereich erstellt der Controller Regeln für die Sicherheitsgruppe des Worker-Knotens. Sie haben beispielsweise Worker-Knoten in drei Availability Zones. Sie fügen einen loadBalancerSourceRange hinzu. Drei Integritätsprüfungsregeln (eine pro Subnetz) und eine loadBalancerSourceRange-Regel werden in der Sicherheitsgruppe des Worker-Knotens erstellt. Sicherheitsgruppen haben ein Standardlimit von 60 Regeln. Sie können diese Quote erhöhen, aber die Gesamtzahl der Sicherheitsgruppen pro Netzwerkschnittstelle darf 1.000 nicht überschreiten.

Ähnliche Informationen

Benutzern den Zugriff auf Ihren Cluster ermöglichen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten