Controlar o acesso a aliases - AWS Key Management Service

Controlar o acesso a aliases

Ao criar ou alterar um alias, você afeta o alias e sua chave do KMS associada. Portanto, as entidades principais que gerenciam aliases devem ter permissão para chamar a operação no alias e em todas as chaves do KMS afetadas. É possível fornecer essas permissões usando políticas de chave, políticas do IAM e concessões.

nota

Tenha cuidado ao conceder permissão a entidades principais para gerenciar etiquetas e aliases. Alterar uma etiqueta ou um alias pode conceder ou negar uma permissão à chave gerenciada pelo cliente. Para obter mais detalhes, consulte ABAC para AWS KMS e Usar aliases para controlar o acesso a chaves do KMS.

Para obter informações sobre como controlar o acesso a todas as operações do AWS KMS, consulte Referência de permissões.

As permissões para criar e gerenciar aliases funcionam da forma a seguir.

kms:CreateAlias

Para criar um alias, a entidade principal precisa das seguintes permissões para o alias e a chave do KMS associada.

  • kms:CreateAlias para o alias. Forneça essa permissão em uma política do IAM associada à entidade principal que tem permissão para criar o alias.

    A instrução de política de exemplo a seguir especifica o alias em um elemento Resource. Porém, é possível listar vários ARNs de alias ou especificar um padrão de alias, como “test*”. Porém, é possível especificar um valor de Resource de "*" para permitir que a entidade principal crie um alias na conta e na região. A permissão para criar um alias também pode ser incluída em uma permissão kms:Create* para todos os recursos em uma conta e região.

    { "Sid": "IAMPolicyForAnAlias", "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key" }
  • kms:CreateAlias para a chave do KMS. Essa permissão deve ser fornecida em uma política de chave ou em uma política do IAM delegada a partir da política de chaves.

    { "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"}, "Action": [ "kms:CreateAlias", "kms:DescribeKey" ], "Resource": "*" }

Você pode usar chaves de condição para limitar as chaves do KMS que podem ser associadas a um alias. Por exemplo, você pode usar a chave de condição kms:KeySpec para permitir que a entidade principal crie aliases somente em chaves do KMS assimétricas. Para obter uma lista completa de chaves de condições que podem ser usadas para limitar a permissão kms:CreateAlias em recursos de chaves do KMS, consulte Permissões AWS KMS.

kms:ListAliases

Para listar aliases na conta e na região, a entidade principal deve ter a permissão kms:ListAliases em uma política do IAM. Como essa política não está relacionada a uma chave do KMS ou recurso de alias específico, o valor do elemento de recurso na política deve ser "*".

Por exemplo, a instrução de política do IAM a seguir dá à entidade principal permissão para listar todas as chaves do KMS e aliases na conta e na região.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } }

kms:UpdateAlias

Para alterar a chave do KMS associada a um alias, a entidade principal precisa de três elementos de permissão: um para o alias, um para a chave do KMS atual e outro para a nova chave do KMS.

