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 KMS claves de la clave también los permite. Para obtener más información, consulte Referencia de permisos.

Para obtener ayuda sobre la redacción y el formato JSON de un documento de IAMJSONpolítica, consulte la referencia de políticas en la Guía del IAM usuario.

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

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

Para ver KMS las claves en las páginas de claves administradas por el cliente Claves administradas por AWSy en las páginas de claves administradas por el clienteListKeys, los directores necesitan GetResources los permisos kms: ListAliases, kms: y tag:, incluso si las claves no tienen etiquetas ni alias. Los permisos restantes, especialmente kms: DescribeKey, son necesarios para ver las columnas y los datos opcionales de las tablas KMS clave en las páginas de detalles KMS clave. 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 KMS las claves de los almacenes de claves personalizados, los directores también necesitan el permiso kms:. DescribeCustomKeyStores

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

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

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

Permita que un usuario cree KMS claves

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

Para restringir al usuario a determinados tipos de KMS claves, utilice las claves KeyOrigincondicionales KeySpec kms: KeyUsage, kms: y kms:.

{ "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 KMS clave. Sin embargo, la CreateKey persona que llama debe tener el PutKeyPolicy permiso kms:, que le permite cambiar la política KMS clave, o debe especificar el BypassPolicyLockoutSafetyCheck parámetro deCreateKey, lo cual no es recomendable. La CreateKey persona que llama puede obtener el kms:PutKeyPolicy permiso para la KMS clave mediante una IAM política o puede incluir este permiso en la política de claves de la KMS clave que está creando.

  • kms: TagResource — Para añadir etiquetas a la KMS clave durante la CreateKey operación, la CreateKey persona que llama debe tener el TagResource permiso kms: en una IAM política. No basta con incluir este permiso en la política de claves de la nueva KMS clave. Sin embargo, si la CreateKey persona que llama lo incluye kms:TagResource en la política de claves inicial, podrá añadir etiquetas en una llamada independiente una vez creada la KMS clave.

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

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

Esta IAM política no incluye el kms:PutKeyPolicy permiso ni ningún otro permiso que se pueda establecer en una política clave. Se recomienda establecer estos permisos en la política de claves, donde se aplican exclusivamente a una KMS clave.

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

Permite a un usuario cifrar y descifrar con cualquier KMS clave de una determinada Cuenta de AWS

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

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

Permite a un usuario cifrar y descifrar con cualquier KMS clave de una región específica Cuenta de AWS

La siguiente IAM política permite a los usuarios cifrar y descifrar datos con cualquier KMS clave 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/*" ] } }

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

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

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

Impida que un usuario desactive o elimine alguna clave KMS

La siguiente IAM política impide que un usuario deshabilite o elimine cualquier KMS clave, incluso cuando otra IAM política o una política de claves permita 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 permisos de AWS KMS.

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