Exemplos de política gerenciada pelo cliente - AWS Key Management Service

Exemplos de política gerenciada pelo cliente

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 obter mais informações, consulte AWS KMSReferência de permissões da API do .

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 chaves do KMS nas páginas Chaves gerenciadas pela AWS e Customer managed keys (Chaves gerenciadas pelo cliente), as entidades principais exigem permissões kms:ListKeys e kms:ListAliases. As permissões restantes, especialmente kms:DescribeKey, são necessárias para exibir colunas e dados opcionais da tabela de chaves do KMS nas páginas de detalhes da chave do KMS. As permissões iam:ListUsers e iam:ListRoles são necessárias para visualizar a política de chaves no modo de exibição padrão sem erro. Para visualizar dados na página Custom key stores (Armazenamentos de chaves personalizados) e detalhes sobre chaves do KMS em armazenamentos de chaves personalizados, as entidades principais 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": "ReadOnlyAccessForAllKMS keysInAccount", "Effect": "Allow", "Action": [ "kms:GetPublicKey", "kms:GetKeyRotationStatus", "kms:GetKeyPolicy", "kms:DescribeKey", "kms:ListKeyPolicies", "kms:ListResourceTags" ], "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "ReadOnlyAccessForOperationsWithNoKMS key", "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 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).

{ "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 — As entidades principais que têm a permissão kms:CreateKey podem definir a política de chave inicial para a chave do KMS. No entanto, o autor da chamada CreateKey deve ter a permissão kms:PutKeyPolicy, que permite alterar a política de chaves da chave do KMS, ou deve especificar o parâmetro BypassPolicyLockoutSafetyCheck de CreateKey, o que não é recomendável. 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 etiquetas à chave do KMS durante a operação CreateKey, o autor da chamada CreateKey deve ter a permissão kms:TagResource 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 — As entidades principais que criam uma chave do KMS no console do AWS KMS devem ter a permissão kms:CreateAlias na chave do 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 mais 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": "IAMPermissionsForParticularKMS keys", "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": "IAMPermissionsForAllKMS keys", "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 obter mais informações, consulte Solucionar problemas de acesso à chave.

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