

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.

# Schritt 1: Den Amazon EKS-Cluster konfigurieren und IAM-Berechtigungen einrichten
<a name="EKS-tutorial-step1"></a>

**Konfigurieren Sie den Amazon EKS-Cluster und erstellen Sie die IAM-Ressourcen, die erforderlich sind, damit ein Amazon EKS-Servicekonto eine Verbindung zu Ihrer Amazon Keyspaces-Tabelle herstellen kann.**

1. Erstellen Sie einen Open ID Connect (OIDC) -Anbieter für den Amazon EKS-Cluster. Dies ist erforderlich, um IAM-Rollen für Dienstkonten zu verwenden. *Weitere Informationen zu OIDC-Anbietern und deren Erstellung finden Sie unter [Erstellen eines IAM-OIDC-Anbieters für Ihren Cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) im Amazon EKS-Benutzerhandbuch.*

   1. Erstellen Sie einen IAM-OIDC-Identitätsanbieter für Ihren Cluster mit dem folgenden Befehl. In diesem Beispiel wird davon ausgegangen, dass Ihr Clustername lautet. `my-eks-cluster` Wenn Sie einen Cluster mit einem anderen Namen haben, denken Sie daran, den Namen in allen future Befehlen zu aktualisieren.

      ```
      eksctl utils associate-iam-oidc-provider --cluster my-eks-cluster --approve 
      ```

   1. Bestätigen Sie mit dem folgenden Befehl, dass der OIDC-Identitätsanbieter bei IAM registriert wurde.

      ```
      aws iam list-open-id-connect-providers --region us-east-1
      ```

      Die Ausgabe sollte in etwa so aussehen. Notieren Sie sich den Amazon Resource Name (ARN) des OIDC. Sie benötigen ihn im nächsten Schritt, wenn Sie eine Vertrauensrichtlinie für das Servicekonto erstellen.

      ```
      {
          "OpenIDConnectProviderList": [
              ..
              {
                  "Arn": "arn:aws:iam::111122223333:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE"
              }
          ]
      }
      ```

