Política de claves predeterminada - 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.

Política de claves predeterminada

Al crear una clave KMS, puede especificar la política de claves para la nueva clave KMS. Si no proporcionan una, AWS KMS la crea automáticamente. La política de claves predeterminada que utiliza AWS KMS difiere en función de si crea la clave en la consola de AWS KMS o utiliza la API de AWS KMS.

Política de claves predeterminada al crear una clave KMS mediante programación

Al crear una clave KMS mediante programación con la API de AWS KMS (incluso utilizando los SDK de AWS, AWS Command Line Interface o AWS Tools for PowerShell), y no especificar una política de claves, AWS KMS aplica una política de claves predeterminada muy sencilla. Esta política de claves predeterminada tiene una declaración de política que le proporciona a la Cuenta de AWS propietaria de la clave KMS permiso para utilizar las políticas de IAM a fin de permitir el acceso a todas las operaciones de AWS KMS en la clave KMS. Para obtener más información sobre esta declaración de política, consulte Permite el acceso a la Cuenta de AWS y habilita las políticas de IAM.

Política de claves predeterminada al crear una clave KMS con la AWS Management Console

Al crear una clave KMS con la AWS Management Console, la política de la clave comienza con la declaración de la política que permite el acceso a la Cuenta de AWS y habilita las políticas de IAM. A continuación, la consola agrega una declaración de administradores de claves, una declaración de usuarios de claves y (para la mayoría de los tipos de claves) una declaración que permite a las entidades principales utilizar la clave KMS con otros servicios de AWS. Puede utilizar las características de la consola de AWS KMS para especificar los usuarios de IAM, roles de IAM y Cuentas de AWS que son administradores de claves y los que son usuarios de claves (o ambos).

Permisos

Permite el acceso a la Cuenta de AWS y habilita las políticas de IAM

La siguiente declaración de política de claves predeterminada es fundamental.

  • Proporciona a la Cuenta de AWS propietaria de la clave KMS acceso completo a la clave KMS.

    A diferencia de otras políticas de recursos de AWS, una política de claves de AWS KMS no proporciona automáticamente permiso a la cuenta ni a ninguno de sus identidades. Para conceder permisos a los administradores de cuentas, la política de claves debe incluir una declaración explícita que proporcione este permiso, de forma similar a ésta.

  • Permite que la cuenta utilice las políticas de IAM para permitir el acceso a la clave KMS, además de la política de claves.

    Sin este permiso, las políticas de IAM que permiten el acceso a la clave son ineficaces, aunque las políticas de IAM que deniegan el acceso a la clave siguen siendo eficaces.

  • Reduce el riesgo de que la clave deje de poder administrarse dando permiso de control de acceso a los administradores de la cuenta, incluido el usuario raíz de la cuenta, que no se puede eliminar.

La siguiente declaración de política de claves es toda la política de claves predeterminada para las claves KMS creadas mediante programación. Es la primera declaración de la política predeterminada para las claves KMS creadas en la consola de AWS KMS.

{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }
Permite que las políticas de IAM permitan el acceso a la clave KMS.

La declaración de la política de claves indicada anteriormente da a la Cuenta de AWS propietaria de la clave permiso para utilizar las políticas de IAM, así como las políticas de claves, para permitir todas las acciones (kms:*) en la clave KMS.

La entidad principal en esta declaración de política de claves es la entidad principal de la cuenta, que está representada por un ARN en este formato: arn:aws:iam::account-id:root. La entidad principal de la cuenta representa la cuenta de AWS y sus administradores.

Cuando la entidad principal de una declaración de política de claves es la entidad principal de la cuenta, la declaración de política no concede permisos a ninguna entidad principal de IAM para utilizar la clave KMS. En su lugar, permite que la cuenta utilice las políticas de IAM para delegar los permisos especificados en la declaración de la política. Esta declaración de política de claves predeterminada permite a la cuenta utilizar las políticas de IAM para delegar el permiso para todas las acciones (kms:*) en la clave KMS.

reduce el riesgo de que la clave KMS deje de poder administrarse.

