Visão geral
O GKE na AWS usa chaves simétricas do serviço de gerenciamento de chaves da AWS (KMS) gerenciadas pelo cliente para criptografar:
- dados de estado do Kubernetes no etcd;
- dados do usuário da instância do EC2;
- volumes EBS da criptografia em repouso dos dados do plano de controle e do pool de nós.
Em ambientes de produção, recomendamos usar chaves diferentes para criptografia de configuração e volume. Para minimizar ainda mais os riscos, se uma chave for comprometida, também será possível criar chaves diferentes para cada um dos seguintes itens:
- Configuração do plano de controle de cluster
- Banco de dados do plano de controle de cluster
- Volume principal do plano de controle de cluster
- Volume raiz do plano de controle de cluster
- Configuração do pool de nós
- Volume raiz do pool de nós
Para aumentar a segurança, é possível criar uma política de chave KMS da AWS que atribua apenas o conjunto mínimo necessário de permissões. Para mais informações, consulte Como criar chaves KMS com permissões específicas.
Criar uma chave KMS da AWS
Para criar uma chave, execute o seguinte comando:
aws --region AWS_REGION kms create-key \
--description "KEY_DESC"
Substitua:
AWS_REGION
pelo nome da região da AWSKEY_DESC
com uma descrição de texto da chave;
Para cada chave criada, salve o valor chamado KeyMetadata.Arn
na saída
deste comando para uso posterior.
Como criar chaves KMS com permissões específicas
Se você criar chaves separadas para funções diferentes, precisará fornecer uma política de chave KMS para cada chave que concede as permissões apropriadas nessa chave. Se você não especificar uma política de chave ao criar uma chave, o AWS KMS criará uma política de chave padrão que fornece todos os principais na conta proprietária acesso ilimitado a todas as operações para a chave.
Ao criar uma política de chave, você precisa permitir que uma política da AWS IAM acesse a política de chave. A política principal também precisa conceder permissões à sua conta para usar as políticas do IAM. Sem a permissão da política de chaves, as políticas do IAM que permitem permissões não têm efeito. Para mais informações, consulte Como usar políticas de chave no KMS da AWS (em inglês).
A tabela a seguir descreve as permissões de cada um dos papéis do IAM da AWS usados pelo GKE na AWS.
Papel de agente de serviço da API GKE Multi-Cloud | Papel do plano de controle | Papel do pool de nós | Papel de serviço da AWS para escalonamento automático | |
---|---|---|---|---|
Criptografia de configuração do plano de controle do cluster | kms:Encrypt | kms:Decrypt | N/A | N/A |
Criptografia de banco de dados do plano de controle do cluster | N/A | kms:Encrypt kms:Decrypt |
N/A | N/A |
Criptografia do volume principal do plano de controle do cluster | kms:GenerateDataKeyWithoutPlaintext | kms:CreateGrant | N/A | N/A |
Criptografia do volume raiz do plano de controle do cluster | N/A | N/A | N/A | Consulte Principais seções de políticas que permitem acesso à chave gerenciada pelo cliente |
Criptografia de configuração do pool de nós | kms:Encrypt | N/A | kms:Decrypt | N/A |
Criptografia do volume raiz do pool de nós | N/A | N/A | N/A | Consulte Principais seções de políticas que permitem acesso à chave gerenciada pelo cliente |
Outros requisitos | kms:DescribeKey | N/A | N/A | N/A |