Por exemplo, suponha que você queira alterar o alias test-key da chave do KMS com ID de chave 1234abcd-12ab-34cd-56ef-1234567890ab para a chave do KMS com ID de chave 0987dcba-09fe-87dc-65ba-ab0987654321. Nesse caso, inclua declarações de política semelhantes aos exemplos desta seção.

  • kms:UpdateAlias para o alias. Forneça essa permissão em uma política do IAM associada à entidade principal. A política do IAM a seguir define um alias específico. Porém, é possível listar vários ARNs de alias ou especificar um padrão de alias, como "test*". Porém, é possível especificar um valor de Resource de "*" para permitir que a entidade principal atualize um alias na conta e na região.

    { "Sid": "IAMPolicyForAnAlias", "Effect": "Allow", "Action": [ "kms:UpdateAlias", "kms:ListAliases", "kms:ListKeys" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key" }
  • kms:UpdateAlias para a chave do KMS que está atualmente associada ao alias. Essa permissão deve ser fornecida em uma política de chave ou em uma política do IAM delegada a partir da política de chaves.

    { "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"}, "Action": [ "kms:UpdateAlias", "kms:DescribeKey" ], "Resource": "*" }
  • kms:UpdateAlias para a chave do KMS que a operação associa ao alias. Essa permissão deve ser fornecida em uma política de chave ou em uma política do IAM delegada a partir da política de chaves.

    { "Sid": "Key policy for 0987dcba-09fe-87dc-65ba-ab0987654321", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSAdminUser"}, "Action": [ "kms:UpdateAlias", "kms:DescribeKey" ], "Resource": "*" }

Você pode usar chaves de condição para limitar uma ou ambas as chaves do KMS em uma operação UpdateAlias. Por exemplo, é possível usar uma chave de condição kms:ResourceAliases para permitir que a entidade principal atualize aliases somente quando a chave do KMS de destino já tiver um alias específico. Para obter uma lista completa de chaves de condições que podem ser usadas para limitar a permissão kms:UpdateAlias em um recurso de chave do KMS, consulte Permissões AWS KMS.

kms:DeleteAlias

Para excluir um alias, a entidade principal precisa de permissão para o alias e a chave do KMS associada.

Como sempre, tenha cuidado ao conceder permissão às entidades principais para excluir um recurso. No entanto, a exclusão de um alias não afeta a chave do KMS associada. Embora isso possa causar uma falha em uma aplicação dependente do alias, se você excluir um alias por engano, poderá recriá-lo.

  • kms:DeleteAlias para o alias. Forneça essa permissão em uma política do IAM associada à entidade principal que tem permissão para excluir o alias.

    A declaração de política demonstrativa a seguir especifica o alias em um elemento Resource. Porém, é possível listar vários ARNs de alias ou especificar um padrão de alias, como "test*". Também é possível especificar um valor Resource de "*" para permitir que a entidade principal exclua qualquer alias na conta e na região.

    { "Sid": "IAMPolicyForAnAlias", "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/test-key" }
  • kms:DeleteAlias para a chave do KMS associada. Essa permissão deve ser fornecida em uma política de chave ou em uma política do IAM delegada a partir da política de chaves.

    { "Sid": "Key policy for 1234abcd-12ab-34cd-56ef-1234567890ab", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/KMSAdminUser" }, "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias", "kms:DescribeKey" ], "Resource": "*" }

Limitar permissões de alias

É possível usar chaves de condição para limitar permissões de alias quando o recurso é uma chave do KMS. Por exemplo, a política do IAM a seguir permite as operações de alias em chaves do KMS em uma determinada conta e região. Porém, ele usa a chave de condição kms:KeyOrigin para limitar ainda mais as permissões para chaves do KMS com material de chave do AWS KMS.

Para obter uma lista completa de chaves de condições que podem ser usadas para limitar a permissão de alias em um recurso de chave do KMS, consulte Permissões AWS KMS.

{ "Sid": "IAMPolicyKeyPermissions", "Effect": "Allow", "Resource": "arn:aws:kms:us-west-2:111122223333:key/*", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Condition": { "StringEquals": { "kms:KeyOrigin": "AWS_KMS" } } }

Você não pode usar chaves de condição em uma instrução de política na qual o recurso é um alias. Para limitar os aliases que uma entidade principal pode gerenciar, use o valor da propriedade Resource da instrução de política do IAM que controla o acesso ao alias. Por exemplo, as instruções de política a seguir permitem que a entidade principal crie, atualize ou exclua qualquer alias na região e Conta da AWS, a menos que o alias comece com Restricted.

{ "Sid": "IAMPolicyForAnAliasAllow", "Effect": "Allow", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/*" }, { "Sid": "IAMPolicyForAnAliasDeny", "Effect": "Deny", "Action": [ "kms:CreateAlias", "kms:UpdateAlias", "kms:DeleteAlias" ], "Resource": "arn:aws:kms:us-west-2:111122223333:alias/Restricted*" }