Política de chaves do AWS KMS obrigatórias para uso com volumes criptografados
O Amazon EC2 Auto Scaling usa perfis vinculados ao serviço para delegar permissões para outros Serviços da AWS. Os perfis vinculados ao serviço do Amazon EC2 Auto Scaling são predefinidos e incluem as permissões que o Amazon EC2 Auto Scaling requer para chamar outros Serviços da AWS em seu nome. As permissões predefinidas também incluem acesso a suas Chaves gerenciadas pela AWS. No entanto, elas não incluem acesso às chaves gerenciadas pelo cliente, permitindo que você mantenha o controle total sobre essas chaves.
Este tópico descreve como configurar a política de chaves de que você precisa para iniciar instâncias do Auto Scaling ao especificar uma chave gerenciada pelo cliente para a criptografia do Amazon EBS.
nota
O Amazon EC2 Auto Scaling não precisa de autorização adicional para usar a Chave gerenciada pela AWS padrão para proteger os volumes criptografados em sua conta.
Conteúdo
Visão geral
A seguinte AWS KMS keys pode ser usada para criptografia do Amazon EBS quando o Amazon EC2 Auto Scaling inicia 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. A Chave gerenciada pela AWS será usada para criptografia, a menos que você especifique uma chave gerenciada pelo cliente.
-
Chave gerenciada pelo cliente: uma chave de criptografia personalizada que você cria, possui e gerencia. Para obter mais informações, consulte Criação de chaves Guia do desenvolvedor do AWS Key Management Service.
Observação: a chave deve ser simétrica. O Amazon EBS não oferece suporte a chaves gerenciadas pelo cliente assimétricas.
Você configura chaves gerenciadas pelo cliente ao criar snapshots criptografados ou um modelo de execução que especifica volumes criptografados ou ao habilitar a criptografia por padrão.
Configurar políticas de chave
Suas chaves do KMS devem ter uma política de chaves que permita que o Amazon EC2 Auto Scaling execute instâncias com volumes do Amazon EBS criptografados com uma chave gerenciada pelo cliente.
Use os exemplos nesta página para configurar uma política de chaves para conceder ao Amazon EC2 Auto Scaling acesso à sua chave gerenciada pelo cliente. Você pode modificar a política de chaves da chave gerenciada pelo cliente no momento em que a chave é criada ou posteriormente.
É necessário adicionar, no mínimo, duas declarações de política à política de chaves para que ela funcione com o Amazon EC2 Auto Scaling.
-
A primeira declaração permite que a identidade do IAM especificada no elemento
Principaluse a chave gerenciada pelo cliente diretamente. Ela inclui permissões para executar as operaçõesEncrypt,Decrypt,ReEncrypt*,GenerateDataKey*eDescribeKeydo AWS KMS na chave. -
A segunda declaração permite que a identidade do IAM especificada no elemento
Principaluse a operaçãoCreateGrantpara gerar concessões que delegam um subconjunto de suas próprias permissões a para que sejam Serviços da AWS orintegradas a AWS KMS outro principal. Isso permite que eles usem a chave para criar recursos criptografados em seu nome.
Ao adicionar as novas declarações de política à sua política de chave, não altere as declarações existentes na política.
Em cada um dos exemplos a seguir, os argumentos que devem ser substituídos, como um ID de chave ou o nome de um perfil vinculado ao serviço, são mostrados como texto substituível em itálico. Na maioria dos casos, você pode substituir o nome do perfil vinculado ao serviço pelo nome de um perfil vinculado ao serviço do Amazon EC2 Auto Scaling.
Para obter mais informações, consulte os seguintes recursos:
-
Para criar uma chave com a AWS CLI, consulte create-key
. -
Para atualizar uma política de chave com a AWS CLI, consulte put-key-policy
. -
Para encontrar um nome do recurso da Amazon (ARN) e um ID de chave, consulte Como encontrar o ID de chave e o ARN no Guia do desenvolvedor do AWS Key Management Service.
-
Para obter informações sobre os perfis vinculados ao serviço do Amazon EC2 Auto Scaling, consulte Perfis vinculados ao serviço do Amazon EC2 Auto Scaling.
-
Para obter informações sobre a criptografia do Amazon EBS e o KMS em geral, consulte a seção Criptografia do Amazon EBS no Guia do usuário do Amazon EBS e no Guia do desenvolvedor do AWS Key Management Service.
Exemplo 1: seções da política de chaves que permitem acesso à chave gerenciada pelo cliente
Adicione as duas instruções de política a seguir à política de chave da chave gerenciada pelo cliente, substituindo o ARN de exemplo pelo ARN do perfil vinculado ao serviço apropriado que tem acesso permitido à chave. Neste exemplo, as seções da política concedem ao perfil vinculado ao serviço chamado AWSServiceRoleForAutoScaling permissões para usar a chave gerenciada pelo cliente.
{ "Sid": "Allow service-linked role use of the customer managed key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "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::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" ] }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }
Exemplo 2: seções da política de chaves que permitem acesso entre contas à chave gerenciada pelo cliente
Se você criar uma chave gerenciada pelo cliente em uma conta diferente da conta usada pelo grupo do Auto Scaling, será necessário usar uma concessão em combinação com a política de chaves para permitir o acesso entre contas à chave.
É necessário concluir duas etapas na seguinte ordem:
-
Em primeiro lugar, adicione as duas seguintes instruções de política à política de chaves da chave gerenciada pelo cliente. Substitua o ARN de exemplo pelo ARN da outra conta, substituindo
111122223333pelo ID da conta efetivo da Conta da AWS na qual você deseja criar o grupo do Auto Scaling. Isso permite que você conceda permissão para que um usuário ou um perfil do IAM na conta especificada crie uma concessão para a chave usando o seguinte comando da CLI. No entanto, isso por si só não dá a nenhum usuário acesso à chave.{ "Sid": "Allow external account111122223333use of the customer managed key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }{ "Sid": "Allow attachment of persistent resources in external account111122223333", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root" ] }, "Action": [ "kms:CreateGrant" ], "Resource": "*" } -
Em seguida, usando a conta na qual deseja criar o grupo do Auto Scaling, crie uma concessão que delegue as permissões relevantes para a função adequada vinculada ao serviço. O elemento
Grantee Principalda concessão é o ARN do perfil vinculado ao serviço apropriado. Okey-idé o ARN da chave.Veja a seguir um exemplo de comando da CLI create-grant
que concede ao perfil vinculado ao serviço chamado AWSServiceRoleForAutoScaling na conta 111122223333permissões para usar a chave gerenciada pelo cliente na conta444455556666.aws kms create-grant \ --regionus-west-2\ --key-idarn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d\ --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling\ --operations "Encrypt" "Decrypt" "ReEncryptFrom" "ReEncryptTo" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "DescribeKey" "CreateGrant"Para que esse comando seja bem-sucedido, o usuário que faz a solicitação deve ter permissões para a ação
CreateGrant.O exemplo a seguir de política do IAM permite que uma identidade do IAM (usuário ou perfil) na conta
111122223333crie uma concessão para a chave gerenciada pelo cliente na conta444455556666.Para obter mais informações sobre como criar uma concessão para uma chave do KMS em uma Conta da AWS diferente, consulte Concessões no AWS KMS no Guia do desenvolvedor do AWS Key Management Service.
Importante
O nome do perfil vinculado ao serviço especificado como a entidade principal do beneficiário deve ser o nome de um perfil existente. Depois de criar a concessão, para garantir que a concessão permita que o Amazon EC2 Auto Scaling use a chave especificada do KMS, não exclua e recrie o perfil vinculado ao serviço.
Editar políticas de chaves no console do AWS KMS
Os exemplos nas seções anteriores mostram apenas como adicionar declarações a uma política de chaves, que é apenas uma maneira de alterar uma política de chaves. A maneira mais fácil de alterar uma política de chave é usar a visualização padrão do console do AWS KMS para políticas de chave e tornar uma identidade do IAM (usuário ou perfil) um dos usuários da chave para política de chave apropriada. Para obter mais informações, consulte Uso da visualização padrão do Console de gerenciamento da AWS no Guia do desenvolvedor do AWS Key Management Service.
Importante
Tenha cuidado. As declarações de política da visualização padrão do console incluem permissões para executar operações Revoke do AWS KMS na chave gerenciada pelo cliente. Se você conceder acesso a uma chave gerenciada pelo cliente para uma conta da Conta da AWS em sua conta e acidentalmente revogar a concessão que concedia essa permissão à conta, os usuários externos não poderão mais acessar os dados criptografados ou a chave que foi usada para criptografar os dados.