

 **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.

# Verschlüsselung von Kubernetes-Geheimnissen mit KMS in vorhandenen Clustern
<a name="enable-kms"></a>

**Wichtig**  
Dieses Verfahren gilt nur für EKS-Cluster, auf denen Kubernetes Version 1.27 oder niedriger ausgeführt wird. Wenn Sie Kubernetes Version 1.28 oder höher ausführen, werden Ihre Kubernetes-Geheimnisse standardmäßig durch Umschlagverschlüsselung geschützt. Weitere Informationen finden Sie unter [Standardmäßige Umschlagverschlüsselung für alle Kubernetes-API-Daten](envelope-encryption.md).

Wenn Sie die [Verschlüsselung von Geheimnissen](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) aktivieren, werden die Kubernetes-Geheimnisse mit dem von Ihnen ausgewählten AWS KMS-Schlüssel verschlüsselt. Der KMS-Schlüssel muss die folgenden Bedingungen erfüllen:
+ Symmetrisch
+ Kann Daten verschlüsseln und entschlüsseln
+ In derselben AWS Region wie der Cluster erstellt
+ Wenn der KMS-Schlüssel in einem anderen Konto erstellt wurde, muss der [IAM-Prinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) Zugriff auf den KMS-Schlüssel haben.

Weitere Informationen finden Sie unter [Zulassen, dass IAM-Prinzipale in anderen Konten einen KMS-Schlüssel verwenden können im AWS Key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) *[Management Service Developer Guide](https://docs.aws.amazon.com/kms/latest/developerguide/)*.

**Warnung**  
Sie können die Verschlüsselung von Geheimnissen nicht deaktivieren, nachdem Sie sie aktiviert haben. Diese Aktion ist unumkehrbar.

eksctl   
Dieses Verfahren gilt nur für EKS-Cluster, auf denen Kubernetes Version 1.27 oder niedriger ausgeführt wird. Weitere Informationen finden Sie unter [Standardmäßige Umschlagverschlüsselung für alle Kubernetes-API-Daten](envelope-encryption.md).

Sie können die Verschlüsselung auf zwei Arten aktivieren:
+ Fügen Sie Ihrem Cluster mit einem einzigen Befehl Verschlüsselung hinzu.

  Um Ihre Secrets automatisch erneut zu verschlüsseln, führen Sie den folgenden Befehl aus.

  ```
  eksctl utils enable-secrets-encryption \
      --cluster my-cluster \
      --key-arn arn:aws: kms:region-code:account:key/key
  ```

  Um die automatische Neuverschlüsselung Ihrer Secrets zu deaktivieren, führen Sie den folgenden Befehl aus.

  ```
  eksctl utils enable-secrets-encryption
      --cluster my-cluster \
      --key-arn arn:aws: kms:region-code:account:key/key \
      --encrypt-existing-secrets=false
  ```
+ Fügen Sie Ihrem Cluster eine Verschlüsselung mit einer `kms-cluster.yaml`-Datei hinzu.

  ```
  apiVersion: eksctl.io/v1alpha5
  kind: ClusterConfig
  
  metadata:
    name: my-cluster
    region: region-code
  
  secretsEncryption:
    keyARN: arn:aws: kms:region-code:account:key/key
  ```

  Um Ihre Secrets automatisch erneut zu verschlüsseln, führen Sie den folgenden Befehl aus.

  ```
  eksctl utils enable-secrets-encryption -f kms-cluster.yaml
  ```

  Um die automatische Neuverschlüsselung Ihrer Secrets zu deaktivieren, führen Sie den folgenden Befehl aus.

  ```
  eksctl utils enable-secrets-encryption -f kms-cluster.yaml --encrypt-existing-secrets=false
  ```  
 AWS-Managementkonsole   

  1. Dieses Verfahren gilt nur für EKS-Cluster, auf denen Kubernetes Version 1.27 oder niedriger ausgeführt wird. Weitere Informationen finden Sie unter [Standardmäßige Umschlagverschlüsselung für alle Kubernetes-API-Daten](envelope-encryption.md).

  1. Öffnen Sie die [Amazon-EKS-Konsole](https://console.aws.amazon.com/eks/home#/clusters).

  1. Wählen Sie den Cluster aus, dem Sie die KMS-Verschlüsselung hinzufügen möchten.

  1. Wählen Sie die Registerkarte **Overview** (Übersicht) aus (sie ist standardmäßig ausgewählt).

  1. Scrollen Sie nach unten zum Abschnitt **Secrets encryption** (Secrets-Verschlüsselung) und wählen Sie **Enable** (Aktivieren) aus.

  1. Wählen Sie einen Schlüssel in der Dropdown-Liste und dann die Schaltfläche **Enable** (Aktivieren) aus. Wenn keine Schlüssel aufgeführt sind, müssen Sie zuerst einen erstellen. Weitere Informationen finden Sie unter [Erstellen von Schlüsseln](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) 

  1. Wählen Sie die Schaltfläche **Confirm** (Bestätigen) aus, um den ausgewählten Schlüssel zu verwenden.  
 AWS CLI  

  1. Dieses Verfahren gilt nur für EKS-Cluster, auf denen Kubernetes Version 1.27 oder niedriger ausgeführt wird. Weitere Informationen finden Sie unter [Standardmäßige Umschlagverschlüsselung für alle Kubernetes-API-Daten](envelope-encryption.md).

  1. Ordnen Sie die [Secrets-Verschlüsselungskonfiguration](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) mithilfe des folgenden AWS CLI-Befehls Ihrem Cluster zu. Ersetzen Sie die Beispielwerte durch Ihre eigenen Werte.

     ```
     aws eks associate-encryption-config \
         --cluster-name my-cluster \
         --encryption-config '[{"resources":["secrets"],"provider":{"keyArn":"arn:aws: kms:region-code:account:key/key"}}]'
     ```

     Eine Beispielausgabe sieht wie folgt aus.

     ```
     {
       "update": {
         "id": "3141b835-8103-423a-8e68-12c2521ffa4d",
         "status": "InProgress",
         "type": "AssociateEncryptionConfig",
         "params": [
           {
             "type": "EncryptionConfig",
             "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws: kms:region-code:account:key/key\"}}]"
           }
         ],
         "createdAt": 1613754188.734,
         "errors": []
       }
     }
     ```

  1. Sie können den Status Ihrer Verschlüsselungsaktualisierung mit dem folgenden Befehl überwachen. Verwenden Sie den `cluster name` und die `update ID`, die in der vorherigen Ausgabe zurückgegeben wurden. Wenn der Status `Successful` angezeigt wird, ist das Update abgeschlossen.

     ```
     aws eks describe-update \
         --region region-code \
         --name my-cluster \
         --update-id 3141b835-8103-423a-8e68-12c2521ffa4d
     ```

     Eine Beispielausgabe sieht wie folgt aus.

     ```
     {
       "update": {
         "id": "3141b835-8103-423a-8e68-12c2521ffa4d",
         "status": "Successful",
         "type": "AssociateEncryptionConfig",
         "params": [
           {
             "type": "EncryptionConfig",
             "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws: kms:region-code:account:key/key\"}}]"
           }
         ],
         "createdAt": 1613754188.734>,
         "errors": []
       }
     }
     ```

  1. Führen Sie den Befehl `describe-cluster` aus, um zu überprüfen, ob die Verschlüsselung in Ihrem Cluster aktiviert ist. Die Antwort enthält eine `EncryptionConfig`-Zeichenfolge.

     ```
     aws eks describe-cluster --region region-code --name my-cluster
     ```

Nachdem Sie die Verschlüsselung in Ihrem Cluster aktiviert haben, müssen Sie alle vorhandenen Secrets mit dem neuen Schlüssel verschlüsseln:

**Anmerkung**  
Wenn Sie `eksctl` verwenden, ist die Ausführung des folgenden Befehls nur dann erforderlich, wenn Sie die automatische Neuverschlüsselung Ihrer Secrets deaktivieren.

```
kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - kms-encryption-timestamp="time value"
```

**Warnung**  
Wenn Sie die [Geheimnisverschlüsselung](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) für einen vorhandenen Cluster aktivieren und der von Ihnen verwendete KMS-Schlüssel jemals gelöscht wird, können Sie den Cluster nicht wiederherstellen. Wenn Sie den KMS-Schlüssel löschen, wird der Cluster dauerhaft auf einen degradierten Zustand festgelegt. Weitere Informationen finden Sie unter [Löschen von AWS KMS-Schlüsseln](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html).

**Anmerkung**  
Standardmäßig erstellt der `create-key` Befehl einen [KMS-Schlüssel mit symmetrischer Verschlüsselung und einer Schlüsselrichtlinie](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html), die dem Konto Root-Administratorzugriff auf AWS KMS-Aktionen und -Ressourcen gewährt. Wenn Sie die Berechtigungen begrenzen möchten, müssen Sie sicherstellen, dass die Aktionen `kms:DescribeKey` und `kms:CreateGrant` für die Richtlinie für den Prinzipal zulässig sind, der die API `create-cluster` aufruft.  
Für Cluster, die KMS-Umschlagverschlüsselung verwenden, sind `kms:CreateGrant`-Berechtigungen erforderlich. Die Bedingung `kms:GrantIsForAWSResource` wird für die CreateCluster Aktion nicht unterstützt und sollte nicht in KMS-Richtlinien zur Steuerung der `kms:CreateGrant` Berechtigungen von Benutzern verwendet werden, die diese Aktion ausführen CreateCluster.