Panoramica
GKE su AWS utilizza chiavi simmetriche AWS Key Management Service (KMS) gestite dal cliente per criptare:
- Dati di stato di Kubernetes in etcd
- Istanza EC2 dati utente
- Volumi EBS per la crittografia dei dati at-rest del piano di controllo e del pool di nodi
Per gli ambienti di produzione, consigliamo di utilizzare chiavi diverse per la configurazione e la crittografia dei volumi. Per ridurre ulteriormente i rischi in caso di compromissione di una chiave, puoi anche creare chiavi diverse per ciascuno dei seguenti elementi:
- Configurazione del control plane del cluster
- Database del piano di controllo del cluster
- Volume principale del control plane del cluster
- Volume root del control plane del cluster
- Configurazione del node pool
- Volume root del node pool
Per una maggiore sicurezza, puoi creare una policy della chiave AWS KMS che assegna solo il set minimo richiesto di autorizzazioni. Per ulteriori informazioni, consulta Creazione di chiavi KMS con autorizzazioni specifiche.
Creazione di una chiave KMS AWS
Per creare una chiave, esegui questo comando:
aws --region AWS_REGION kms create-key \
--description "KEY_DESC"
Sostituisci quanto segue:
AWS_REGION
con il nome della tua regione AWSKEY_DESC
con una descrizione testuale della chiave
Per ogni chiave creata, salva il valore denominato KeyMetadata.Arn
nell'output di questo comando per utilizzarlo in un secondo momento.
Creazione di chiavi KMS con autorizzazioni specifiche
Se crei chiavi separate per funzioni diverse, devi fornire un'norma della chiave KMS per ogni chiave che conceda le autorizzazioni appropriate per quella chiave. Se non specifica un criterio della chiave quando crei una chiave, AWS KMS creerà un criterio della chiave predefinito che concede a tutte le entità nell'account proprietario l'accesso illimitato a tutte le operazioni per la chiave.
Quando crei una policy della chiave, devi consentire a una policy AWS IAM di accedere alla policy della chiave. Le norme relative alle chiavi devono inoltre concedere al tuo account le autorizzazioni per utilizzare le norme IAM. Senza l'autorizzazione della policy della chiave, le policy IAM che consentono le autorizzazioni non hanno alcun effetto. Per ulteriori informazioni, consulta Policy delle chiavi in AWS KMS.
La tabella seguente descrive le autorizzazioni per ciascuno dei ruoli IAM AWS utilizzati da GKE su AWS.
Ruolo dell'agente di servizio API GKE Multi-cloud | Ruolo del control plane | Ruolo del node pool | Ruolo di servizio AWS per la scalabilità automatica | |
---|---|---|---|---|
Crittografia della configurazione del control plane del cluster | kms:Encrypt | kms:Decrypt | N/D | N/D |
Crittografia del database del control plane del cluster | N/D | kms:Encrypt kms:Decrypt |
N/D | N/D |
Crittografia del volume principale del control plane del cluster | kms:GenerateDataKeyWithoutPlaintext | kms:CreateGrant | N/D | N/D |
Crittografia del volume root del control plane del cluster | N/D | N/D | N/D | Vedi Sezioni delle norme relative alle chiavi che consentono l'accesso alla chiave gestita dal cliente |
Crittografia della configurazione del node pool | kms:Encrypt | N/D | kms:Decrypt | N/D |
Crittografia del volume root del node pool | N/D | N/D | N/D | Vedi Sezioni delle norme relative alle chiavi che consentono l'accesso alla chiave gestita dal cliente |
Altri requisiti | kms:DescribeKey | N/D | N/D | N/D |