Control del acceso a alias - AWS Key Management Service

Control del acceso a alias

Al crear o cambiar un alias, afectará al alias y a su clave KMS asociada. Por lo tanto, las entidades principales que administran alias deben tener permiso para llamar a la operación de alias en el alias y en todas las claves KMS afectadas. Puede proporcionar estos permisos utilizando políticas de claves, políticas de IAM y concesiones.

nota

Tenga cuidado al dar permiso a las entidades principales para administrar etiquetas y alias. El cambio de etiqueta o alias puede permitir o denegar permiso a la clave administrada por el cliente. Para más detalles, consulte ABAC para AWS KMS y Uso de alias para controlar el acceso a las claves KMS.

Para obtener más información sobre cómo controlar el acceso a todas las operaciones de AWS KMS, consulte Referencia de permisos.

Los permisos para crear y administrar alias funcionan de la siguiente manera.

KMS:createAlias

Para crear un alias, la entidad principal necesita los siguientes permisos tanto para el alias como para la clave KMS asociada.

  • kms:CreateAlias para el alias. Proporcione este permiso en una política de IAM adjunta a la entidad principal que tiene permiso para crear el alias.

    En la siguiente declaración de política de ejemplo se especifica un alias en particular en un elemento Resource. Pero puede enumerar varios ARN de alias o especificar un patrón de alias, como "test*". También puede especificar un valor Resource de "*" para permitir que la entidad principal cree cualquier alias en la cuenta y región. El permiso para crear un alias también se puede incluir en un permiso kms:Create* para todos los recursos de una cuenta y región.

    { "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 la clave KMS. Este permiso debe proporcionarse en una política de claves o en una política de IAM que se delega desde la política de claves.

    { "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": "*" }

Puede utilizar claves de condición para limitar las claves KMS que puede asociar a un alias. Por ejemplo, puede utilizar la clave de condición KMS: KeySpec para permitir que la entidad principal cree alias solo en claves KMS asimétricas. Para obtener una lista completa de las claves de condiciones que puede utilizar para limitar los permisos kms:CreateAlias en recursos de clave KMS, consulteAWS KMSPermisos de .

kms:ListAliases

Para enumerar los alias de la cuenta y la región, la entidad principal debe tener el permiso kms:ListAliases en una política de IAM. Dado que esta política no está relacionada con ninguna clave o recurso de alias KMS en particular, el valor del elemento de recurso de la política debe ser "*".

Por ejemplo, la siguiente declaración de política de IAM otorga el permiso a la entidad principal para enumerar todas las claves y alias KMS en la cuenta y la región.

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

kms:UpdateAlias

Para cambiar la clave KMS asociada a un alias, la entidad principal necesita tres elementos de permiso: uno para el alias, uno para la clave KMS actual y otro para la nueva clave KMS.

Por ejemplo, suponga que desea cambiar el alias test-key de la clave KMS con el ID de clave 1234abcd-12ab-34cd-56ef-1234567890ab a la clave KMS con el ID de clave 0987dcba-09fe-87dc-65ba-ab0987654321. En ese caso, incluya declaraciones de política similares a las de los ejemplos de esta sección.

  • kms:UpdateAlias para el alias. Puede proporcionar este permiso en una política de IAM que se asocia a la entidad principal. La siguiente política de IAM especifica un alias concreto. Pero puede enumerar varios ARN de alias o especificar un patrón de alias, como "test*". También puede especificar un valor Resource de "*" para permitir que la entidad principal actualice cualquier alias en la cuenta y región.

    { "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 la clave KMS que está actualmente asociada con el alias. Este permiso debe proporcionarse en una política de claves o en una política de IAM que se delega desde la política de claves.

    { "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 la clave KMS que la operación asocia con el alias. Este permiso debe proporcionarse en una política de claves o en una política de IAM que se delega desde la política de claves.

    { "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": "*" }

Puede usar claves de condición para limitar una o ambas claves KMS en una operación UpdateAlias. Por ejemplo, puede utilizar una clave de condición kms:ResourceAliases para permitir que la entidad principal actualice los alias solo cuando la clave KMS de destino ya tiene un alias determinado. Para obtener una lista completa de las claves de condiciones que puede utilizar para limitar el permiso kms:UpdateAlias en un recurso de clave KMS, consulte AWS KMSPermisos de .

kms:DeleteAlias

Para eliminar un alias, la entidad principal necesita permiso para el alias y para la clave KMS asociada.

Como siempre, debe tener precaución al dar permiso a las entidades principales para eliminar un recurso. Sin embargo, eliminar un alias no afecta a la clave KMS asociada. Aunque puede causar un error en una aplicación que se basa en el alias, si elimina un alias por error, puede volver a crearlo.

  • kms:DeleteAlias para el alias. Proporcione este permiso en una política de IAM adjunta la entidad principal que tiene permiso para eliminar el alias.

    En la siguiente declaración de política de ejemplo se especifica el alias de un elemento Resource. Pero puede enumerar varios ARN de alias o especificar un patrón de alias, como "test*". También puede especificar un valor Resource de "*" para permitir que la entidad principal elimine cualquier alias en la cuenta y región.

    { "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 la clave KMS asociada. Este permiso debe proporcionarse en una política de claves o en una política de IAM que se delega desde la política de claves.

    { "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 los permisos de alias

Puede utilizar claves de condición para limitar los permisos de alias cuando el recurso es una clave KMS. Por ejemplo, la siguiente política de IAM permite operaciones de alias en claves KMS en una cuenta y región concretas. Sin embargo, utiliza la condición kms:KeyOrigin para limitar aún más los permisos a las claves KMS con material clave de AWS KMS.

Para obtener una lista completa de las claves de condiciones que puede utilizar para limitar el permiso de alias en un recurso de clave KMS, consulte AWS KMSPermisos de .

{ "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" } } }

No puede usar claves de condición en una declaración de política donde el recurso es un alias. Para limitar los alias que una entidad principal puede administrar, utilice el valor del elemento Resource de la declaración de política de IAM que controla el acceso al alias. Por ejemplo, las siguientes declaraciones de política permiten que la entidad principal cree, actualice o elimine cualquier alias en el Cuenta de AWS y región a menos que el alias comience con 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*" }