Habilitar a criptografia de volume do EBS com chaves do KMS gerenciadas pelo cliente para o modo automático do EKS - Amazon EKS

Ajudar a melhorar esta página

Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.

Habilitar a criptografia de volume do EBS com chaves do KMS gerenciadas pelo cliente para o modo automático do EKS

Você pode criptografar o volume raiz efêmero das instâncias do modo automático do EKS com uma chave do KMS gerenciada pelo cliente.

O modo automático do Amazon EKS usa perfis vinculados a serviços para delegar permissões a outros serviços da AWS ao gerenciar volumes criptografados do EBS para seus clusters do Kubernetes. Este tópico descreve como configurar a política de chaves necessária para especificar uma chave gerenciada pelo cliente para criptografia do Amazon EBS com o modo automático do EKS.

Considerações:

  • O modo automático do EKS não precisa de autorização adicional para usar a chave gerenciada pela AWS padrão para proteger os volumes criptografados em sua conta.

  • Este tópico aborda a criptografia de volumes efêmeros, os volumes raiz para instâncias do EC2. Para obter mais informações sobre a criptografia de volumes de dados usados em workloads, consulte Criar uma classe de armazenamento.

Visão geral

As seguintes chaves do AWS KMS podem ser usadas para criptografia do volume raiz do Amazon EBS quando o modo automático do EKS executa instâncias:

  • Chave gerenciada pela AWS: uma chave de criptografia em sua conta que é criada por, pertencente a e é gerenciada pelo Amazon EBS. Essa é a chave de criptografia padrão para uma nova conta.

  • Chave gerenciada pelo cliente: uma chave de criptografia personalizada que você cria, possui e gerencia.

nota

A chave deve ser simétrica. O Amazon EBS não oferece suporte a chaves gerenciadas pelo cliente assimétricas.

Etapa 1: configurar a política de chave

Suas chaves do KMS devem ter uma política de chaves que permita que o modo automático do EKS execute instâncias com volumes do Amazon EBS criptografados com uma chave gerenciada pelo cliente.

Configure sua política de chaves com a seguinte estrutura:

nota

Esta política inclui apenas permissões para o modo automático do EKS. A política de chaves poderá precisar de permissões adicionais se outras identidades precisarem usar a chave ou gerenciar concessões.

{ "Version":"2012-10-17", "Id": "MyKeyPolicy", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/ClusterServiceRole" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/ClusterServiceRole" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }

Certifique-se de substituir <account-id> pelo ID real da sua conta da AWS.

Ao configurar a política de chaves:

  • O ClusterServiceRole deve ter as permissões do IAM necessárias para usar a chave do KMS para operações de criptografia

  • A condição kms:GrantIsForAWSResource garante que concessões só possam ser criadas para serviços da AWS

Etapa 2: configurar o NodeClass com sua chave gerenciada pelo cliente

Depois de configurar a política de chaves, faça referência à chave do KMS na configuração NodeClass do modo automático do EKS:

apiVersion: eks.amazonaws.com/v1 kind: NodeClass metadata: name: my-node-class spec: # Insert existing configuration ephemeralStorage: size: "80Gi" # Range: 1-59000Gi or 1-64000G or 1-58Ti or 1-64T iops: 3000 # Range: 3000-16000 throughput: 125 # Range: 125-1000 # KMS key for encryption kmsKeyID: "arn:aws:kms:<region>:<account-id>:key/<key-id>"

Substitua os valores dos espaços reservados por seus valores reais:

  • <region> com sua região da AWS

  • <account-id> com o ID da sua conta da AWS

  • <key-id> com o ID da sua chave do KMS

Você pode especificar a chave do KMS usando qualquer um dos seguintes itens:

  • ID da chave do KMS: 1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

  • ARN da chave KMS: arn:aws:kms:us-west-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

  • Nome do alias da chave: alias/eks-auto-mode-key

  • ARN do alias da chave: arn:aws:kms:us-west-2:111122223333:alias/eks-auto-mode-key

Aplique a configuração de NodeClass usando kubectl:

kubectl apply -f nodeclass.yaml