View a markdown version of this page

Política básica de chaves do KMS - Centro de Identidade do AWS IAM

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Política básica de chaves do KMS

A política de chaves do KMS a seguir abrange o cenário de implantação mais comum: uma instância do IAM Identity Center com administradores delegados e aplicativos AWS gerenciados AWS Control Tower, incluindo SSO para instâncias do Amazon EC2 e fluxos de trabalho personalizados. Use essa política como ponto de partida ao criar uma chave KMS gerenciada pelo cliente para o IAM Identity Center. Se você precisar de controles de acesso mais granulares, como restringir a chave a uma instância ou aplicativo específico do IAM Identity Center, consulte. Declarações de política de chave KMS avançadas Observe que, se estiver usando uma chave multirregional, a mesma política deve ser usada em todas as réplicas para ajudar a garantir uma autorização consistente.

Para usar essa política, substitua os seguintes valores de espaço reservado pelos seus próprios:

  • 111122223333— O ID da AWS conta da sua instância do IAM Identity Center (a conta AWS Organizations de gerenciamento).

  • 444455556666— O ID da AWS conta de sua conta de administração delegada. Se você não usa a administração delegada, remova esse princípio.

Como o AWS IAM Identity Center exige que a chave KMS esteja na mesma AWS conta do serviço, as instruções a seguir usam as ${aws:ResourceAccount} variáveis ${aws:ResourceOrgID} e em vez de valores literais. Você pode substituir essas variáveis pela ID AWS da organização e pela ID da AWS conta, se preferir.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIdentityCenterAdminAccounts", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root" ] }, "Action": "kms:*", "Resource": "*" }, { "Sid": "AllowIdentityCenterAndIdentityStoreToDescribeKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "${aws:ResourceAccount}" } } }, { "Sid": "AllowIdentityCenterAndIdentityStoreToUseKey", "Effect": "Allow", "Principal": { "Service": [ "identitystore.amazonaws.com", "sso.amazonaws.com" ] }, "Action": [ "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "${aws:ResourceAccount}" }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:sso:instance-arn", "aws:identitystore:identitystore-arn" ] } } }, { "Sid": "AllowOrgPrincipalsViaIdentityCenterAndIdentityStore", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "${aws:ResourceOrgID}" }, "StringLike": { "kms:ViaService": [ "sso.*.amazonaws.com", "identitystore.*.amazonaws.com" ] }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:sso:instance-arn", "aws:identitystore:identitystore-arn" ] } } }, { "Sid": "AllowManagedApps", "Effect": "Allow", "Principal": "*", "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Bool": { "aws:PrincipalIsAWSService": "true" }, "StringEquals": { "aws:SourceOrgID": "${aws:ResourceOrgID}" }, "StringLike": { "kms:ViaService": [ "identitystore.*.amazonaws.com", "sso.*.amazonaws.com" ] }, "ForAnyValue:StringEquals": { "kms:EncryptionContextKeys": [ "aws:sso:instance-arn", "aws:identitystore:identitystore-arn" ] } } } ] }

Esta política contém cinco declarações. A tabela a seguir descreve o que cada declaração faz.

Declaração Finalidade
AllowIdentityCenterAdminAccounts Concede permissões completas da chave KMS à conta de gerenciamento do IAM Identity Center e à conta de administração delegada. Isso inclui ações de gerenciamento de chaves, como modificar a política de chaves e programar a exclusão de chaves. Os administradores dessas contas podem gerenciar e usar a chave se tiverem as permissões necessárias em suas políticas baseadas em identidade.
AllowIdentityCenterAndIdentityStoreToDescribeKey Permite que os diretores de serviço do IAM Identity Center e do Identity Store recuperem os principais metadados. Isso é necessário para operações de serviço que validam a chave sem realizar criptografia ou descriptografia. A aws:SourceAccount condição ajuda a garantir que somente sua instância do IAM Identity Center possa usar sua chave KMS.
AllowIdentityCenterAndIdentityStoreToUseKey Permite que os diretores de serviço do IAM Identity Center e do Identity Store usem a chave para operações de criptografia, como criptografia, descriptografia e recriptografia de dados. A aws:SourceAccount condição ajuda a garantir que somente sua instância do IAM Identity Center possa usar sua chave KMS.
AllowOrgPrincipalsViaIdentityCenterAndIdentityStore Permite que os diretores do IAM em sua AWS organização descriptografem dados por meio dos serviços do IAM Identity Center e Identity Store. Isso abrange administradores de aplicativos que interagem com os AWS serviços integrados ao IAM Identity Center usando sessões de acesso direto (FAS).
AllowManagedApps Permite que aplicativos AWS gerenciados descriptografem dados protegidos por sua chave KMS por meio do IAM Identity Center e do Identity Store.

Use a seguinte declaração de política do IAM Etapa 4: configurar políticas do IAM para o uso entre contas da chave KMS para permitir que administradores delegados usem a chave KMS por meio do serviço IAM Identity Center. APIs Substitua o ARN da chave de exemplo pelo ARN real da chave KMS. A região curinga no exemplo acomoda todas as réplicas de uma chave KMS multirregional.

Para casos de uso entre contas que não sejam a administração do IAM Identity Center, como SSO para instâncias do Amazon EC2 ou administração AWS de aplicativos gerenciados, reduza o AllowCrossAccountKMSKeyUse escopo kms:Decrypt para somente e remova a declaração. AllowListKMSKeyAliases

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountKMSKeyUse", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:*:111122223333:key/mrk-1234abcd-12ab-34cd-56ef-1234567890ab" ] }, { "Sid": "AllowListKMSKeyAliases", "Effect": "Allow", "Action": "kms:ListAliases", "Resource": "*" } ] }