Examinar la política de claves - AWS Key Management Service

Examinar la política de claves

Las políticas de claves son la forma principal de controlar el acceso a las claves KMS. Cada clave KMS tiene exactamente una política de claves.

Cuando una política de claves consta de la política de claves predeterminada o la incluye, la política de claves permite a los administradores de IAM de la cuenta utilizar políticas de IAM para controlar el acceso a la clave KMS. Además, si la política de claves da permiso a otra Cuenta de AWS para que utilice la clave KMS, los administradores de IAM de la cuenta externa pueden utilizar políticas de IAM para delegar dichos permisos. Para determinar la lista completa de entidades principales que pueden obtener acceso a la clave KMS, examine las políticas de IAM.

Para visualizar la política de claves de una clave administrada por cliente de AWS KMS o una Clave administrada de AWS en su cuenta, use la Consola de administración de AWS o la operación GetKeyPolicy en la API de AWS KMS. Para ver la política de claves, debe tener permisos kms:GetKeyPolicy para la clave KMS. Para obtener declaraciones acerca de cómo ver la política de claves para una clave KMS, consulte Visualización de políticas de claves.

Examine el documento de políticas de claves y anote todas las entidades principales especificadas en el elemento Principal de cada declaración de política. En una declaración de política con un efecto Allow, los usuarios de IAM, los roles de IAM y las Cuentas de AWS en el elemento Principal tienen acceso a esta clave KMS.

nota

No establezca la Entidad principal en un asterisco (*) en ninguna declaración de política de claves que permita permisos a menos que utilice condiciones para limitar la política de claves. Un asterisco da cada identidad en cada permiso de Cuenta de AWS para utilizar la clave de KMS, a menos que otra declaración de política lo deniegue explícitamente. Los usuarios de otras Cuentas de AWS pueden usar la clave de KMS siempre que tengan los permisos correspondientes en sus propias cuentas.

En los siguientes ejemplos se utilizan las declaraciones de política existentes en la política de claves predeterminada para demostrar cómo hacerlo.

ejemplo Declaración de política 1
{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }

En la declaración de política 1, arn:aws:iam::111122223333:root es una cuenta de AWS de entidad principal que hace referencia a la Cuenta de AWS 111122223333. (No es el usuario raíz de la cuenta). De forma predeterminada, una declaración de política como esta se incluye en el documento de políticas de claves al crear una clave KMS nueva con la Consola de administración de AWS, o al crear una KMS nueva mediante programación, pero no proporcionan una política de claves.

Un documento de políticas de claves con una declaración que permita el acceso a la Cuenta de AWS habilita las políticas de IAM en la cuenta para permitir el acceso a la clave KMS. Esto significa que los usuarios y las roles de la cuenta podrían tener acceso a la clave KMS aunque no se indiquen explícitamente como entidades principales en el documento de políticas de claves. Examine todas las políticas de IAM en todas las Cuentas de AWS mencionadas como entidades principales para determinar si permiten el acceso a esta clave KMS.

ejemplo Declaración de política 2
{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/KMSKeyAdmins"}, "Action": [ "kms:Describe*", "kms:Put*", "kms:Create*", "kms:Update*", "kms:Enable*", "kms:Revoke*", "kms:List*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }

En la declaración de política 2, arn:aws:iam::111122223333:role/KMSKeyAdmins hace referencia al rol de IAM denominado KMSKeyAdmin en la Cuenta de AWS 111122223333. Los usuarios que están autorizados a asumir este rol pueden realizar las acciones enumeradas en la declaración de política, que son las acciones administrativas para administrar una clave KMS.

ejemplo Declaración de política 3
{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"}, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey*", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*" }

En la declaración de la política 3, arn:aws:iam::111122223333:role/EncryptionApp se refiere al rol de IAM denominado EncryptionApp en la Cuenta de AWS 111122223333. Las entidades principales que están autorizadas a asumir este rol tienen permiso para realizar las acciones enumeradas en la declaración de política, que incluyen las operaciones criptográficas para una clave KMS de cifrado simétrico.

ejemplo Declaración de política 4
{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"}, "Action": [ "kms:ListGrants", "kms:CreateGrant", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }

En la declaración de la política 4, arn:aws:iam::111122223333:role/EncryptionApp se refiere al rol de IAM denominado EncryptionApp en la Cuenta de AWS 111122223333. Las entidades principales que están autorizadas a asumir este rol tienen permiso para realizar las acciones enumeradas en la declaración de política. Estas acciones, cuando se combinan con las acciones permitidas en Ejemplo de declaración de política 3, son las necesarias para delegar el uso de la clave KMS a la mayoría de los servicios de AWS que se integran con AWS KMS, específicamente los servicios que usan concesiones. El valor kms:GrantIsForAWSResource del elemento Condition garantiza que la delegación solo se permite cuando el delegado es un servicio de AWS que se integra con AWS KMS y utiliza concesiones para la autorización.

Para conocer las distintas formas en las que puede especificar una entidad principal en un documento de políticas de claves, consulte Especificación de un elemento principal en la Guía del usuario de IAM.

Para obtener más información sobre las políticas de claves de AWS KMS, consulte Políticas de claves en AWS KMS.