O GKE na AWS usa o AWS Key Management Service (KMS) para encriptar volumes EBS. O GKE na AWS 1.7 e superior suporta a encriptação de volumes com chaves mestras do cliente (CMKs) geridas pelo cliente. As versões 1.6.x e inferiores do GKE on AWS suportam apenas chaves mestras do cliente geridas pela AWS.
Este tópico descreve como configurar a CMK gerida pelo cliente para encriptar volumes. Se não configurar a CMK gerida pelo cliente, o GKE no AWS usa CMKs geridas pela AWS por predefinição.
Vista geral
Os seguintes componentes do GKE na AWS suportam volumes encriptados com CMK gerida pelo cliente:
- Volume raiz do bastion host
- Volumes raiz do serviço de gestão
- Volumes de dados do serviço de gestão etcd
- Volumes raiz do plano de controlo do cluster de utilizadores
- Volumes de dados etcd do plano de controlo do cluster de utilizadores
- Volumes raiz do nó do cluster de utilizadores
Especifica chaves na configuração do serviço de gestão, do cluster e do node pool.
Pré-requisitos
Para usar a CMK gerida pelo cliente para volumes raiz do GKE na AWS, precisa do seguinte:
- Autorizações para criar ou usar uma política de chaves do AWS KMS. Para mais informações, consulte o artigo Usar políticas de chaves no AWS KMS.
Crie uma política de chaves
As suas chaves do AWS KMS têm de ter uma política de chaves que permita ao GKE no AWS criar e ler volumes encriptados com uma CMK gerida pelo cliente. É fornecida uma política de exemplo na secção seguinte. Para criar a política, siga os passos seguintes:
No diretório
anthos-aws
, useterraform
para obter o ID do seu serviço de gestão. A saída inclui o ID do serviço de gestão. No exemplo abaixo, o ID écd anthos-aws terraform output cluster_id
gke-12345abc
.terraform output cluster_id
gke-12345abcCrie uma política de chaves do AWS KMS com o seguinte conteúdo:
{ "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" } } } ] }
Substitua o seguinte:
ACCOUNT_NUMBER
: o número da sua conta da AWS, por exemplo,1234567890
.CLUSTER_ID
: o ID do cluster de gestão do GKE on AWS, por exemplo,gke-12345678
.AWS_USER
: o seu nome de utilizador da AWS.AWS_REGION
: A região da AWS onde os seus clusters do GKE on AWS são executados, por exemplo,us-east1
.
Configurar recursos para usar uma CMK gerida pelo cliente
Esta secção explica como configurar a CMK gerida pelo cliente para componentes do GKE no AWS. Antes de atualizar os componentes existentes, consulte o artigo Usar CMK com clusters existentes.
Bastion host e serviço de gestão
Configura uma CMK gerida pelo cliente para o volume raiz do anfitrião bastion, o volume raiz do serviço de gestão e os volumes de dados etcd do serviço de gestão no seu
anthos-gke.yaml
antes de configurar o serviço de gestão. Para mais
informações, consulte,
Integrar a infraestrutura existente
e a referência do
AWSManagementService.
Volumes do plano de controlo do cluster de utilizadores
Configura uma CMK gerida pelo cliente para o plano de controlo do cluster de utilizadores e os volumes de dados do etcd na definição do AWSCluster. Para mais informações, consulte o artigo Crie um cluster de utilizadores personalizado.
Volumes raiz do nó do cluster de utilizadores
Configura uma CMK gerida pelo cliente em volumes raiz de nós do cluster de utilizadores na definição de AWSNodePool. Para mais informações, consulte o artigo Crie um cluster de utilizadores personalizado.
Usar CMK com clusters existentes
Pode adicionar a configuração de CMK gerida pelo cliente aos seguintes componentes existentes:
- Volume raiz do bastion host
- Volumes raiz do serviço de gestão
- Volumes raiz do plano de controlo do cluster de utilizadores
- Volumes raiz do nó do cluster de utilizadores
O GKE on AWS recria estes volumes após uma atualização ou uma alteração de configuração. Para adicionar a configuração da CMK gerida pelo cliente a componentes existentes, siga as instruções em Atualizar o GKE na AWS. Quando modifica a configuração do recurso, modifique os seguintes campos:
Recurso | Campo |
---|---|
AWSManagementService | spec.rootVolume and spec.bastionHost.rootVolume |
AWSCluster | spec.controlPlane.rootVolume |
AWSNodePools | spec.rootVolume |
Quando conclui a atualização, o GKE on AWS cria novos recursos com os volumes de CMK geridos pelo cliente anexados.