A diferencia de otras políticas de recursos de AWS, una política de claves de AWS KMS no proporciona automáticamente permiso a la cuenta ni a ninguna de sus entidades principales. Para dar permisos a cualquier entidad principal, incluida la entidad principal de la cuenta, debe utilizar una declaración de política de claves que proporcione los permisos de forma explícita. No es necesario dar a la entidad principal de la cuenta, ni a ninguna entidad principal, acceso a la clave KMS. Sin embargo, dar acceso a la entidad principal de la cuenta le ayuda a evitar que la clave deje de poder administrarse.

Por ejemplo, supongamos que se crea una política de claves que da acceso a la clave KMS a un solo usuario. Si posteriormente elimina ese usuario, la clave deja de poder administrarse y deberá ponerse en contacto con el servicio de asistencia de AWS para recuperar el acceso a la clave KMS.

La declaración de política de claves indicada anteriormente da permiso para controlar la clave a la entidad principal de la cuenta, que representa a la Cuenta de AWS y a sus administradores, incluido el usuario raíz de la cuenta. La cuenta de usuario raíz es la única entidad principal que no se puede eliminar a menos que se elimine la cuenta de Cuenta de AWS. Las prácticas recomendadas de IAM desaconsejan actuar en nombre del usuario raíz de la cuenta, excepto en caso de emergencia. Sin embargo, es posible que tenga que actuar como usuario raíz de la cuenta si elimina todos los demás usuarios y funciones con acceso a la clave KMS.

Permite que los administradores de claves administren la clave KMS

La política de claves predeterminada creada por la consola le permite elegir usuarios y roles de IAM de la cuenta y convertirlos en administradores de claves. Esta declaración se denomina la declaración de los administradores de claves. Los administradores de claves tienen permisos para administrar la clave KMS, pero no para utilizar la clave KMS en operaciones criptográficas. Puede agregar usuarios y roles de IAM a la lista de administradores de claves al crear la clave KMS en la vista predeterminada o en la vista de política.

aviso

Dado que los administradores de claves tienen permiso para cambiar la política de claves y crear concesiones, pueden concederse a sí mismos y a otros permisos de AWS KMS no especificados en esta política.

Las entidades principales que tienen permiso para administrar etiquetas y alias también pueden controlar el acceso a una clave KMS. Para obtener más detalles, consulte ABAC para AWS KMS.

nota

Las prácticas recomendadas de IAM desalientan el uso de usuarios de IAM con credenciales a largo plazo. Siempre que sea posible, utilice los roles de IAM, que proporcionan credenciales temporales. Para obtener más información, consulte la sección Prácticas recomendadas de seguridad de IAM en la Guía del usuario de IAM;.

En el siguiente ejemplo se muestra la declaración de los administradores de claves en la vista predeterminada de la consola de AWS KMS.


          Administradores de claves en la política de claves predeterminada de la consola, vista predeterminada

A continuación se muestra un ejemplo de declaración de los administradores de claves en la vista de política de la consola de AWS KMS. Esta declaración de los administradores de claves es para una clave KMS de cifrado simétrica de una sola región.

