

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
<a name="customer-managed-policies"></a>

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](kms-api-permissions-reference.md).

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) en la *Guía del usuario de IAM*.

**Topics**
+ [Permita que un usuario vea las claves de KMS en la AWS KMS consola](#iam-policy-example-read-only-console)
+ [Permitir a un usuario crear claves KMS](#iam-policy-example-create-key)
+ [Permita que un usuario cifre y descifre con cualquier clave KMS de una clave específica Cuenta de AWS](#iam-policy-example-encrypt-decrypt-one-account)
+ [Permite a un usuario cifrar y descifrar con cualquier clave de KMS de una región específica Cuenta de AWS](#iam-policy-example-encrypt-decrypt-one-account-one-region)
+ [Permitir a un usuario cifrar y descifrar con claves KMS específicas](#iam-policy-example-encrypt-decrypt-specific-cmks)
+ [Impedir a un usuario desactivar o eliminar cualquier clave KMS](#iam-policy-example-deny-disable-delete)

## Permita que un usuario vea las claves de KMS en la AWS KMS consola
<a name="iam-policy-example-read-only-console"></a>

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 AWS****y las claves administradas por el clienteListKeys, los directores necesitan GetResources los permisos [kms: ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html)[, kms: y tag:](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html), incluso si las claves no tienen etiquetas ni alias.](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) Los permisos restantes, especialmente [kms: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html), 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](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html) e [iam:](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html) 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](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html):. 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. Los permisos restantes AWS KMS y de IAM requieren un `"Resource": "*"` elemento porque no se aplican a ninguna clave de KMS en particular.

------
#### [ JSON ]

****  

```
{
  "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
<a name="iam-policy-example-create-key"></a>

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](conditions-kms.md#conditions-kms-key-usage), kms: y [kms:](conditions-kms.md#conditions-kms-key-origin). KeySpec](conditions-kms.md#conditions-kms-key-spec)

------
#### [ JSON ]

****  

```
{
  "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:](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html), que le permite cambiar la política de claves de KMS, o debe especificar el `BypassPolicyLockoutSafetyCheck` parámetro de`CreateKey`, 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:](https://docs.aws.amazon.com/kms/latest/APIReference/API_TagResource.html) 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:](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateAlias.html) 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 información, consulte [Control del acceso a alias](alias-access.md).

Además`kms: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](iam-policies-best-practices.md) para establecer estos permisos en la política de claves donde se aplican exclusivamente a una clave KMS.

------
#### [ JSON ]

****  

```
{
  "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 clave específica Cuenta de AWS
<a name="iam-policy-example-encrypt-decrypt-one-account"></a>

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

------
#### [ JSON ]

****  

```
{
  "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 clave de KMS de una región específica Cuenta de AWS
<a name="iam-policy-example-encrypt-decrypt-one-account-one-region"></a>

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).

------
#### [ JSON ]

****  

```
{
  "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
<a name="iam-policy-example-encrypt-decrypt-specific-cmks"></a>

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](concepts.md#key-id-key-ARN) de la clave KMS.

------
#### [ JSON ]

****  

```
{
  "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/01234abc-d12a-b34c-d56e-f1234567890a'"
    ]
  }
}
```

------

## Impedir a un usuario desactivar o eliminar cualquier clave KMS
<a name="iam-policy-example-deny-disable-delete"></a>

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 AWS KMS permisos](policy-evaluation.md).

------
#### [ JSON ]

****  

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

------