

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.

# Determinar el acceso a AWS KMS keys
<a name="determining-access"></a>

Para determinar el alcance total de quién o qué tiene acceso actualmente a una clave AWS KMS key, debes examinar la política clave de la clave de KMS, todas las [concesiones](grants.md) que se aplican a la clave de KMS y, posiblemente, todas las políticas AWS Identity and Access Management (de IAM). Puede hacerlo para determinar el ámbito del uso potencial de una clave KMS o como ayuda para cumplir los requisitos de conformidad o auditoría. Los siguientes temas pueden ayudarle a generar una lista completa de las entidades principales de AWS (identidades) que actualmente tienen acceso a una clave KMS.

**Topics**
+ [

# Examinar la política de claves
](determining-access-key-policy.md)
+ [

# Examen de las políticas de IAM
](determining-access-iam-policies.md)
+ [

# Examinar concesiones
](determining-access-grants.md)

# Examinar la política de claves
<a name="determining-access-key-policy"></a>

Las [políticas de claves](key-policies.md) 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](key-policy-default.md#key-policy-default-allow-root-enable-iam) 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](key-policy-modifying-external-accounts.md) 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](determining-access-iam-policies.md). 

Para ver la política clave de una [clave gestionada por el AWS KMS cliente](concepts.md#customer-mgn-key) o [Clave administrada de AWS](concepts.md#aws-managed-key)de tu cuenta, utiliza la [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html)operación Consola de administración de AWS o la de la AWS KMS API. 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](key-policy-viewing.md).

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 que `Allow` surta efecto, los usuarios de IAM, las funciones de IAM y Cuentas de AWS el `Principal` elemento tienen acceso a esta clave de KMS.

**nota**  
No establezca la Entidad principal en un asterisco (\$1) en ninguna declaración de política de claves que permita permisos a menos que utilice [condiciones](policy-conditions.md) para limitar la política de claves. Un asterisco indica todas las identidades de cada Cuenta de AWS permiso para usar la clave de KMS, a menos que otra declaración de política lo deniegue explícitamente. Los usuarios de otros usuarios Cuentas de AWS pueden usar su clave de KMS siempre que tengan los permisos correspondientes en su propia cuenta.

En los siguientes ejemplos se utilizan las declaraciones de política existentes en la [política de claves predeterminada](key-policy-default.md) para demostrar cómo hacerlo.

**Example 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 un [principal de AWS cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) que hace referencia al 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ítica clave cuando se crea una nueva clave de KMS con la o se crea una nueva clave de KMS mediante programación Consola de administración de AWS, pero no se proporciona una política clave.  
Un documento de política clave con una declaración que permite el acceso a las [políticas de IAM de la cuenta Cuenta de AWS permite el acceso a la](key-policy-default.md#key-policy-default-allow-root-enable-iam) clave de 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. Asegúrese de [examinar todas las políticas de IAM](determining-access-iam-policies.md) de todas las que Cuentas de AWS figuran como principales para determinar si permiten el acceso a esta clave de KMS.

**Example 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 a la función de IAM denominada KMSKey Administradores en 111122223333. Cuenta de AWS 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.

**Example 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 política 3, `arn:aws:iam::111122223333:role/EncryptionApp` hace referencia a la función de IAM nombrada en 111122223333. EncryptionApp Cuenta de AWS 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](kms-cryptography.md#cryptographic-operations) para una clave KMS de cifrado simétrico.

**Example 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 política 4, `arn:aws:iam::111122223333:role/EncryptionApp` hace referencia a la función de IAM nombrada en 111122223333. EncryptionApp Cuenta de AWS 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](service-integration.md), específicamente los servicios que usan [concesiones](grants.md). El GrantIsFor AWSResource valor [kms:](conditions-kms.md#conditions-kms-grant-is-for-aws-resource) del `Condition` elemento garantiza que la delegación solo esté permitida cuando el delegado sea un AWS servicio que se integre con las concesiones de autorización AWS KMS y las utilice.

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

Para obtener más información sobre las políticas AWS KMS clave, consulte[Políticas clave en AWS KMS](key-policies.md).

# Examen de las políticas de IAM
<a name="determining-access-iam-policies"></a>

Además de la política de claves y concesiones, también puede utilizar [políticas de IAM](iam-policies.md) para permitir el acceso a una clave KMS. Para obtener más información sobre cómo funcionan las políticas de IAM y las políticas de claves de forma conjunta, consulte [Solución de problemas de AWS KMS permisos](policy-evaluation.md).

Para determinar qué entidades principales tienen acceso a una clave KMS a través de las políticas de IAM, puede utilizar la herramienta del [simulador de políticas de IAM](https://policysim.aws.amazon.com/) o puede realizar solicitudes a la API de IAM.

**Contents**
+ [

## Examen de las políticas de IAM con el simulador de políticas de IAM
](#determining-access-iam-policy-simulator)
+ [

## Examen de políticas de IAM con la API de IAM
](#determining-access-iam-api)

## Examen de las políticas de IAM con el simulador de políticas de IAM
<a name="determining-access-iam-policy-simulator"></a>

El simulador de políticas de IAM puede ayudarle a saber qué entidades principales tienen acceso a una clave KMS mediante una política de IAM.

**Para utilizar el simulador de políticas de IAM para determinar el acceso a una clave KMS**

1. Inicie sesión en el simulador de políticas de IAM Consola de administración de AWS y, a continuación, abra el simulador de políticas de IAM en[https://policysim.aws.amazon.com/](https://policysim.aws.amazon.com/).

1. En el panel **Users, Groups, and Roles**, elija el usuario, grupo o rol cuyas políticas desee simular.

1. (Opcional) Desactive la casilla de verificación situada junto a la política que desee omitir en la simulación. Para simular todas las políticas, deje todas las políticas seleccionadas.

1. En el panel **Policy Simulator**, haga lo siguiente:

   1. En **Select service**, elija **Key Management Service**.

   1. Para simular AWS KMS acciones específicas, en **Seleccionar acciones**, elija las acciones que desee simular. Para simular todas AWS KMS las acciones, elija **Seleccionar todo**.

1. (Opcional) El simulador de políticas simula el acceso a todas las claves KMS de forma predeterminada. Para simular el acceso a una clave KMS específica, elija **Simulation Settings (Configuraciones de simulación)** y, a continuación, escriba el nombre de recurso de Amazon (ARN) de la clave KMS que se simulará.

1. Elija **Run Simulation (Ejecutar la simulación)**.

Puede ver los resultados de la simulación en la sección **Results**. Repita los pasos del 2 al 6 por cada usuario, grupo y rol de la Cuenta de AWS.

## Examen de políticas de IAM con la API de IAM
<a name="determining-access-iam-api"></a>

Puede utilizar la API de IAM para examinar políticas de IAM mediante programación. En los pasos siguientes se ofrece información general sobre cómo hacerlo:

1. Utilice las [ListRoles](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListRoles.html)operaciones y de la API de IAM para obtener todos los usuarios [ListUsers](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListUsers.html)y funciones de la [AWS cuenta para cada entidad que Cuenta de AWS figure como principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html#principal-accounts) en la política clave (es decir, cada principal de cuenta especificado en este formato`"Principal": {"AWS": "arn:aws:iam::111122223333:root"}`).

1. Para cada usuario y rol de la lista, usa la [SimulatePrincipalPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SimulatePrincipalPolicy.html)operación en la API de IAM e introduce los siguientes parámetros:
   + Para `PolicySourceArn`, especifique el nombre de recurso de Amazon (ARN) de un usuario o rol de la lista. Puede especificar solo un `PolicySourceArn` para cada solicitud `SimulatePrincipalPolicy`, de modo que debe llamar a esta operación varias veces, una vez por cada usuario y rol de la lista.
   + En la `ActionNames` lista, especifique todas las acciones de la AWS KMS API que desee simular. Para simular todas las acciones de la AWS KMS API, utilice`kms:*`. Para probar las acciones individuales de la AWS KMS API, ponga "`kms:`«, por ejemplo,"» antes de cada acción de la API`kms:ListKeys`. Si desea ver una lista completa de las acciones de la API de AWS KMS , consulte [Acciones](https://docs.aws.amazon.com/kms/latest/APIReference/API_Operations.html) en la *Referencia de la API de AWS Key Management Service *.
   + (Opcional) Para determinar si los usuarios o los roles tienen acceso a claves de KMS específicas, utilice el `ResourceArns` parámetro para especificar una lista de los nombres de recursos de Amazon (ARNs) de las claves de KMS. Para determinar si los usuarios o roles tienen acceso a cualquier clave KMS, no use el parámetro `ResourceArns`.

IAM responde a cada solicitud de `SimulatePrincipalPolicy` con una decisión de evaluación: `allowed`, `explicitDeny` o `implicitDeny`. Para cada respuesta que contenga una decisión de evaluación sobre`allowed`, la respuesta incluye el nombre de la operación de AWS KMS API específica que está permitida. También incluye el ARN de la clave KMS utilizado en la evaluación, si se ha realizado.

# Examinar concesiones
<a name="determining-access-grants"></a>

Las concesiones son mecanismos avanzados para especificar los permisos que usted o un AWS servicio integrado AWS KMS pueden usar para especificar cómo y cuándo se puede usar una clave de KMS. Las concesiones están asociadas a una clave KMS, y cada concesión contiene la entidad principal que recibe el permiso de usar la clave KMS y una lista de las operaciones permitidas. Las concesiones son una alternativa a la política de claves, y son útiles para casos de uso específicos. Para obtener más información, consulte [Subvenciones en AWS KMS](grants.md).

Para obtener una lista de las concesiones de una clave KMS, utilice la AWS KMS [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html)operación. Puede examinar las concesiones de una clave KMS para determinar quién o qué tiene acceso actualmente para utilizar la clave KMS a través de dichas concesiones. Por ejemplo, a continuación se ofrece una representación JSON de una concesión que se ha obtenido del comando [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) en la AWS CLI.

```
{"Grants": [{
  "Operations": ["Decrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "0d8aa621-43ef-4657-b29c-3752c41dc132",
  "RetiringPrincipal": "arn:aws:iam::123456789012:root",
  "GranteePrincipal": "arn:aws:sts::111122223333:assumed-role/aws:ec2-infrastructure/i-5d476fab",
  "GrantId": "dc716f53c93acacf291b1540de3e5a232b76256c83b2ecb22cdefa26576a2d3e",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151834E9,
  "Constraints": {"EncryptionContextSubset": {"aws:ebs:id": "vol-5cccfb4e"}}
}]}
```

Para averiguar quién o qué tiene acceso para utilizar la clave KMS, busque el elemento `"GranteePrincipal"`. En el ejemplo anterior, la entidad principal beneficiaria es un usuario de rol asumido que está asociado con la instancia EC2 i-5d476fab, que la infraestructura de EC2 usa para asociar el volumen de EBS cifrado vol-5cccfb4e a la instancia. En este caso, el rol de infraestructura EC2 tiene permiso para usar la clave KMS porque anteriormente ha creado un volumen de EBS cifrado que está protegido por esta clave KMS y, después, ha asociado el volumen a una instancia EC2.

A continuación, se ofrece otro ejemplo de una representación JSON de una concesión que se ha obtenido del comando [list-grants](https://docs.aws.amazon.com/cli/latest/reference/kms/list-grants.html) en la AWS CLI. En el siguiente ejemplo, el cesionario principal es otro. Cuenta de AWS

```
{"Grants": [{
  "Operations": ["Encrypt"],
  "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "Name": "",
  "GranteePrincipal": "arn:aws:iam::444455556666:root",
  "GrantId": "f271e8328717f8bde5d03f4981f06a6b3fc18bcae2da12ac38bd9186e7925d11",
  "IssuingAccount": "arn:aws:iam::111122223333:root",
  "CreationDate": 1.444151269E9
}]}
```