GKE su AWS utilizza AWS Key Management Service (KMS) per criptare i volumi EBS. GKE su AWS 1.7 e versioni successive supporta la crittografia dei volumi con chiavi master cliente (CMK) gestite dal cliente. GKE su AWS versioni 1.6.x e precedenti supportano solo le chiavi master del cliente gestite AWS.
Questo argomento descrive come configurare una CMK gestita dal cliente per criptare i volumi. Se non configuri CMK gestito dal cliente, GKE su AWS utilizza CMK gestite da AWS per impostazione predefinita.
Panoramica
I seguenti componenti di GKE su AWS supportano i volumi criptati CMK gestiti dal cliente:
- Volume root host bastion
- Volumi root del servizio di gestione
- Volumi di dati etcd del servizio di gestione
- Volumi root del piano di controllo del cluster utente
- Volumi di dati etcd del piano di controllo del cluster utente
- Volumi radice dei nodi del cluster utente
Puoi specificare le chiavi nella configurazione del servizio di gestione, del cluster e del pool di nodi.
Prerequisiti
Per utilizzare CMK gestito dal cliente per GKE su volumi root AWS, è necessario quanto segue:
- Autorizzazioni per creare o utilizzare un criterio delle chiavi KMS di AWS. Per maggiori informazioni, consulta Utilizzo dei criteri delle chiavi nel KMS AWS.
Crea un criterio della chiave
Le chiavi KMS di AWS devono avere un criterio delle chiavi che consenta a GKE su AWS di creare e leggere volumi criptati con una chiave CMK gestita dal cliente. Un criterio di esempio viene fornito nella sezione seguente. Per creare il criterio, svolgi i seguenti passaggi:
Dalla directory
anthos-aws
, utilizzaterraform
per ottenere l'ID del tuo servizio di gestione.cd anthos-aws terraform output cluster_id
L'output include l'ID servizio di gestione. Nell'esempio seguente, l'ID ègke-12345abc
.terraform output cluster_id
gke-12345abcCrea un criterio delle chiavi KMS di AWS con i seguenti contenuti:
{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_NUMBER:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow creating encrypted EBS volumes for EC2 use", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::ACCOUNT_NUMBER:role/gke-CLUSTER_ID-management", "arn:aws:iam::ACCOUNT_NUMBER:user/AWS_USER", "arn:aws:iam::ACCOUNT_NUMBER:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "ACCOUNT_NUMBER", "kms:ViaService": "ec2.AWS_REGION.amazonaws.com" } } }, { "Sid": "Allow attaching encrypted EBS volumes for EC2 Use", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::ACCOUNT_NUMBER:role/CLUSTER_ID-management", "arn:aws:iam::ACCOUNT_NUMBER:role/CLUSTER_ID-controlplane", "arn:aws:iam::ACCOUNT_NUMBER:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "ACCOUNT_NUMBER", "kms:ViaService": "ec2.AWS_REGION.amazonaws.com" } } } ] }
Sostituisci quanto segue:
ACCOUNT_NUMBER
: il numero del tuo account AWS, ad esempio1234567890
.CLUSTER_ID
: l'ID del tuo cluster di gestione GKE su AWS, ad esempiogke-12345678
.AWS_USER
: il tuo nome utente AWS.AWS_REGION
: la regione AWS in cui vengono eseguiti i cluster GKE, ad esempious-east1
.
Configurazione delle risorse per l'utilizzo di una CMK gestita dal cliente
Questa sezione spiega come configurare CMK gestito dal cliente per GKE sui componenti AWS. Prima di eseguire l'upgrade dei componenti esistenti, consulta Utilizzo di CMK con i cluster esistenti.
Bastion host e servizio di gestione
Prima di configurare il servizio di gestione, devi configurare una CMK gestita dal cliente per il volume root del bastion host, il volume del servizio di gestione e i volumi di dati etcd del servizio di gestione in anthos-gke.yaml
. Per ulteriori informazioni, consulta Integrazione dell'infrastruttura esistente e la documentazione di riferimento per AWSManagementService.
Volumi del piano di controllo del cluster utente
Puoi configurare una chiave CMK gestita dal cliente per il piano di controllo del cluster utente e i volumi di dati etcd nella definizione di AWSCluster. Per maggiori informazioni, consulta la sezione sulla creazione di un cluster utente personalizzato.
Volumi radice dei nodi del cluster utente
Puoi configurare una chiave CMK gestita dal cliente sui volumi root dei nodi del cluster utente nella definizione di AWSNodePool. Per maggiori informazioni, consulta la sezione sulla creazione di un cluster utente personalizzato.
Utilizzo di CMK con i cluster esistenti
Puoi aggiungere la configurazione CMK gestita dal cliente ai seguenti componenti esistenti:
- Volume root host bastion
- Volumi root del servizio di gestione
- Volumi root del piano di controllo del cluster utente
- Volumi radice dei nodi del cluster utente
GKE su AWS ricrea questi volumi dopo una modifica di upgrade o configurazione. Per aggiungere la configurazione CMK gestita dal cliente ai componenti esistenti, segui le istruzioni in Upgrade di GKE su AWS. Quando modifichi la configurazione delle risorse, modifica i seguenti campi:
Risorsa | Campo |
---|---|
AWSManagementService | spec.rootVolume and spec.bastionHost.rootVolume |
AWSCluster | spec.controlPlane.rootVolume |
AWSNodePools | spec.rootVolume |
Quando completi l'upgrade, GKE su AWS crea nuove risorse con i volumi CMK gestiti dal cliente collegati.