Usar alias para controlar el acceso a las claves KMS - AWS Key Management Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Usar alias para controlar el acceso a las claves KMS

Puede controlar el acceso a las claves KMS basándose en los alias asociados a la clave KMS. Para ello, utilice las claves de ResourceAliases condición kms: RequestAlias y kms:. Esta característica forma parte de la compatibilidad de AWS KMS para el control de acceso basado en atributos (ABAC).

La clave de condición kms:RequestAlias permite o deniega el acceso a una clave KMS basándose en el alias de una solicitud. La clave de condición kms:ResourceAliases permite o deniega el acceso a una clave KMS en función de los alias asociados a la clave KMS.

Estas características no le permiten identificar una clave KMS utilizando un alias en el elemento resource de una declaración de política. Cuando un alias es el valor de un elemento resource, la política se aplica al recurso de alias, no a ninguna clave KMS que pueda estar asociada con él.

nota

Puede que transcurran cinco minutos hasta que los cambios de etiqueta y alias afecten a la autorización de clave KMS. Los cambios recientes pueden ser visibles en las operaciones de API antes de que afecten a la autorización.

Cuando utilice alias para controlar el acceso a las claves KMS, tenga en cuenta lo siguiente:

  • Utilice alias para reforzar las prácticas recomendadas de acceso con privilegio mínimo. Dar a las entidades principales de IAM sólo los permisos que necesitan para las claves KMS que deben usar o administrar. Por ejemplo, utilice alias para identificar las claves KMS utilizadas en un proyecto. A continuación, dé permiso al equipo del proyecto para usar solo claves KMS con los alias del proyecto.

  • Tenga cuidado al dar a las entidades principales los permisos kms:CreateAlias, kms:UpdateAlias, o kms:DeleteAlias que les permiten agregar, editar y eliminar alias. Cuando utiliza alias para controlar el acceso a las claves KMS, cambiar un alias puede dar permiso a las entidades principales para usar claves KMS que de otro modo no tenían permiso para usar. También puede denegar el acceso a las claves KMS que otras entidades principales requieren para realizar sus trabajos.

  • Revise las entidades principales de su Cuenta de AWS que actualmente tienen permiso para administrar alias y ajustar los permisos, si es necesario. Los administradores de claves que no tienen permiso para cambiar políticas de claves o crear concesiones pueden controlar el acceso a claves KMS si tienen permiso para administrar alias.

    Por ejemplo, la consola default key policy for key administrators (política de claves predeterminada para administradores de claves) incluye los permisos kms:CreateAlias, kms:DeleteAlias, y kms:UpdateAlias. Las políticas de IAM pueden dar permisos de alias para todas las claves KMS de su Cuenta de AWS. Por ejemplo, la política AWSKeyManagementServicePowerUseradministrada permite a los directores crear, eliminar y enumerar los alias de todas las claves de KMS, pero no actualizarlos.

  • Antes de establecer una política que dependa de un alias, revise los alias de las claves KMS de su Cuenta de AWS. Asegúrese de que la política sólo se aplica a los alias que desea incluir. Usa CloudTrail registros y CloudWatch alarmas para avisarte de los cambios de alias que puedan afectar al acceso a tus claves de KMS. Además, la ListAliasesrespuesta incluye la fecha de creación y la fecha de la última actualización de cada alias.

  • Las condiciones de política de alias utilizan la coincidencia de patrones; no están vinculadas a una instancia concreta de un alias. Una política que utiliza claves de condición basadas en alias afecta a todos los alias nuevos y existentes que coincidan con el patrón. Si elimina y vuelve a crear un alias que coincida con una condición de política, la condición se aplica al nuevo alias, tal como lo hizo con el anterior.

La clave de condición kms:RequestAlias se basa en el alias especificado explícitamente en una solicitud de operación. La clave de condición kms:ResourceAliases depende de los alias asociados a una clave KMS, aunque no aparezcan en la solicitud.

km: RequestAlias

Permitir o denegar el acceso a una clave KMS basada en el alias que identifica la clave KMS en una solicitud. Puede utilizar la clave de RequestAlias condición kms: en una política clave o en una política de IAM. Se aplica a las operaciones que utilizan un alias para identificar una clave de KMS en una solicitud, es decir, las operaciones criptográficas DescribeKey, y. GetPublicKey No es válido para operaciones de alias, como CreateAliaso DeleteAlias.

En la clave de condición, especifique un nombre de alias o patrón de nombre de alias. No puede especificar un ARN de alias.

Por ejemplo, la siguiente declaración de política permite a la entidad principal utilizar las operaciones especificadas en la clave KMS. El permiso solo será efectivo cuando la solicitud utiliza un alias que incluye alpha para identificar la clave KMS.

{ "Sid": "Key policy using a request alias condition", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/alpha-developer" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:RequestAlias": "alias/*alpha*" } } }

La siguiente solicitud de ejemplo de una entidad principal autorizada cumpliría la condición. Sin embargo, una solicitud que utilizó un ID de clave, unARN de clave, o un alias diferente no cumpliría la condición, incluso si estos valores identificaban la misma clave KMS.

$ aws kms describe-key --key-id "arn:aws:kms:us-west-2:111122223333:alias/project-alpha"

kms: ResourceAliases

Permitir o denegar el acceso a una clave KMS basándose en los alias asociados a la clave KMS, incluso si el alias no se utiliza en una solicitud. La clave de ResourceAliases condición kms: le permite especificar un alias o un patrón de alias, por ejemploalias/test*, para poder utilizarlos en una política de IAM para controlar el acceso a varias claves de KMS en la misma región. Es válido para cualquier operación AWS KMS que utiliza una clave KMS.

Por ejemplo, la siguiente política de IAM permite a las entidades principales administrar la rotación automática de claves en las claves KMS en dos Cuentas de AWS. Sin embargo, el permiso sólo se aplica a las claves KMS asociadas con alias que comienzan con restricted.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:EnableKeyRotation", "kms:DisableKeyRotation", "kms:GetKeyRotationStatus" ], "Resource": [ "arn:aws:kms:*:111122223333:key/*", "arn:aws:kms:*:444455556666:key/*" ], "Condition": { "ForAnyValue:StringLike": { "kms:ResourceAliases": "alias/restricted*" } } } ] }

La condición kms:ResourceAliases es una condición del recurso, no de la solicitud. Como tal, una solicitud que no especifique el alias puede cumplir la condición.

La siguiente solicitud de ejemplo, que especifica un alias coincidente, satisface la condición.

$ aws kms enable-key-rotation --key-id "alias/restricted-project"

Sin embargo, la solicitud de ejemplo siguiente también satisface la condición, siempre que la clave KMS especificada tenga un alias que comience con restricted, incluso si ese alias no se usa en la solicitud.

$ aws kms enable-key-rotation --key-id "1234abcd-12ab-34cd-56ef-1234567890ab"