{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS":"arn:aws:iam::111122223333:role/ExampleAdminRole"}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }

La declaración de los administradores de claves predeterminada para la clave KMS más común, una clave KMS de cifrado simétrica de una región única, permite los siguientes permisos. Para obtener información detallada sobre cada permiso, consulte la AWS KMS permisos.

Cuando utiliza la consola de AWS KMS para crear una clave KMS, la consola agrega los usuarios y roles que especifique al elemento Principal en la declaración de los administradores de claves.

Muchos de estos permisos contienen el carácter comodín (*), que permite todos los permisos que empiezan por el verbo especificado. Como resultado, cuando AWS KMS agrega nuevas operaciones de API, los administradores de claves pueden utilizarlas automáticamente. No es necesario actualizar las políticas de claves para incluir las nuevas operaciones. Si prefiere limitar sus administradores de claves a un conjunto fijo de operaciones de API, puede cambiar la política de claves.

kms:Create*

Permite kms:CreateAlias y kms:CreateGrant. (El permiso kms:CreateKey solo es válido en una política de IAM).

kms:Describe*

Permite kms:DescribeKey. Se requiere el permiso kms:DescribeKey para ver la página de detalles de clave de una clave KMS en la AWS Management Console.

kms:Enable*

Permite kms:EnableKey. Para las claves KMS de cifrado simétricas, también se permite kms:EnableKeyRotation.

kms:List*

Permite kms:ListGrants, kms:ListKeyPolicies y kms:ListResourceTags. (Los permisos kms:ListAliases y kms:ListKeys, necesarios para ver las claves KMS en la AWS Management Console, solo son válidos en las políticas de IAM.)

kms:Put*

Permite kms:PutKeyPolicy. Este permiso permite a los administradores de claves cambiar la política de claves de esta clave KMS.

kms:Update*

Permite kms:UpdateAlias y kms:UpdateKeyDescription. Para las claves de varias regiones, permite kms:UpdatePrimaryRegion en esta clave KMS.

kms:Revoke*

Permite kms:RevokeGrant, que permite a los administradores de claves eliminar una concesión incluso si no son una entidad principal retirada en la concesión.

kms:Disable*

Permite kms:DisableKey. Para las claves KMS de cifrado simétricas, también se permite kms:DisableKeyRotation.

kms:Get*

Permite kms:GetKeyPolicy y kms:GetKeyRotationStatus. Para claves KMS con material de claves importado, permite kms:GetParametersForImport. Para claves KMS asimétricas, permite kms:GetPublicKey. Se requiere el permiso kms:GetKeyPolicy para ver la política de claves de una clave KMS en la AWS Management Console.

kms:Delete*

Permite kms:DeleteAlias. Para claves con material de claves importado, permite kms:DeleteImportedKeyMaterial. El permiso kms:Delete* no permite a los administradores de claves eliminar la clave KMS (ScheduleKeyDeletion).

kms:TagResource

Permite kms:TagResource, que permite a los administradores de claves agregar etiquetas a la clave KMS. Dado que las etiquetas también se pueden utilizar para controlar el acceso a la clave KMS, este permiso permite a los administradores permitir o denegar el acceso a la clave KMS. Para obtener más detalles, consulte ABAC para AWS KMS.

kms:UntagResource

Permite kms:UntagResource, que permite a los administradores de claves eliminar etiquetas de la clave KMS. Dado que las etiquetas se pueden utilizar para controlar el acceso a la clave, este permiso permite a los administradores permitir o denegar el acceso a la clave KMS. Para obtener más detalles, consulte ABAC para AWS KMS.

kms:ScheduleKeyDeletion

Permite kms:ScheduleKeyDeletion, que permite a los administradores de claves eliminar esta clave KMS. Para eliminar este permiso, desactive la opción Allow key administrators to delete this key (Permitir a los administradores de claves eliminar esta clave).

kms:CancelKeyDeletion

Permite kms:CancelKeyDeletion, que permite a los administradores de claves cancelar la eliminación de esta clave KMS. Para eliminar este permiso, desactive la opción Allow key administrators to delete this key (Permitir a los administradores de claves eliminar esta clave).

 

AWS KMS agrega los siguientes permisos a la declaración de los administradores de claves predeterminada al crear claves para propósitos especiales.

kms:ImportKeyMaterial

El permiso kms:ImportKeyMaterial permite a los administradores de claves importar material de claves KMS. Este permiso solo se incluye en la política de claves cuando crea una clave KMS sin material de claves.

kms:ReplicateKey

El permiso kms:ReplicateKey permite a los administradores de claves crear una réplica de una clave principal de varias regiones en una región de AWS diferente. Este permiso solo se incluye en la política de claves cuando crea una clave principal o de réplica de varias regiones.

kms:UpdatePrimaryRegion

El permiso kms:UpdatePrimaryRegion permite a los administradores de claves cambiar una clave de réplica de varias regiones a una clave principal de varias regiones. Este permiso solo se incluye en la política de claves cuando crea una clave principal o de réplica de varias regiones.

Permite a los usuarios de claves utilizar la clave KMS

La política de claves predeterminada que la consola crea para las claves KMS le permite elegir usuarios de IAM y roles de IAM de la cuenta y de las Cuentas de AWS externas, y convertirlos en usuarios de claves.

La consola agrega dos declaraciones de política a la política de claves para los usuarios de claves.

Puede agregar usuarios de IAM, roles de IAM y otras Cuentas de AWS a la lista de usuarios de claves al crear la clave KMS. También puede editar la lista con la vista predeterminada de la consola para las políticas de claves, tal como se muestra en la siguiente imagen. La vista predeterminada de las políticas de claves está disponible en la página de detalles de clave. Para obtener más información acerca de cómo permitir a los usuarios de otras Cuentas de AWS utilizar la clave KMS, consulte Permitir a los usuarios de otras cuentas utilizar una clave KMS.

nota

Las prácticas recomendadas de IAM desalientan el uso de usuarios de IAM con credenciales a largo plazo. Siempre que sea posible, utilice los roles de IAM, que proporcionan credenciales temporales. Para obtener más información, consulte la sección Prácticas recomendadas de seguridad de IAM en la Guía del usuario de IAM;.


          Usuarios de claves en la política de claves predeterminada de la consola, vista predeterminada

Las declaraciones de usuarios de claves predeterminadas para una clave simétrica de región única permite los siguientes permisos. Para obtener información detallada sobre cada permiso, consulte la AWS KMS permisos.

Cuando utiliza la consola de AWS KMS para crear una clave KMS, la consola agrega los usuarios y roles que especifique al elemento Principal en cada declaración de los usuarios de claves.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/ExampleRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/ExampleRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

Permite a los usuarios de claves utilizar una clave KMS para las operaciones criptográficas

Los usuarios de claves tienen permiso para usar la clave KMS directamente en todas las operaciones criptográficas admitidas en la clave KMS. También pueden usar la DescribeKeyoperación para obtener información detallada sobre la clave de KMS en la AWS KMS consola o mediante las operaciones de la AWS KMS API.

De forma predeterminada, la consola de AWS KMS agrega declaraciones de usuarios de claves como las de los ejemplos siguientes a la política de claves predeterminada. Debido a que son compatibles con diferentes operaciones de la API, las acciones en las declaraciones de la política para las claves KMS de cifrado simétricas, claves KMS HMAC, claves KMS asimétricas para el cifrado de claves público y las claves KMS asimétricas para la firma y la verificación son ligeramente diferentes.

Claves KMS de cifrado simétricas

La consola agrega la siguiente declaración a la política de claves para claves KMS de cifrado simétricas.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*" }
Claves KMS HMAC

La consola agrega la siguiente declaración a la política de claves para claves KMS HMAC.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GenerateMac", "kms:VerifyMac" ], "Resource": "*" }
Claves KMS asimétricas para el cifrado de claves públicas

La consola agrega la siguiente declaración a la política de claves para claves KMS asimétricas con un uso de claves de Encrypt and decrypt (Cifrar y descifrar).

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey", "kms:GetPublicKey" ], "Resource": "*" }
Claves KMS asimétricas para la firma y la verificación

La consola agrega la siguiente declaración a la política de claves para claves KMS asimétricas con un uso de claves de Sign and verify (Firmar y verificar).

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:DescribeKey", "kms:GetPublicKey", "kms:Sign", "kms:Verify" ], "Resource": "*" }

Las acciones de estas declaraciones proporcionan a los usuarios de clave los siguientes permisos.

kms:Encrypt

Permite a los usuarios de claves cifrar datos con esta clave KMS.

kms:Decrypt

Permite a los usuarios de claves descifrar los datos con esta clave KMS.

kms:DescribeKey

Permite a los usuarios de claves recuperar información sobre esta clave KMS, incluidos sus identificadores, fecha de creación, estado y mucho más. También permite a los usuarios de claves mostrar detalles acerca de la clave KMS en la consola de AWS KMS.

kms:GenerateDataKey*

Permite a los usuarios de claves solicitar una clave de datos simétrica o un par de claves de datos asimétricos para operaciones criptográficas del cliente. La consola utiliza el carácter comodín * para representar el permiso para las siguientes operaciones de API: GenerateDataKey, GenerateDataKeyWithoutPlaintextGenerateDataKeyPair, y GenerateDataKeyPairWithoutPlaintext. Estos permisos solo son válidos en las claves KMS simétricas que cifran las claves de datos.

kms: GenerateMac

Permite a los usuarios de claves utilizar una clave KMS HMAC para generar una etiqueta HMAC.

km: GetPublicKey

Permite a los usuarios de claves descargar la clave pública de la clave KMS asimétrica. Las partes con las que comparte esta clave pública pueden cifrar datos fuera de AWS KMS. Sin embargo, esos textos cifrados solo se pueden descifrar llamando a la operación Descifrar en AWS KMS.

km: ReEncrypt *

Permite a los usuarios de claves volver a cifrar los datos que se habían cifrado originalmente con esta clave KMS, o utilizar esta clave KMS para volver a cifrar los datos cifrados anteriormente. La ReEncryptoperación requiere acceso a las claves KMS de origen y destino. Para lograr esto, puede habilitar el permiso kms:ReEncryptFrom en la clave KMS fuente y el permiso kms:ReEncryptTo en la clave KMS de destino. Sin embargo, para simplificar, la consola permite kms:ReEncrypt* (con el carácter comodín *) en ambas claves KMS.

kms:Sign

Permite a los usuarios de claves firmar mensajes con esta clave KMS.

kms:Verify

Permite a los usuarios de claves verificar las firmas con esta clave KMS.

kms: VerifyMac

Permite a los usuarios de claves utilizar una clave KMS HMAC para verificar una etiqueta HMAC.

Permite a los usuarios de claves utilizar la clave KMS con los servicios de AWS

La política de claves predeterminada en la consola también proporciona a los usuarios de claves los permisos de concesión que necesitan para proteger sus datos en los servicios de AWS que utilizan concesiones. Los servicios de AWS suelen utilizar concesiones para obtener un permiso específico y limitado para utilizar una clave KMS.

Esta declaración de política de claves permite al usuario de la clave crear, ver y revocar concesiones en la clave KMS, pero sólo cuando la solicitud de operación de concesión procede de un servicio de AWS integrado con AWS KMS. La condición kms: GrantIsFor AWSResource policy no permite al usuario llamar directamente a estas operaciones de concesión. Cuando el usuario clave lo permite, un servicio de AWS puede crear una concesión en nombre del usuario que permita que el servicio utilice la clave KMS para proteger los datos del usuario.

Los usuarios de claves requieren estos permisos de concesiones para utilizar la clave KMS con los servicios integrados, pero estos permisos no son suficientes. Los usuarios de claves también necesitan permiso para utilizar los servicios integrados. Para obtener información sobre cómo conceder a los usuarios acceso a un servicio de AWS que esté integrado con AWS KMS, consulte la documentación del servicio integrado.

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

Por ejemplo, los usuarios de claves pueden utilizar estos permisos en la clave KMS de las siguientes maneras.

  • Utilice esta clave KMS con Amazon Elastic Block Store (Amazon EBS) y Amazon Elastic Compute Cloud (Amazon EC2) para adjuntar un volumen de EBS cifrado a una instancia EC2. El usuario de claves concede implícitamente a Amazon EC2 permiso para utilizar la clave KMS con el fin de asociar el volumen cifrado a la instancia. Para obtener más información, consulte ¿Cómo Amazon Elastic Block Store (Amazon EBS) utiliza AWS KMS?.

  • Utilice esta clave KMS con Amazon Redshift para lanzar un clúster cifrado. El usuario de claves concede implícitamente a Amazon Redshift permiso para utilizar la clave KMS con el fin de lanzar el clúster cifrado y crear instantáneas cifradas. Para obtener más información, consulte ¿Cómo Amazon Redshift utiliza AWS KMS?.

  • Utilice esta clave KMS con otros servicios de AWS integrados con AWS KMS, que utilizan concesiones, para crear, administrar o usar recursos cifrados con esos servicios.

La política de claves predeterminada permite a los usuarios de claves delegar su permiso de concesión a todos los servicios integrados que utilizan concesiones. Sin embargo, puede crear una política de claves personalizada que limite los permisos a servicios de AWS específicos. Para obtener más información, consulte la clave de condición kms: ViaService.