Os clusters do Anthos na AWS usam o serviço de gerenciamento de chaves (KMS, na sigla em inglês) da AWS para criptografar volumes de EBS. Os clusters do Anthos na AWS 1.7 e mais recentes aceitam criptografia de volumes com chaves mestras do cliente (CMKs, na sigla em inglês; link em inglês) gerenciadas pelo cliente. Os clusters do Anthos nas versões 1.6.x e mais antigas da AWS são compatíveis somente com Chaves mestras do cliente gerenciadas pela AWS (link em inglês).
Este tópico descreve como configurar a CMK gerenciada pelo cliente para criptografar volumes. Se você não configurar a CMK gerenciada pelo cliente, os clusters do Anthos na AWS usarão CMKs gerenciadas pela AWS por padrão.
Visão geral
Os seguintes clusters do Anthos nos componentes da AWS são compatíveis com volumes criptografados de CMK gerenciada pelo cliente:
- Volume raiz do Bastion Host
- Volumes raiz do serviço de gerenciamento
- Volumes de dados do etcd do serviço de gerenciamento
- Volumes raiz do plano de controle do cluster de usuário
- Volumes de dados etcd do plano de controle do cluster de usuário
- Volumes raiz do nó do cluster de usuário
As chaves são especificadas no serviço de gerenciamento, no cluster e na configuração do pool de nós.
Pré-requisitos
Para usar CMKs gerenciadas pelo cliente para clusters do Anthos em volumes raiz da AWS, você precisa do seguinte:
- Permissões para criar ou usar uma política de chave do KMS da AWS. Para mais informações, consulte Como usar políticas de chave no KMS da AWS (em inglês).
Criar uma política de chave
As chaves do KMS da AWS precisam ter uma política de chave que permita que os clusters do Anthos na AWS criem e leiam volumes criptografados com uma CMK gerenciada pelo cliente. Uma política de exemplo é fornecida na seção a seguir. Para criar a política, execute as seguintes etapas:
No diretório
anthos-aws
, useterraform
para obter o ID do seu serviço de gerenciamento.cd anthos-aws terraform output cluster_id
A saída inclui seu código de serviço de gerenciamento. No exemplo abaixo, o ID égke-12345abc
.terraform output cluster_id
gke-12345abcCrie uma política de chave do KMS da AWS (em inglês) 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:
ACCOUNT_NUMBER
: o número da conta da AWS. Por exemplo,1234567890
.CLUSTER_ID
: os clusters do Anthos no ID do cluster de gerenciamento da AWS. Por exemplo,gke-12345678
.AWS_USER
: seu nome de usuário da AWS.AWS_REGION
: a região da AWS em que os clusters do Anthos nos clusters na AWS são executados. Por exemplo,us-east1
.
Como configurar recursos para usar uma CMK gerenciada pelo cliente
Nesta seção, explicamos como configurar a CMK gerenciada pelo cliente para componentes de clusters do Anthos da AWS. Antes de fazer upgrade dos componentes existentes, consulte Como usar a CMK com clusters existentes.
Bastion Host e serviço de gerenciamento
Configure uma CMK gerenciada pelo cliente para o volume raiz do Bastion Host,
o volume raiz do serviço de gerenciamento e os volumes de dados etcd de serviço de gerenciamento no
anthos-gke.yaml
antes de configurar o serviço de gerenciamento. Para mais
informações, consulte as
referências
Como integrar a infraestrutura atual
e
AWSManagementService.
Volumes do plano de controle do cluster de usuário
Você configura uma CMK gerenciada pelo cliente para o plano de controle do cluster de usuário e os volumes de dados etcd na definição do AWSCluster. Para mais informações, consulte Como criar um cluster de usuário personalizado.
Volumes raiz do nó do cluster de usuário
Você configura uma CMK gerenciada pelo cliente em volumes raiz do nó do cluster de usuário na definição do AWSNodePool. Para mais informações, consulte Como criar um cluster de usuário personalizado.
Como usar a CMK com clusters existentes
É possível adicionar a configuração da CMK gerenciada pelo cliente aos seguintes componentes existentes:
- Volume raiz do Bastion Host
- Volumes raiz do serviço de gerenciamento
- Volumes raiz do plano de controle do cluster de usuário
- Volumes raiz do nó do cluster de usuário
Os clusters do Anthos na AWS recriam esses volumes após um upgrade ou alteração da configuração. Para adicionar a configuração da CMK gerenciada pelo cliente a componentes existentes, siga as instruções em Como fazer upgrade de clusters do Anthos na AWS. Ao modificar a configuração de recursos, modifique os seguintes campos:
Recurso | Campo |
---|---|
AWSManagementService | spec.rootVolume and spec.bastionHost.rootVolume |
AWSCluster | spec.controlPlane.rootVolume |
AWSNodePools | spec.rootVolume |
Ao concluir o upgrade, os clusters do Anthos na AWS criam novos recursos com os volumes da CMK gerenciada pelo cliente anexados.