Exemplos de política do IAM - AWS Key Management Service

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á.

Exemplos de política do IAM

Nesta seção, você pode encontrar exemplos de políticas do IAM que concedem permissões para várias ações do AWS KMS.

Importante

Algumas permissões das políticas a seguir são concedidas somente quando a política de chaves da chave do KMS também as concede. Para ter mais informações, consulte Referência de permissões.

Para ajuda sobre como escrever e formatar um documento de política JSON, consulte aReferência a políticas JSON do IAM, no Manual do usuário do IAM.

Permitir que um usuário visualize chaves do KMS no console do AWS KMS

A política do IAM a seguir permite que os usuários tenham acesso somente leitura no console do AWS KMS. Os usuários com essas permissões podem visualizar todas as chaves do KMS em suas Conta da AWS, mas não podem criar nem alterar chaves do KMS.

Para visualizar as chaves KMS nas páginas de chaves gerenciadas pelo cliente Chaves gerenciadas pela AWSe pelas páginas de chaves gerenciadas pelo clienteListKeys, os diretores exigem as GetResources permissões kms: ListAliases, kms: e tag:, mesmo que as chaves não tenham tags ou aliases. As permissões restantes, especialmente kms: DescribeKey, são necessárias para visualizar colunas e dados opcionais da tabela de chaves KMS nas páginas de detalhes da chave KMS. As ListRoles permissões iam: ListUsers e iam: são necessárias para exibir a política de chaves na visualização padrão sem erros. Para visualizar dados na página Armazenamentos de chaves personalizadas e detalhes sobre chaves KMS em armazenamentos de chaves personalizadas, os diretores também precisam da permissão kms:. DescribeCustomKeyStores

Se você limitar o acesso do console de um usuário a chaves do KMS específicas, o console exibirá um erro para cada chave do KMS que não estiver visível.

Essa política inclui duas declarações de política. O elemento Resource na primeira instrução de política habilita as permissões especificadas em todas as chaves do KMS em todas as regiões da Conta da AWS de exemplo. Os visualizadores do console não precisam de acesso adicional porque o console do AWS KMS exibe somente chaves do KMS na conta da entidade principal. Isso é válido mesmo que tenham permissão para visualizar chaves do KMS em outras Contas da AWS. As permissões restantes do AWS KMS e do IAM exigem um elemento "Resource": "*" porque não se aplicam a nenhuma chave do KMS específica.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccessForAllKMSKeysInAccount", "Effect": "Allow", "Action": [ "kms:GetPublicKey", "kms:GetKeyRotationStatus", "kms:GetKeyPolicy", "kms:DescribeKey", "kms:ListKeyPolicies", "kms:ListResourceTags", "tag:GetResources" ], "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "ReadOnlyAccessForOperationsWithNoKMSKey", "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases", "iam:ListRoles", "iam:ListUsers" ], "Resource": "*" } ] }

Permitir que um usuário crie chaves do KMS

A seguinte política do IAM permite que um usuário crie todos os tipos de chaves do KMS. O valor do elemento Resource é * porque a operação CreateKey não usa nenhum recurso específico do AWS KMS (chaves do KMS ou aliases).

Para restringir o usuário a tipos específicos de chaves KMS, use as chaves de condição kms: KeySpec, kms: KeyUsage e kms:. KeyOrigin

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" } }

As entidades principais que criam chaves podem precisar de algumas permissões relacionadas.

  • kms: PutKeyPolicy — Os diretores que têm kms:CreateKey permissão podem definir a política inicial de chaves para a chave KMS. No entanto, o CreateKey chamador deve ter a PutKeyPolicy permissão kms:, que permite alterar a política de chaves do KMS, ou deve especificar o BypassPolicyLockoutSafetyCheck parâmetro deCreateKey, o que não é recomendado. O autor da chamada CreateKey pode obter a permissão kms:PutKeyPolicy para a chave do KMS a partir de uma política do IAM ou incluir essa permissão na política de chaves da chave do KMS que ele está criando.

  • kms: TagResource — Para adicionar tags à chave KMS durante a CreateKey operação, o CreateKey chamador deve ter a TagResource permissão kms: em uma política do IAM. Não é suficiente incluir essa permissão na política de chaves da nova chave do KMS. No entanto, se o autor da chamada CreateKey incluir kms:TagResource na política de chaves inicial, ele poderá adicionar etiquetas a uma chamada separada após a criação da chave do KMS.

  • kms: CreateAlias — Os diretores que criam uma chave KMS no AWS KMS console devem ter a CreateAlias permissão kms: na chave KMS e no alias. (O console faz duas chamadas; uma para CreateKey e outra para CreateAlias). É necessário fornecer a permissão de alias em uma política do IAM. É possível fornecer a permissão da chave do KMS em uma política de chave ou política do IAM. Para obter detalhes, consulte Controlar o acesso a aliases.

Além de kms:CreateKey, a política do IAM a seguir fornece a permissão kms:TagResourcepara todas as chaves do KMS na Conta da AWS e a permissão kms:CreateAlias em todos os aliases da conta. Ela também inclui algumas permissões úteis somente leitura que podem ser fornecidas somente em uma política do IAM.

Essa política do IAM não inclui a permissão kms:PutKeyPolicy nem outras permissões que possam ser definidas em uma política de chaves. Uma prática recomendada é definir essas permissões na política de chaves em que elas se aplicam exclusivamente a uma chave do KMS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPermissionsForParticularKMSKeys", "Effect": "Allow", "Action": "kms:TagResource", "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "IAMPermissionsForParticularAliases", "Effect": "Allow", "Action": "kms:CreateAlias", "Resource": "arn:aws:kms:*:111122223333:alias/*" }, { "Sid": "IAMPermissionsForAllKMSKeys", "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } ] }

Permitir que um usuário criptografe e descriptografe com qualquer chave do KMS em uma conta Conta da AWS específica

A política do IAM a seguir permite que um usuário criptografe e descriptografar dados com qualquer chave do KMS na Conta da AWS 111122223333.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:*:111122223333:key/*" } }

Permitir que um usuário criptografe e descriptografe com qualquer chave do KMS em uma região e conta Conta da AWS específicas

A política do IAM a seguir permite que um usuário criptografe e descriptografar dados com qualquer chave do KMS na Conta da AWS 111122223333 na região Oeste dos EUA (Oregon).

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/*" ] } }

Permitir que um usuário criptografe e descriptografe com chaves do KMS específicas

A política do IAM a seguir permite que um usuário criptografe e descriptografe dados com as duas chaves do KMS especificadas no elemento Resource. Ao especificar uma chave do KMS em uma instrução de política do IAM, você deve usar o ARN de chave dessa chave do KMS.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" ] } }

Impedir que um usuário desabilite ou exclua qualquer chave do KMS

A política do IAM a seguir impede que um usuário desabilite ou exclua chaves do KMS, mesmo quando outra política do IAM ou uma política de chaves concede essas permissões. Uma política que nega explicitamente permissões substitui todas as outras políticas, mesmo aquelas que concedem explicitamente as mesmas permissões. Para ter mais informações, consulte Solucionar problemas de acesso à chave.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "kms:DisableKey", "kms:ScheduleKeyDeletion" ], "Resource": "*" } }