Ejemplos de políticas de IAM - 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.

Ejemplos de políticas de IAM

En esta sección, encontrará ejemplos de políticas de IAM que conceden permisos para varias acciones de AWS KMS .

importante

Algunos de los permisos de las siguientes políticas solo se permiten cuando la política de claves de la clave KMS también los permite. Para obtener más información, consulte Referencia de permisos.

Para obtener ayuda sobre cómo escribir y dar formato a un documento de política JSON, consulte la Referencia de políticas JSON de IAM en la Guía del usuario de IAM.

Permita que un usuario vea las claves de KMS en la consola AWS KMS

La siguiente política de IAM permite a los usuarios el acceso de solo lectura a la consola. AWS KMS Los usuarios con estos permisos pueden ver todas las claves de KMS que contienen Cuenta de AWS, pero no pueden crear ni cambiar ninguna clave de KMS.

Para ver las claves de KMS en las páginas de claves administradas por el cliente Claves administradas por AWSy en las páginas de claves administradas por el clienteListAliases, los directores necesitan GetResources los permisos kms:, kms: y tag:, incluso si las claves no tienen etiquetas ni alias. ListKeys Los permisos restantes, especialmente kms: DescribeKey, son necesarios para ver las columnas y los datos opcionales de la tabla de claves de KMS en las páginas de detalles clave de KMS. Los ListRoles permisos iam: ListUsers e iam: son necesarios para mostrar la política clave en la vista predeterminada sin errores. Para ver los datos de la página de almacenes de claves personalizados y los detalles sobre las claves de KMS en los almacenes de claves personalizados, los directores también necesitan el permiso kms:. DescribeCustomKeyStores

Si limita el acceso de la consola de un usuario a determinadas claves KMS, la consola muestra un error para cada clave KMS que no está visible.

Esta política incluye dos declaraciones de política. El elemento Resource en la primera declaración de política permite los permisos especificados en todas las claves KMS en todas las regiones del ejemplo Cuenta de AWS. Los lectores de la consola no necesitan acceso adicional porque la consola AWS KMS muestra solo las claves KMS en la cuenta de la entidad principal. Esto es cierto incluso si tienen permiso para ver las claves de KMS en otros Cuentas de AWS. El resto de los permisos AWS KMS y los de IAM requieren un "Resource": "*" elemento porque no se aplican a ninguna clave de KMS concreta.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOnlyAccessForAllKMSKeysInAccount", "Effect": "Allow", "Action": [ "kms:GetPublicKey", "kms:GetKeyRotationStatus", "kms:GetKeyPolicy", "kms:DescribeKey", "kms:ListKeyPolicies", "kms:ListResourceTags", "tag:GetResources" ], "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "ReadOnlyAccessForOperationsWithNoKMSKey", "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases", "iam:ListRoles", "iam:ListUsers" ], "Resource": "*" } ] }

Permitir a un usuario crear claves KMS

La siguiente política de IAM permite a un usuario crear todos los tipos de claves KMS. El valor del Resource elemento se * debe a que la CreateKey operación no utiliza ningún AWS KMS recurso concreto (claves o alias de KMS).

Para restringir al usuario a determinados tipos de claves de KMS, utilice las claves de KeyOrigin condición kms: KeyUsage, kms: y kms:. KeySpec

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" } }

Es posible que las principales entidades que crean claves necesiten algunos permisos relacionados.

  • kms: PutKeyPolicy — Los directores que tengan kms:CreateKey permiso pueden establecer la política de claves inicial para la clave de KMS. Sin embargo, la CreateKey persona que llama debe tener el PutKeyPolicy permiso kms:, que le permite cambiar la política de claves de KMS, o debe especificar el BypassPolicyLockoutSafetyCheck parámetro deCreateKey, lo cual no es recomendable. La persona que llama CreateKey puede obtener permiso kms:PutKeyPolicy para la clave KMS desde una política de IAM o pueden incluir este permiso en la política de claves de la clave KMS que están creando.

  • kms: TagResource — Para añadir etiquetas a la clave KMS durante la CreateKey operación, la persona que CreateKey llama debe tener el TagResource permiso kms: en una política de IAM. Incluir este permiso en la política de claves de la nueva clave KMS no es suficiente. Sin embargo, si la persona que llama a CreateKey incluye kms:TagResource en la política de clave inicial, pueden agregar etiquetas en una llamada separada después de crear la clave KMS.

  • kms: CreateAlias — Los responsables que creen una clave KMS en la AWS KMS consola deben tener el CreateAlias permiso kms: en la clave KMS y en el alias. (La consola realiza dos llamadas; una a CreateKey y una a CreateAlias). Debe proporcionar el permiso de alias en una política de IAM. Puede proporcionar estos permisos en una política de claves, una política de IAM o una concesión. Para obtener más detalles, consulte Control del acceso a alias.

Ademáskms:CreateKey, la siguiente política de IAM otorga kms:TagResource permisos a todas las claves de KMS de la cuenta Cuenta de AWS y kms:CreateAlias a todos los alias de la cuenta. También incluye algunos permisos de solo lectura útiles que únicamente se pueden proporcionar en una política de IAM.

Esta política de IAM no incluye permiso kms:PutKeyPolicy ni ningún otro permiso que se pueda establecer en una política de clave. Es una práctica recomendada para establecer estos permisos en la política de claves donde se aplican exclusivamente a una clave KMS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPermissionsForParticularKMSKeys", "Effect": "Allow", "Action": "kms:TagResource", "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "IAMPermissionsForParticularAliases", "Effect": "Allow", "Action": "kms:CreateAlias", "Resource": "arn:aws:kms:*:111122223333:alias/*" }, { "Sid": "IAMPermissionsForAllKMSKeys", "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" } ] }

Permita que un usuario cifre y descifre con cualquier clave KMS de una determinada Cuenta de AWS

La siguiente política de IAM permite a los usuarios cifrar y descifrar datos con cualquier clave de KMS en 111122223333. Cuenta de AWS

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:*:111122223333:key/*" } }

Permita que un usuario cifre y descifre con cualquier clave de KMS en una región específica Cuenta de AWS

La siguiente política de IAM permite a los usuarios cifrar y descifrar datos con cualquier clave KMS Cuenta de AWS 111122223333 en la región EE.UU. Oeste (Oregón).

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/*" ] } }

Permitir a un usuario cifrar y descifrar con claves KMS específicas

La siguiente política de IAM permite a un usuario cifrar y descifrar datos con las dos claves KMS especificadas en el elemento Resource. Al especificar una clave KMS en una declaración de política de IAM, debe utilizar la ARN de clave de la clave KMS.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" ] } }

Impedir a un usuario desactivar o eliminar cualquier clave KMS

La siguiente política de IAM impide que un usuario deshabilite o elimine cualquier clave KMS, aunque otra política de IAM o política de claves conceda estos permisos. Una política que deniega de forma explícita los permisos anula todas las demás políticas, incluso aquellas que hayan permitido explícitamente los mismos permisos. Para obtener más información, consulte Solución de problemas de acceso a las claves.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "kms:DisableKey", "kms:ScheduleKeyDeletion" ], "Resource": "*" } }