Ajudar a melhorar esta página
Quer contribuir para este guia do usuário? Escolha o link Editar esta página no GitHub, disponível no painel direito de cada página. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.
Uso do {aws} KMS para criptografar segredos do Kubernetes em clusters existentes
Se você ativar a criptografia de segredos
-
Simétrica
-
Pode criptografar e descriptografar dados
-
Criado na mesma região AWS que o cluster
-
Se a chave do KMS tiver sido criada em uma conta diferente, a entidade principal do IAM deverá ter acesso à chave do KMS.
Para obter mais informações, consulte Como permitir que as entidades principais do IAM em outras contas usem uma chave do KMS no Guia do desenvolvedor do serviço de gerenciamento de chaves AWS .
Atenção
Não é possível desativar a criptografia de segredos depois de habilitá-la. Essa ação é irreversível.
- eksctl
-
É possível ativar a criptografia de duas formas:
-
Adicione criptografia ao cluster com um único comando.
Para recriptografar seus segredos automaticamente, execute o comando a seguir.
eksctl utils enable-secrets-encryption \ --cluster my-cluster \ --key-arn arn:aws:kms:region-code:account:key/key
Para optar por não recriptografar seus segredos automaticamente, execute o comando a seguir.
eksctl utils enable-secrets-encryption --cluster my-cluster \ --key-arn arn:aws:kms:region-code:account:key/key \ --encrypt-existing-secrets=false
-
Adicione criptografia ao cluster com um arquivo
kms-cluster.yaml
.apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code secretsEncryption: keyARN: arn:aws:kms:region-code:account:key/key
Para que seus segredos sejam recriptografados automaticamente, execute o comando a seguir.
eksctl utils enable-secrets-encryption -f kms-cluster.yaml
Para optar por não recriptografar seus segredos automaticamente, execute o comando a seguir.
eksctl utils enable-secrets-encryption -f kms-cluster.yaml --encrypt-existing-secrets=false
-
- AWS Management Console
-
-
Abra o console do Amazon EKS
. -
Escolha o cluster ao qual você deseja adicionar a criptografia do KMS.
-
Escolha a guia Overview (Visão geral) (selecionada por padrão).
-
Role para baixo até Secrets encryption (Criptografia de segredos) e escolha Enable (Habilitar).
-
Selecione uma chave na lista suspenso e escolha Enable (Habilitar). Se nenhuma chave estiver listada, primeiro você deve criar uma. Para obter mais informações, consulte Criar chaves
-
Escolha o botão Confirm (Confirmar) para usar a chave escolhida.
-
- AWS CLI
-
-
Associe a configuração de criptografia de segredos
ao seu cluster usando o seguinte comando da CLI AWS. Substitua os valores de exemplo
pelos seus próprios.aws eks associate-encryption-config \ --cluster-name my-cluster \ --encryption-config '[{"resources":["secrets"],"provider":{"keyArn":"arn:aws:kms:region-code:account:key/key"}}]'
Veja um exemplo de saída abaixo.
{ "update": { "id": "3141b835-8103-423a-8e68-12c2521ffa4d", "status": "InProgress", "type": "AssociateEncryptionConfig", "params": [ { "type": "EncryptionConfig", "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws:kms:region-code:account:key/key\"}}]" } ], "createdAt": 1613754188.734, "errors": [] } }
-
Você pode monitorar o status da atualização da criptografia com o comando a seguir. Utilize o
cluster name
e oupdate ID
específicos que foram retornados na saída anterior. Quando um status deSuccessful
for exibido, significa que a atualização está concluída.aws eks describe-update \ --region region-code \ --name my-cluster \ --update-id 3141b835-8103-423a-8e68-12c2521ffa4d
Veja um exemplo de saída abaixo.
{ "update": { "id": "3141b835-8103-423a-8e68-12c2521ffa4d", "status": "Successful", "type": "AssociateEncryptionConfig", "params": [ { "type": "EncryptionConfig", "value": "[{\"resources\":[\"secrets\"],\"provider\":{\"keyArn\":\"arn:aws:kms:region-code:account:key/key\"}}]" } ], "createdAt": 1613754188.734>, "errors": [] } }
-
Para verificar se a criptografia está habilitada no cluster, execute comando
describe-cluster
. A resposta contém uma stringEncryptionConfig
.aws eks describe-cluster --region region-code --name my-cluster
-
Depois de habilitar a criptografia no cluster, você precisa criptografar todos os segredos existentes com a nova chave:
nota
Se você utilizar eksctl
, apenas será necessário executar o seguinte comando se você optar por não recriptografar seus segredos automaticamente:
kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - kms-encryption-timestamp="time value"
Atenção
Se você habilitar a criptografia de segredos
nota
Por padrão, o comando create-key
cria uma chave KMS de criptografia simétrica com uma política de chave que concede à conta acesso de administrador raiz às ações e aos recursos do KMS AWS. Se você quiser reduzir o escopo das permissões, certifique-se de que as ações kms:DescribeKey
e kms:CreateGrant
sejam permitidas na política para a entidade principal que chama a API create-cluster
.
Para clusters que usam criptografia envelopada do KMS, são necessárias permissões kms:CreateGrant
. A condição kms:GrantIsForAWSResource
não tem suporte para a ação CreateCluster e não deve ser utilizada nas políticas do KMS para controlar permissões kms:CreateGrant
de usuários que executam CreateCluster.