Abilitazione della crittografia segreta dei dati in transito su un cluster esistente - Amazon EKS

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

Abilitazione della crittografia segreta dei dati in transito su un cluster esistente

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

  • Simmetria

  • Possibilità di crittografia e decrittografia dei dati

  • Creazione nella stessa Regione AWS del cluster

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

Per ulteriori informazioni, consulta Autorizzazione per i principali IAM in altri account di utilizzare una chiave KMS nella Guida per gli sviluppatori di AWS Key Management Service.

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 console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  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 dei segreti con il cluster utilizzando il comando AWS 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 si abilita la crittografia dei segreti per un cluster esistente e la chiave KMS utilizzata non viene mai eliminata, non sarà possibile ripristinare il cluster. L'eliminazione della chiave KMS metterà definitivamente il cluster in uno stato degradato. Per ulteriori informazioni, consultare Eliminazione di chiavi KMS AWS.

Nota

Per impostazione predefinita, il comando create-key crea una chiave KMS con crittografia simmetrica con una policy della chiave che consente all'amministratore principale dell'account di accedere alle azioni e alle risorse AWS 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' CreateClusterazione e non deve essere utilizzata nelle politiche KMS per controllare le kms:CreateGrant autorizzazioni degli utenti che eseguono. CreateCluster