1. Erstellen Sie ein Dienstkonto für den Amazon EKS-Cluster. Dienstkonten bieten eine Identität für Prozesse, die in einem *Pod* ausgeführt werden. Ein Pod ist das kleinste und einfachste Kubernetes-Objekt, mit dem Sie eine containerisierte Anwendung bereitstellen können. Erstellen Sie als Nächstes eine IAM-Rolle, die das Dienstkonto übernehmen kann, um Berechtigungen für Ressourcen zu erhalten. Sie können auf jeden AWS Dienst von einem Pod aus zugreifen, der für die Verwendung eines Dienstkontos konfiguriert wurde, das eine IAM-Rolle mit Zugriffsberechtigungen für diesen Dienst übernehmen kann.

   1. Erstellen Sie einen neuen Namespace für das Dienstkonto. Ein Namespace hilft dabei, Clusterressourcen zu isolieren, die für dieses Tutorial erstellt wurden. Mit dem folgenden Befehl können Sie einen neuen Namespace erstellen.

      ```
      kubectl create namespace my-eks-namespace
      ```

   1. Um einen benutzerdefinierten Namespace zu verwenden, müssen Sie ihn mit einem Fargate-Profil verknüpfen. Der folgende Code ist ein Beispiel dafür.

      ```
      eksctl create fargateprofile \
          --cluster my-eks-cluster \
          --name my-fargate-profile \
          --namespace my-eks-namespace \
          --labels *=*
      ```

   1. Erstellen Sie mithilfe des folgenden Befehls ein Dienstkonto mit dem Namen `my-eks-serviceaccount` im Namespace `my-eks-namespace` für Ihren Amazon EKS-Cluster.

      ```
      cat >my-serviceaccount.yaml <<EOF
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: my-eks-serviceaccount
        namespace: my-eks-namespace
      EOF
      kubectl apply -f my-serviceaccount.yaml
      ```

   1. Führen Sie den folgenden Befehl aus, um eine Vertrauensrichtliniendatei zu erstellen, die die IAM-Rolle anweist, Ihrem Servicekonto zu vertrauen. Diese Vertrauensstellung ist erforderlich, bevor ein Principal eine Rolle übernehmen kann. Sie müssen die folgenden Änderungen an der Datei vornehmen:
      + Geben Sie für den `Principal` den ARN ein, den IAM an den `list-open-id-connect-providers` Befehl zurückgegeben hat. Die ARN enthält Ihre Kontonummer und Region.
      + Ersetzen Sie in der `condition` Erklärung die AWS-Region und die OIDC-ID.
      + Vergewissern Sie sich, dass der Name und der Namespace des Dienstkontos korrekt sind.

      Sie müssen die Vertrauensrichtliniendatei im nächsten Schritt anhängen, wenn Sie die IAM-Rolle erstellen.

      ```
      cat >trust-relationship.json <<EOF
      {
          "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:sub": "system:serviceaccount:my-eks-namespace:my-eks-serviceaccount",
                          "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"
                      }
                  }
              }
          ]
      }
      EOF
      ```

      Optional: Sie können den `StringLike` Bedingungen `StringEquals` oder auch mehrere Einträge hinzufügen, damit mehrere Dienstkonten oder Namespaces die Rolle übernehmen können. Informationen dazu, dass Ihr Servicekonto eine IAM-Rolle in einem anderen AWS Konto übernehmen kann, finden Sie unter [Kontoübergreifende IAM-Berechtigungen](https://docs.aws.amazon.com/eks/latest/userguide/cross-account-access.html) im *Amazon EKS-Benutzerhandbuch*.

1. Erstellen Sie eine IAM-Rolle mit dem Namen`my-iam-role`, den das Amazon EKS-Servicekonto annehmen soll. Hängen Sie die im letzten Schritt erstellte Vertrauensrichtlinien-Datei an die Rolle an. Die Vertrauensrichtlinie gibt das Dienstkonto und den OIDC-Anbieter an, denen die IAM-Rolle vertrauen kann. 

   ```
   aws iam create-role --role-name my-iam-role --assume-role-policy-document file://trust-relationship.json --description "EKS service account role"
   ```

1. Weisen Sie Amazon Keyspaces die IAM-Rollenberechtigungen zu, indem Sie eine Zugriffsrichtlinie anhängen. 

   1. Fügen Sie eine Zugriffsrichtlinie hinzu, um die Aktionen zu definieren, die die IAM-Rolle für bestimmte Amazon Keyspaces-Ressourcen ausführen kann. Für dieses Tutorial verwenden wir die AWS verwaltete Richtlinie`AmazonKeyspacesFullAccess`, da unsere Anwendung Daten in Ihre Amazon Keyspaces-Tabelle schreibt. Als bewährte Methode wird jedoch empfohlen, benutzerdefinierte Zugriffsrichtlinien zu erstellen, die das Prinzip der geringsten Rechte umsetzen. Weitere Informationen finden Sie unter [So funktioniert Amazon Keyspaces mit IAM](security_iam_service-with-iam.md).

      ```
      aws iam attach-role-policy --role-name my-iam-role --policy-arn=arn:aws:iam::aws:policy/AmazonKeyspacesFullAccess
      ```

      Bestätigen Sie mit der folgenden Erklärung, dass die Richtlinie erfolgreich an die IAM-Rolle angehängt wurde.

      ```
      aws iam list-attached-role-policies --role-name my-iam-role
      ```

      Die Ausgabe sollte wie folgt aussehen.

      ```
      {
          "AttachedPolicies": [
              {
                  "PolicyName": "AmazonKeyspacesFullAccess",
                  "PolicyArn": "arn:aws:iam::aws:policy/AmazonKeyspacesFullAccess"
              }
          ]
      }
      ```

   1. Versehen Sie das Dienstkonto mit dem Amazon-Ressourcennamen (ARN) der IAM-Rolle, die es annehmen kann. Achten Sie darauf, den Rollen-ARN mit Ihrer Konto-ID zu aktualisieren.

      ```
      kubectl annotate serviceaccount -n my-eks-namespace my-eks-serviceaccount eks.amazonaws.com/role-arn=arn:aws:iam::111122223333:role/my-iam-role
      ```

1. Vergewissern Sie sich, dass die IAM-Rolle und das Dienstkonto korrekt konfiguriert sind.

   1. Stellen Sie mit der folgenden Anweisung sicher, dass die Vertrauensrichtlinie der IAM-Rolle korrekt konfiguriert ist.

      ```
      aws iam get-role --role-name my-iam-role --query Role.AssumeRolePolicyDocument
      ```

      Die Ausgabe sollte in etwa so aussehen.

      ```
      {
          "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/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com",
                          "oidc.eks.us-east-1.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:my-eks-namespace:my-eks-serviceaccount"
                      }
                  }
              }
          ]
      }
      ```

   1. Vergewissern Sie sich, dass das Amazon EKS-Servicekonto mit der IAM-Rolle versehen ist.

      ```
      kubectl describe serviceaccount my-eks-serviceaccount -n my-eks-namespace
      ```

      Die Ausgabe sollte in etwa so aussehen.

      ```
      Name: my-eks-serviceaccount 
      Namespace:my-eks-namespace
      Labels: <none>
      Annotations: eks.amazonaws.com/role-arn: arn:aws:iam::111122223333:role/my-iam-role 
      Image pull secrets: <none> 
      Mountable secrets: <none> 
      Tokens: <none> 
      [...]
      ```

Nachdem Sie das Amazon EKS-Servicekonto und die IAM-Rolle erstellt und die erforderlichen Beziehungen und Berechtigungen konfiguriert haben, fahren Sie mit fort[Schritt 2: Konfigurieren Sie die Anwendung](EKS-tutorial-step2.md).