Crittografa i segreti di Kubernetes con i cluster esistenti AWS KMS - Amazon EKS

Aiutaci a migliorare questa pagina

Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crittografa i segreti di Kubernetes con i cluster esistenti AWS KMS

Se abiliti la crittografia dei segreti, i segreti di Kubernetes vengono crittografati utilizzando la AWS KMS key selezionata. La KMS chiave deve soddisfare le seguenti condizioni:

  • Simmetria

  • Possibilità di crittografia e decrittografia dei dati

  • Creato nello Regione AWS stesso ambiente del cluster

  • Se la KMS chiave è stata creata in un account diverso, il IAMprincipale deve avere accesso alla KMS chiave.

Per ulteriori informazioni, consulta IAMConsentire ai responsabili di altri account di utilizzare una KMS chiave nella Guida per gli AWS Key Management Service sviluppatori.

avvertimento

Non è possibile disabilitare la crittografia dei segreti dopo averla abilitata. Questa operazione è irreversibile.

eksctl

È possibile abilitare la crittografia in due modi:

  • Aggiungere la crittografia al cluster con un singolo comando.

    Per ricrittografare automaticamente i segreti, esegui il comando seguente.

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

    Per disattivare la ricrittografia automatica dei segreti, esegui il comando seguente.

    eksctl utils enable-secrets-encryption --cluster my-cluster \ --key-arn arn:aws:kms:region-code:account:key/key \ --encrypt-existing-secrets=false
  • Aggiungi la crittografia al cluster con un file kms-cluster.yaml.

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

    Per ricrittografare automaticamente i segreti, esegui il comando seguente.

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

    Per disattivare la ricrittografia automatica dei segreti, esegui il comando seguente.

    eksctl utils enable-secrets-encryption -f kms-cluster.yaml --encrypt-existing-secrets=false
AWS Management Console
  1. Apri la EKS console Amazon a https://console.aws.amazon.com/eks/home#/clusters.

  2. Scegli il cluster a cui desideri aggiungere la crittografia. KMS

  3. Scegli la scheda Overview (Panoramica) (selezionata per impostazione predefinita).

  4. Scorri verso il basso fino a Secrets encryption (Crittografia dei segreti) e scegli Enable (Abilita).

  5. Seleziona una chiave nell'elenco a discesa e fare clic sul pulsante Enable (Abilita). Se non sono elencate chiavi, è necessario crearne una prima. Per ulteriori informazioni, consultare Creazione chiavi

  6. Fai clic sul pulsante Confirm (Conferma) per utilizzare la chiave scelta.

AWS CLI
  1. Associa la configurazione di crittografia segreta al tuo cluster utilizzando il seguente AWS CLI comando. Sostituisci il valori di esempio con il tuo.

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

    Di seguito viene riportato un output di esempio:

    {   "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": []   } }
  2. È possibile monitorare lo stato dell'aggiornamento di crittografia con il comando seguente. Usa il cluster name specifico e il valore update ID restituito nell'output precedente. Quando viene visualizzato lo stato Successful, l'aggiornamento è completo.

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

    Di seguito viene riportato un output di esempio:

    {   "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": []   } }
  3. Per verificare che la crittografia sia attivata nel cluster, eseguire il comando describe-cluster. La risposta contiene una stringa EncryptionConfig.

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

Dopo aver abilitato la crittografia nel cluster, sarà necessario crittografare tutti i segreti esistenti con la nuova chiave:

Nota

È necessario eseguire il comando seguente soltanto se si utilizza eksctl e la crittografia automatica dei segreti è disattivata.

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

Se abiliti la crittografia segreta per un cluster esistente e la KMS chiave che usi viene eliminata, non c'è modo di ripristinare il cluster. Se elimini la KMS chiave, metti definitivamente il cluster in uno stato degradato. Per ulteriori informazioni, consulta AWS KMSEliminazione delle chiavi.

Nota

Per impostazione predefinita, il create-key comando crea una KMSchiave di crittografia simmetrica con una politica chiave che consente all'amministratore principale dell'account di accedere ad AWS KMS azioni e risorse. Se desideri limitare le autorizzazioni, assicurati che le kms:CreateGrant azioni kms:DescribeKey e siano consentite nella politica del principale che chiama il. create-cluster API

Per i cluster che utilizzano KMS Envelope Encryption, sono necessarie le kms:CreateGrant autorizzazioni. La condizione non kms:GrantIsForAWSResource è supportata per l' CreateClusterazione e non deve essere utilizzata nelle KMS politiche per controllare le kms:CreateGrant autorizzazioni degli utenti che eseguono. CreateCluster