Crittografa i segreti di Kubernetes con {aws} KMS su cluster esistenti - Amazon EKS

Aiutaci a migliorare questa pagina

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

Vuoi contribuire a questa guida per l'utente? Scegli il GitHub link Modifica questa pagina che si trova nel riquadro destro di ogni pagina. 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 {aws} KMS su cluster esistenti

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

  • Simmetria

  • Possibilità di crittografia e decrittografia dei dati

  • Creato nella stessa AWS regione del cluster

  • Se la chiave KMS è stata creata in un account diverso, il principale IAM dovrà avere accesso alla stessa.

Per ulteriori informazioni, consulta Consentire ai responsabili IAM di altri account di utilizzare una chiave KMS nella Key Management Service Developer Guide.AWS

avvertimento

Non è possibile disabilitare la crittografia segreta 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. Aprire la Console Amazon EKS.

  2. Scegli il cluster a cui 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 comando CLI. Sostituisci i example values con i valori in tuo possesso.

    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 dei segreti per un cluster esistente e la chiave KMS che utilizzi viene eliminata, non c'è modo di ripristinare il cluster. L'eliminazione della chiave KMS metterà definitivamente il cluster in uno stato degradato. Per ulteriori informazioni, consulta Eliminazione delle chiavi AWS KMS.

Nota

Per impostazione predefinita, il create-key comando crea una chiave KMS di crittografia simmetrica con una politica chiave che fornisce all'amministratore principale dell'account l'accesso alle azioni e alle AWS risorse KMS. Se si desidera ridurre l'ambito delle autorizzazioni, assicurarsi che le azioni kms:DescribeKey e kms:CreateGrant siano consentite nella policy per il principale che effettua la chiamata all'API create-cluster.

Per cluster che utilizzano la crittografia a busta KMS, sono necessarie le autorizzazioni kms:CreateGrant. La condizione non kms:GrantIsForAWSResource è supportata per l' CreateCluster azione e non deve essere utilizzata nelle politiche KMS per controllare kms:CreateGrant le autorizzazioni degli utenti che eseguono. CreateCluster