

 **Unterstützung für die Verbesserung dieser Seite beitragen** 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link **Diese Seite bearbeiten auf**, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfiguration des Amazon-VPC-CNI-Plugins für die Verwendung von IRSA
<a name="cni-iam-role"></a>

Das [Amazon VPC CNI-Plug-in für Kubernetes](https://github.com/aws/amazon-vpc-cni-k8s) ist das Netzwerk-Plug-In für Pod-Netzwerke in Amazon-EKS-Clustern. Das Plugin ist für die Zuweisung von VPC-IP-Adressen zu Kubernetes-Pods und die Konfiguration der erforderlichen Vernetzung für Pods auf jedem Knoten verantwortlich.

**Anmerkung**  
Das Amazon-VPC-CNI-Plugin unterstützt auch Amazon EKS Pod Identities. Weitere Informationen finden Sie unter [Zuordnung einer IAM-Rolle einem Kubernetes-Servicekonto](pod-id-association.md).

Das Plugin:
+ Erfordert AWS Identity and Access Management (IAM) -Berechtigungen. Wenn Ihr Cluster die `IPv4` Familie verwendet, sind die Berechtigungen in der [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html) AWS verwalteten Richtlinie angegeben. Wenn Ihr Cluster die `IPv6`-Familie verwendet, müssen die Berechtigungen einer von Ihnen erstellten IAM-Richtlinie hinzugefügt werden. Anweisungen finden Sie unter [Erstellen Sie eine IAM-Richtlinie für Cluster, die die `IPv6`-Familie verwendet](#cni-iam-role-create-ipv6-policy). Sie können diese Richtlinie der Amazon-EKS-Knoten-IAM-Rolle oder einer separaten IAM-Rolle anfügen. Anweisungen zum Anfügen der Richtlinie an die IAM-Rolle des Amazon-EKS-Knotens finden Sie unter [Amazon-EKS-Knoten-IAM-Rolle](create-node-role.md). Wir empfehlen Ihnen, sie einer separaten Rolle zuzuweisen, wie in diesem Thema beschrieben.
+ Erstellt und konfiguriert ein Kubernetes-Servicekonto mit dem Namen `aws-node`, wenn es bereitgestellt wird. Das Servicekonto ist an ein Kubernetes `clusterrole` namens `aws-node` gebunden, dem die erforderlichen Kubernetes-Berechtigungen zugewiesen sind.

**Anmerkung**  
Die Pods für das Amazon-VPC-CNI-Plugin für Kubernetes haben Zugriff auf die der [IAM-Rolle des Amazon-EKS-Knotens](create-node-role.md) zugewiesenen Berechtigungen, sofern Sie den Zugriff auf IMDS nicht blockieren Weitere Informationen finden Sie unter [Beschränken Sie den Zugriff auf das Instance-Profil, das dem Worker-Knoten zugewiesen ist](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#restrict-access-to-the-instance-profile-assigned-to-the-worker-node).
+ Erfordert einen vorhandenen Amazon-EKS-Cluster. Informationen zum Bereitstellen finden Sie unter [Erste Schritte mit Amazon EKS](getting-started.md).
+ Erfordert einen vorhandenen AWS Identity and Access Management (IAM) OpenID Connect (OIDC) -Anbieter für Ihren Cluster. Informationen zum Feststellen, ob Sie bereits über einen verfügen oder einen erstellen müssen, finden Sie unter [Erstellen Sie einen IAM-OIDC-Anbieter für Ihren Cluster](enable-iam-roles-for-service-accounts.md).

## Schritt 1: Amazon-VPC-CNI-Plugin für die Kubernetes-IAM-Rolle erstellen
<a name="cni-iam-role-create-role"></a>

1. Ermitteln Sie die IP-Familie Ihres Clusters.

   ```
   aws eks describe-cluster --name my-cluster | grep ipFamily
   ```

   Eine Beispielausgabe sieht wie folgt aus.

   ```
   "ipFamily": "ipv4"
   ```

   Die Ausgabe kann stattdessen `ipv6` zurückgeben.

1. Erstellen Sie die IAM-Rolle. Sie können `eksctl` oder `kubectl` und die AWS CLI verwenden, um Ihre IAM-Rolle zu erstellen.  
eksctl  
   + Erstellen Sie eine IAM-Rolle und fügen Sie der Rolle die IAM-Richtlinie mit dem Befehl zu, der der IP-Familie Ihres Clusters entspricht. Der Befehl erstellt und stellt einen AWS CloudFormation Stack bereit, der eine IAM-Rolle erstellt, ihr die von Ihnen angegebene Richtlinie anhängt und das vorhandene `aws-node` Kubernetes-Dienstkonto mit dem ARN der erstellten IAM-Rolle annotiert.
     +  `IPv4` 

       Ersetzen Sie {{my-cluster}} durch Ihren eigenen Wert.

       ```
       eksctl create iamserviceaccount \
           --name aws-node \
           --namespace kube-system \
           --cluster my-cluster \
           --role-name AmazonEKSVPCCNIRole \
           --attach-policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \
           --override-existing-serviceaccounts \
           --approve
       ```
     +  `IPv6` 

       Ersetzen Sie {{my-cluster}} durch Ihren eigenen Wert. Ersetzen Sie {{111122223333}} durch den Namen Ihres Clusters und {{AmazonEKS\_CNI\_IPv6\_Policy}} durch Ihre `IPv6`-Richtlinie. Wenn Sie noch keine `IPv6`-Richtlinie haben, lesen Sie [Erstellen Sie eine IAM-Richtlinie für Cluster, die die `IPv6`-Familie verwendet](#cni-iam-role-create-ipv6-policy), um eine zu erstellen. Um `IPv6` mit Ihrem Cluster zu verwenden, muss dieser mehrere Anforderungen erfüllen. Weitere Informationen finden Sie unter [Erfahren Sie mehr über IPv6 Adressen für Cluster, Pods und Dienste](cni-ipv6.md).

       ```
       eksctl create iamserviceaccount \
           --name aws-node \
           --namespace kube-system \
           --cluster my-cluster \
           --role-name AmazonEKSVPCCNIRole \
           --attach-policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \
           --override-existing-serviceaccounts \
           --approve
       ```  
kubectl und die CLI AWS   

   1. Zeigen Sie die OIDC-Anbieter-URL Ihres Clusters an.

      ```
      aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text
      ```

      Eine Beispielausgabe sieht wie folgt aus.

      ```
      https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
      ```

      Wenn keine Ausgabe erfolgt, müssen Sie [einen IAM-OIDC-Anbieter für Ihr Cluster erstellen](enable-iam-roles-for-service-accounts.md).

   1. Kopieren Sie den folgenden Inhalt in eine Datei namens {{vpc-cni-trust-policy.json}}. Ersetzen Sie {{111122223333}} durch die ID Ihres Kontos und {{EXAMPLED539D4633E53DE1B71EXAMPLE}} durch den Wert, der im vorherigen Schritt zurückgegeben wurde. {{region-code}}Ersetzen Sie es durch die AWS Region, in der sich Ihr Cluster befindet.

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Federated": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
                  },
                  "Action": "sts:AssumeRoleWithWebIdentity",
                  "Condition": {
                      "StringEquals": {
                          "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com",
                          "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:aws-node"
                      }
                  }
              }
          ]
      }
      ```

   1. Erstellen Sie die Rolle. Sie können {{AmazonEKSVPCCNIRole}} mit einem beliebigen Namen ersetzen, den Sie wählen.

      ```
      aws iam create-role \
        --role-name AmazonEKSVPCCNIRole \
        --assume-role-policy-document file://"vpc-cni-trust-policy.json"
      ```

   1. Fügen Sie der Rolle die erforderliche IAM-Richtlinie an. Führen Sie den Befehl aus, der der IP-Familie Ihres Clusters entspricht.
      +  `IPv4` 

        ```
        aws iam attach-role-policy \
          --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \
          --role-name AmazonEKSVPCCNIRole
        ```
      +  `IPv6` 

        Ersetzen Sie {{111122223333}} durch den Namen Ihres Clusters und {{AmazonEKS\_CNI\_IPv6\_Policy}} durch Ihre `IPv6`-Richtlinie. Wenn Sie noch keine `IPv6`-Richtlinie haben, lesen Sie [Erstellen Sie eine IAM-Richtlinie für Cluster, die die `IPv6`-Familie verwendet](#cni-iam-role-create-ipv6-policy), um eine zu erstellen. Um `IPv6` mit Ihrem Cluster zu verwenden, muss dieser mehrere Anforderungen erfüllen. Weitere Informationen finden Sie unter [Erfahren Sie mehr über IPv6 Adressen für Cluster, Pods und Dienste](cni-ipv6.md).

        ```
        aws iam attach-role-policy \
          --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy \
          --role-name AmazonEKSVPCCNIRole
        ```

   1. Führen Sie den folgenden Befehl aus und fügen Sie dem `aws-node`-Servicekonto den ARN der IAM-Rolle hinzu, die Sie zuvor erstellt haben. Ersetzen Sie die Beispielwerte durch eigene Werte.

      ```
      kubectl annotate serviceaccount \
          -n kube-system aws-node \
          eks.amazonaws.com/role-arn=arn:aws: iam::111122223333:role/AmazonEKSVPCCNIRole
      ```

1. (Optional) Konfigurieren Sie den AWS Security Token Service-Endpunkttyp, der von Ihrem Kubernetes-Dienstkonto verwendet wird. Weitere Informationen finden Sie unter [Konfiguration des Endpunkts des AWS-Sicherheitstoken-Service für ein Servicekonto](configure-sts-endpoint.md).

## Schritt 2: Amazon-VPC-CNI-Plugin für Kubernetes-Pods erneut bereitstellen
<a name="cni-iam-role-redeploy-pods"></a>

1. Löschen Sie alle vorhandenen Pods, die dem Servicekonto zugeordnet sind, und erstellen Sie sie neu, um die Umgebungsvariablen für Anmeldeinformationen anzuwenden. Die Annotation wird nicht auf Pods angewendet, die derzeit ohne die Annotation ausgeführt werden. Mit dem folgenden Befehl werden die vorhandenen `aws-node` DaemonSet Pods gelöscht und mit der Anmerkung zum Dienstkonto bereitgestellt.

   ```
   kubectl delete Pods -n kube-system -l k8s-app=aws-node
   ```

1. Bestätigen Sie, dass alle Pods neu gestartet wurden.

   ```
   kubectl get pods -n kube-system -l k8s-app=aws-node
   ```

1. Beschreiben Sie einen der Pods und überprüfen Sie, ob die Umgebungsvariablen `AWS_WEB_IDENTITY_TOKEN_FILE` und `AWS_ROLE_ARN` vorhanden sind. {{cpjw7}}Ersetzen Sie ihn durch den Namen eines Ihrer Pods, der in der Ausgabe des vorherigen Schritts zurückgegeben wurde.

   ```
   kubectl describe pod -n kube-system aws-node-cpjw7 | grep 'AWS_ROLE_ARN:\|AWS_WEB_IDENTITY_TOKEN_FILE:'
   ```

   Eine Beispielausgabe sieht wie folgt aus.

   ```
   AWS_ROLE_ARN: arn:aws: iam::111122223333:role/AmazonEKSVPCCNIRole
         AWS_WEB_IDENTITY_TOKEN_FILE:  /var/run/secrets/eks.amazonaws.com/serviceaccount/token
         AWS_ROLE_ARN: arn:aws: iam::111122223333:role/AmazonEKSVPCCNIRole
         AWS_WEB_IDENTITY_TOKEN_FILE:            /var/run/secrets/eks.amazonaws.com/serviceaccount/token
   ```

   Zwei Sätze doppelter Ergebnisse werden zurückgegeben, da der Pod zwei Container enthält. Beide Container haben die gleichen Werte.

   Wenn Ihr Pod den AWS regionalen Endpunkt verwendet, wird die folgende Zeile auch in der vorherigen Ausgabe zurückgegeben.

   ```
   AWS_STS_REGIONAL_ENDPOINTS=regional
   ```

## Schritt 3: Entfernen Sie die CNI-Richtlinie aus der Knoten-IAM-Rolle
<a name="remove-cni-policy-node-iam-role"></a>

Wenn Ihrer [Amazon EKS-Knoten-IAM-Rolle](create-node-role.md) derzeit die `AmazonEKS_CNI_Policy` IAM (`IPv4`) -Richtlinie oder eine [IPv6 Richtlinie](#cni-iam-role-create-ipv6-policy) angehängt ist und Sie eine separate IAM-Rolle erstellt, ihr stattdessen die Richtlinie angehängt und sie dem `aws-node` Kubernetes-Servicekonto zugewiesen haben, empfehlen wir Ihnen, die Richtlinie mit dem AWS CLI-Befehl, der der IP-Familie Ihres Clusters entspricht, aus Ihrer Knotenrolle zu entfernen. Ersetzen Sie {{AmazonEKSNodeRole}} durch den Namen Ihrer Knotenrolle.
+  `IPv4` 

  ```
  aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy
  ```
+  `IPv6` 

  Ersetzen Sie {{111122223333}} durch den Namen Ihres Clusters und {{AmazonEKS\_CNI\_IPv6\_Policy}} durch Ihre `IPv6`-Richtlinie.

  ```
  aws iam detach-role-policy --role-name AmazonEKSNodeRole --policy-arn arn:aws: iam::111122223333:policy/AmazonEKS_CNI_IPv6_Policy
  ```

## Erstellen Sie eine IAM-Richtlinie für Cluster, die die `IPv6`-Familie verwendet
<a name="cni-iam-role-create-ipv6-policy"></a>

Wenn Sie einen Cluster erstellt haben, der die `IPv6`-Familie verwendet, und für den Cluster die Version `1.10.1` oder höher des Amazon-VPC-CNI-Plugins für das Kubernetes-Add-On konfiguriert ist, müssen Sie eine IAM-Richtlinie erstellen, die Sie einer IAM-Rolle zuweisen können. Wenn Sie einen vorhandenen Cluster haben, den Sie bei der Erstellung nicht mit der `IPv6`-Familie konfiguriert haben, müssen Sie zur Verwendung von `IPv6` einen neuen Cluster erstellen. Weitere Informationen zur Verwendung von `IPv6` mit Ihrem Cluster finden Sie unter [Erfahren Sie mehr über IPv6 Adressen für Cluster, Pods und Dienste](cni-ipv6.md).

1. Kopieren Sie den folgenden Text und speichern Sie ihn in einer Datei mit dem Namen `vpc-cni-ipv6-policy.json`.

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:AssignIpv6Addresses",
                   "ec2:DescribeInstances",
                   "ec2:DescribeTags",
                   "ec2:DescribeNetworkInterfaces",
                   "ec2:DescribeInstanceTypes"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateTags"
               ],
               "Resource": [
                   "arn:aws:ec2:*:*:network-interface/*"
               ]
           }
       ]
   }
   ```

1. Erstellen Sie die IAM-Richtlinie.

   ```
   aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json
   ```