

# Identificadores de IAM
<a name="reference_identifiers"></a>

IAM utiliza varios identificadores diferentes para usuarios, grupos de IAM, roles, políticas y certificados de servidor. En esta sección se describen los identificadores y cuándo se utilizan cada uno de ellos.

**Topics**
+ [

## Nombres fáciles de recordar y rutas
](#identifiers-friendly-names)
+ [

## ARN de IAM
](#identifiers-arns)
+ [

## Identificadores únicos
](#identifiers-unique-ids)
+ [

## Descripción de los prefijos de ID único
](#identifiers-prefixes)
+ [

## Obtener el identificador único
](#identifiers-get-unique-id)

## Nombres fáciles de recordar y rutas
<a name="identifiers-friendly-names"></a>

Cuando crea un usuario, un rol, un grupo de usuarios o una política, o cuando carga un certificado de servidor, le asigna un nombre descriptivo. Entre los ejemplos se incluyen Julio, AppPrueba1, Desarrolladores, AdministrarPermisosCredenciales o CertServidorProd. 

Si utiliza la API de IAM o AWS Command Line Interface (AWS CLI) para crear recursos de IAM, puede agregar una ruta opcional. Puede utilizar una ruta única o anidar varias rutas como si se tratara de una estructura de carpetas. Por ejemplo, puede utilizar la ruta anidada `/division_abc/subdivision_xyz/product_1234/engineering/` para adaptarla a la estructura organizativa de su empresa. A continuación, puede crear una política para permitir a todos los usuarios de la ruta el acceso a la API del simulador de políticas. Para consultar esta política, visite [IAM: obtiene acceso a la API del simulador de políticas en función de la ruta de acceso del usuario](reference_policies_examples_iam_policy-sim-path.md). Para obtener información acerca de cómo se puede especificar un nombre descriptivo, consulte [la documentación de la API de usuario](https://docs.aws.amazon.com/IAM/latest/APIReference/API_User.html). Para obtener más ejemplos de cómo utilizar las rutas, consulte [ARN de IAM](#identifiers-arns).

Cuando se utiliza CloudFormation para crear recursos, se puede especificar una ruta para los usuarios, los grupos de IAM, los roles y las políticas administradas por el cliente.

Si tiene un usuario y un grupo de usuarios en la misma ruta, IAM no coloca automáticamente al usuario en ese grupo de usuarios. Por ejemplo, puede crear un grupo de usuarios de desarrolladores y especificar su ruta como `/division_abc/subdivision_xyz/product_1234/engineering/`. Si crea un usuario llamado Bob y le agrega la misma ruta, esto no significa que Bob sea automáticamente miembro del grupo de usuarios Developers. IAM no aplica ningún límite entre los usuarios o los grupos de IAM en función de sus rutas. Puede haber usuarios con diferentes rutas que usen los mismos recursos, si se les haya concedido permiso sobre dichos recursos. El número y el tamaño de recursos de IAM en una cuenta de AWS son limitados. Para obtener más información, consulte [IAM y cuotas de AWS STS](reference_iam-quotas.md).

## ARN de IAM
<a name="identifiers-arns"></a>

La mayoría de los recursos tienen un nombre fácil de recordar, por ejemplo, un usuario denominado `Bob` o un grupo de usuarios denominado `Developers`. Sin embargo, el lenguaje de la política de permisos requiere que especifique el recurso o los recursos con el formato de *nombre de recurso de Amazon (ARN)* siguiente. 

```
arn:partition:service:region:account:resource
```

Donde:
+ `partition` identifica la partición para el recurso. Para las regiones estándar de AWS, la partición es `aws`. Si tiene recursos en otras particiones, la partición es `aws-partitionname`. Por ejemplo, la partición de los recursos de la región China (Pekín) es `aws-cn`. No se puede [delegar el acceso](access_policies-cross-account-resource-access.md#access_policies-cross-account-delegating-resource-based-policies) entre cuentas en particiones diferentes.
+ `service` identifica el producto de AWS. Los recursos de IAM siempre usan `iam`.
+ `region` identifica la región del recurso. En el caso de los recursos de IAM, se deja siempre en blanco.
+ La `account` especifica el ID de Cuenta de AWS sin guiones.
+ `resource` identifica el recurso específico por su nombre.

Puede especificar los ARN de IAM y AWS STS utilizando la siguiente sintaxis. La parte de la región del ARN está en blanco porque los recursos de IAM son globales. 

Sintaxis:

```
arn:aws:iam::account:root  
arn:aws:iam::account:user/user-name-with-path
arn:aws:iam::account:group/group-name-with-path
arn:aws:iam::account:role/role-name-with-path
arn:aws:iam::account:policy/policy-name-with-path
arn:aws:iam::account:instance-profile/instance-profile-name-with-path
arn:aws:sts::account:federated-user/user-name
arn:aws:sts::account:assumed-role/role-name/role-session-name
arn:aws:sts::account:self
arn:aws:iam::account:mfa/virtual-device-name-with-path
arn:aws:iam::account:u2f/u2f-token-id
arn:aws:iam::account:server-certificate/certificate-name-with-path
arn:aws:iam::account:saml-provider/provider-name
arn:aws:iam::account:oidc-provider/provider-name
arn:aws:iam::aws:contextProvider/context-provider-name
```

Muchos de los ejemplos siguientes incluyen rutas en la parte del recurso de ARN. Las rutas no se pueden crear ni manipular en la Consola de administración de AWS. Para utilizar rutas, debe trabajar con el recurso utilizando API de AWS, el AWS CLI o Tools for Windows PowerShell.

Ejemplos:

```
arn:aws:iam::123456789012:root
arn:aws:iam::123456789012:user/John
arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/Jane
arn:aws:iam::123456789012:group/Developers
arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_A/Developers
arn:aws:iam::123456789012:role/S3Access
arn:aws:iam::123456789012:role/application_abc/component_xyz/RDSAccess
arn:aws:iam::123456789012:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer
arn:aws:iam::123456789012:role/service-role/QuickSightAction
arn:aws:iam::123456789012:policy/UsersManageOwnCredentials
arn:aws:iam::123456789012:policy/division_abc/subdivision_xyz/UsersManageOwnCredentials
arn:aws:iam::123456789012:instance-profile/Webserver
arn:aws:sts::123456789012:federated-user/John
arn:aws:sts::123456789012:assumed-role/Accounting-Role/Jane
arn:aws:sts::123456789012:self
arn:aws:iam::123456789012:mfa/JaneMFA
arn:aws:iam::123456789012:u2f/user/John/default (U2F security key)
arn:aws:iam::123456789012:server-certificate/ProdServerCert
arn:aws:iam::123456789012:server-certificate/division_abc/subdivision_xyz/ProdServerCert
arn:aws:iam::123456789012:saml-provider/ADFSProvider
arn:aws:iam::123456789012:oidc-provider/GoogleProvider
arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-west-2.amazonaws.com/id/a1b2c3d4567890abcdefEXAMPLE11111
arn:aws:iam::123456789012:oidc-provider/server.example.org
arn:aws:iam::aws:contextProvider/IdentityCenter
```

Los siguientes ejemplos proporcionan más detalles para permitirle conocer el formato de ARN para los diferentes tipos de recursos de IAM y AWS STS.
+ Un usuario de IAM en la cuenta:
**nota**  
Cada nombre de usuario de IAM es único. El nombre de usuario no distingue mayúsculas de minúsculas para el usuario, por ejemplo, durante el proceso de inicio de sesión, pero distingue mayúsculas de minúsculas cuando se usa en una política o como parte de un ARN.

  ```
  arn:aws:iam::123456789012:user/John
  ```
+ Otro usuario con una ruta que refleje un organigrama:

  ```
  arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/Jane
  ```
+ Un grupo de usuarios de IAM:

  ```
  arn:aws:iam::123456789012:group/Developers
  ```
+ Un grupo de usuarios de IAM con una ruta:

  ```
  arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_A/Developers
  ```
+ Un rol de IAM:

  ```
  arn:aws:iam::123456789012:role/S3Access
  ```
+ Un [rol vinculado a un servicio](id_roles.md#iam-term-service-linked-role):

  ```
  arn:aws:iam::123456789012:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer
  ```
+ Un [rol de servicio](id_roles.md#iam-term-service-role):

  ```
  arn:aws:iam::123456789012:role/service-role/QuickSightAction
  ```
+ Una política administrada:

  ```
  arn:aws:iam::123456789012:policy/ManageCredentialsPermissions
  ```
+ Un perfil de instancia que se puede asociar a una instancia Amazon EC2:

  ```
  arn:aws:iam::123456789012:instance-profile/Webserver
  ```
+ Una entidad principal de usuario federado de AWS STS identificada en IAM como “Paulo”:

  ```
  arn:aws:sts::123456789012:federated-user/Paulo
  ```
+ La sesión activa de alguien que asume el rol de "Accounting-Role", con el nombre de sesión de rol "Mary":

  ```
  arn:aws:sts::123456789012:assumed-role/Accounting-Role/Mary
  ```
+ Representa la propia sesión de la persona que llama cuando se usa como recurso en una llamada a la API, como la API de AWS STS [SetContext](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssecuritytokenservice.html), que opera en la sesión de llamada:

  ```
  arn:aws:sts::123456789012:self
  ```
+ El dispositivo de autenticación multifactor asignado al usuario llamado Jorge:

  ```
  arn:aws:iam::123456789012:mfa/Jorge
  ```
+ Un certificado de servidor

  ```
  arn:aws:iam::123456789012:server-certificate/ProdServerCert
  ```
+ Un certificado de servidor con una ruta que refleja un organigrama:

  ```
  arn:aws:iam::123456789012:server-certificate/division_abc/subdivision_xyz/ProdServerCert
  ```
+ Proveedores de identidades (SAML y OIDC):

  ```
  arn:aws:iam::123456789012:saml-provider/ADFSProvider
  arn:aws:iam::123456789012:oidc-provider/GoogleProvider
  arn:aws:iam::123456789012:oidc-provider/server.example.org
  ```
+ Proveedor de identidad OIDC con una ruta que refleja la URL del proveedor de identidad OIDC de Amazon EKS:

  ```
  arn:aws:iam::123456789012:oidc-provider/oidc.eks.us-west-2.amazonaws.com/id/a1b2c3d4567890abcdefEXAMPLE11111
  ```
+ El ARN del proveedor de contexto utilizado con la propagación de identidades de confianza del AWS IAM Identity Center, a partir del cual se generó la aserción de contexto de confianza:

  ```
  arn:aws:iam::aws:contextProvider/IdentityCenter
  ```

Otro ARN importante es el ARN del usuario raíz. Aunque no es un recurso de IAM, debe estar familiarizado con el formato de este ARN. A menudo se utiliza en el [elemento `Principal`](reference_policies_elements_principal.md) de un recurso basado en una política.
+ La Cuenta de AWS muestra lo siguiente:

  ```
  arn:aws:iam::123456789012:root
  ```

En el ejemplo siguiente se muestra una política que se podría asignar a Richard para que este pueda administrar sus propias claves de acceso. Observe que el recurso es el usuario de IAM Richard.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ManageRichardAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:*AccessKey*",
                "iam:GetUser"
            ],
            "Resource": "arn:aws:iam::*:user/division_abc/subdivision_xyz/Richard"
        },
        {
            "Sid": "ListForConsole",
            "Effect": "Allow",
            "Action": "iam:ListUsers",
            "Resource": "*"
        }
    ]
}
```

------

**nota**  
Cuando utiliza ARN para identificar recursos en una política de IAM, puede incluir *variables de política*. Las variables de política pueden incluir marcadores de posición para la información del entorno de ejecución (como el nombre del usuario) como parte del ARN. Para obtener más información, consulte [Elementos de la política de IAM: variables y etiquetas](reference_policies_variables.md) 

### Uso de comodines y rutas en ARN
<a name="reference_identifiers_arn-wildcards-paths"></a>

Puede utilizar comodines en la parte *recurso* del ARN para especificar varios usuarios o grupos de IAM o políticas. Por ejemplo, para especificar todos los usuarios que trabajan en product\$11234, debe utilizar:

```
arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/product_1234/*
```

Si tiene usuarios cuyos nombres empiezan por la cadena `app_`, puede hacer referencia a todos ellos con el ARN siguiente.

```
arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/product_1234/app_*
```

Para especificar todos los usuarios, grupos de IAM o políticas de su Cuenta de AWS, utilice un comodín después de la parte `user/`, `group/` o `policy/` del ARN, respectivamente.

```
arn:aws:iam::123456789012:user/*
arn:aws:iam::123456789012:group/*
arn:aws:iam::123456789012:policy/*
```

Si especifica el siguiente ARN para un usuario de `arn:aws:iam::111122223333:user/*`, coincide con los dos ejemplos siguientes.

```
arn:aws:iam::111122223333:user/John
arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/JaneDoe
```

Pero, si especifica el siguiente ARN para un usuario `arn:aws:iam::111122223333:user/division_abc*`, coincide con el segundo ejemplo, pero no con el primero.

```
arn:aws:iam::111122223333:user/John
arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/Jane
```

No utilice un comodín en la parte `user/`, `group/` o `policy/` del ARN. Por ejemplo, IAM no permite lo siguiente:

```
arn:aws:iam::123456789012:u*
```

**nota**  
Cuando se especifica un ARN incompleto (uno con menos de los seis campos estándar) en una política basada en la identidad, AWS completa automáticamente el ARN mediante el agregado de caracteres comodín (\$1) a todos los campos que faltan. Por ejemplo, especificar que `arn:aws:sqs` es equivalente a `arn:aws:sqs:*:*:*`, lo que otorga acceso a todos los recursos de Amazon SQS en todas las regiones y cuentas.

**Example Uso de rutas y de ARN en un grupo de usuarios basado en un proyecto**  
Las rutas no se pueden crear ni manipular en la Consola de administración de AWS. Para utilizar rutas, debe trabajar con el recurso utilizando API de AWS, el AWS CLI o Tools for Windows PowerShell.  
En este ejemplo, Jules del grupo de usuarios Marketing\$1Admin crea un grupo de usuarios basado en proyectos dentro de la ruta /marketing/. Jules asigna usuarios de diferentes partes de la empresa al grupo de usuarios. El ejemplo sirve para mostrar que la ruta de un usuario no tiene ninguna relación con los grupos de usuarios en los que está el usuario.  
El grupo de marketing tiene un producto nuevo listo para lanzarlo, y Jules crea un grupo de usuarios nuevo en la ruta /marketing/ llamado Widget\$1Launch. A continuación, Jules asigna la siguiente política al grupo de usuarios, que concede al grupo de usuarios acceso a objetos de la parte de `example_bucket` designada para este lanzamiento en concreto.     
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": "arn:aws:s3:::example_bucket/marketing/newproductlaunch/widget/*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket*",
      "Resource": "arn:aws:s3:::example_bucket",
      "Condition": {"StringLike": {"s3:prefix": "marketing/newproductlaunch/widget/*"}}
    }
  ]
}
```
Después, Jules asigna los usuarios que trabajan en este lanzamiento al grupo de usuarios. Entre ellos figuran Patricia y Eli de la ruta /marketing/. También figuran Chris y Chloe de la ruta /sales/, y Alice y Jim de la ruta /legal/.

## Identificadores únicos
<a name="identifiers-unique-ids"></a>

Cuando IAM crea un usuario, un grupo de usuarios, un rol, una política, un perfil de instancias o un certificado de servidor, le asigna a cada uno un ID. El ID único se parece a lo siguiente:

`AIDAJQABLZS4A3QDU576Q`

Generalmente, se utilizan nombres descriptivos y [ARN](#identifiers-arns) cuando se trabaja con entidades de IAM. De esta manera, no necesita conocer el ID único de un recurso específico. Sin embargo, el ID único puede ser útil en ocasiones, cuando no es práctico utilizar nombres fáciles de recordar. 

Un ejemplo aborda el tema de volver a utilizar nombres fáciles de recordar en su Cuenta de AWS. En la cuenta, un nombre fácil de recordar de un usuario, un grupo de usuarios, un rol o una política tiene que ser único. Por ejemplo, podría crear un usuario de IAM llamado `John`. Su empresa utiliza Amazon S3 y tiene un bucket con carpetas para cada empleado. El usuario de IAM `John` es miembro de un grupo de usuarios de IAM denominado `User-S3-Access` con permisos que permiten a los usuarios obtener acceso únicamente a sus propias carpetas en el bucket. Para ver un ejemplo de cómo podría crear una política basada en identidad que permita a los usuarios de IAM obtener acceso a su propio objeto de bucket en S3 con el nombre descriptivo de los usuarios, consulte [Amazon S3: permite a los usuarios de IAM obtener acceso a su directorio principal de S3, mediante programación y en la consola.](reference_policies_examples_s3_home-directory-console.md).

Supongamos que el empleado llamado John deja la empresa y usted elimina el usuario de IAM correspondiente denominado `John`. Pero, más tarde otro empleado también llamado John comienza a trabajar en la empresa y usted crea un nuevo usuario de IAM llamado `John`. Usted agrega el nuevo usuario de IAM denominado `John` al grupo de usuarios de IAM existente de `User-S3-Access`. Si la política de bucket especifica al grupo de usuario el nombre de usuario de IAM `John`, la política permite al nuevo usuario John obtener acceso a la información que dejó el anterior John. 

En general, se recomienda especificar el ARN del recurso en las políticas en lugar de su ID exclusivo. Ahora bien, todos los usuarios de IAM tienen un ID único, aunque cree un usuario de IAM nuevo que vuelva a utilizar un nombre fácil de utilizar que ya haya eliminado antes. En el ejemplo, el usuario de IAM `John` de antes y el nuevo usuario `John` de IAM tienen ambos ID únicos, pero diferentes. Puede crear políticas de recursos que concedan acceso por ID único y no solo por nombre de usuario. De esta manera, se reduce la posibilidad de que pueda conceder acceso sin querer a la información que un empleado no debería tener. 

En el siguiente ejemplo se muestra cómo se podrían especificar ID exclusivos en el [elemento `Principal`](reference_policies_elements_principal.md) de una política basada en recursos.

```
"Principal": {
  "AWS": [
    "arn:aws:iam::111122223333:role/role-name",
    "AIDACKCEVSQ6C2EXAMPLE",
    "AROADBQP57FF2AEXAMPLE"
  }
```

El siguiente ejemplo muestra cómo podría especificar ID únicos en el [elemento `Condition`](reference_policies_elements_condition.md) de una política que utiliza la clave de condición global [`aws:userid`](reference_policies_condition-keys.md#condition-keys-userid).

```
"Condition": {
    "StringLike": {
      "aws:userId": [
        "AIDACKCEVSQ6C2EXAMPLE",
        "AROADBQP57FF2AEXAMPLE:role-session-name",
        "AROA1234567890EXAMPLE:*",
        "111122223333"
      ]
    }
  }
```

Los ID de usuario también pueden ser útiles, por ejemplo, si quiere mantener su propia base de datos (u otro almacén) de información de usuarios o roles de IAM. El ID único puede proporcionar un identificador único para cada usuario o rol de IAM que cree. Esto es así cuando tiene usuarios o roles de IAM que reutilizan un nombre, como en el ejemplo anterior.

## Descripción de los prefijos de ID único
<a name="identifiers-prefixes"></a>

IAM utiliza los siguientes prefijos para indicar a qué tipo de recurso se aplica cada ID único. Los prefijos pueden variar según el momento en que se crearon.


| Prefix | Tipo de recurso | 
| --- | --- | 
| ABIA | [AWS STS Token al portador del servicio](id_credentials_bearer.md) | 
| ACCA | Credenciales específicas del contexto | 
|  AGPA  | Grupos de usuarios | 
|  AIDA  |  Usuario de IAM   | 
| AIPA | El perfil de instancias de Amazon EC2 | 
| AKIA | Clave de acceso | 
| ANPA |  Política administrada  | 
|  ANVA  |  Versión en una política administrada  | 
| APKA | Clave pública | 
| AROA | Rol | 
| ASCA | Certificate | 
|  ASIA  |  [Los ID de clave de acceso temporales (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/API_Credentials.html) usan este prefijo, pero son únicos solo en combinación con la clave de acceso secreta y el token de sesión.  | 

## Obtener el identificador único
<a name="identifiers-get-unique-id"></a>

El ID único de un recurso de IAM no está disponible en la consola de IAM. Para obtener el ID único, puede utilizar los siguientes comandos de la AWS CLI o llamadas a la API de IAM.

AWS CLI:
+  [get-caller-identity](https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html) 
+  [get-group](https://docs.aws.amazon.com/cli/latest/reference/iam/get-group.html) 
+  [get-role](https://docs.aws.amazon.com/cli/latest/reference/iam/get-role.html) 
+  [get-user](https://docs.aws.amazon.com/cli/latest/reference/iam/get-user.html) 
+  [get-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/get-policy.html) 
+  [get-instance-profile](https://docs.aws.amazon.com/cli/latest/reference/iam/get-instance-profile.html) 
+  [get-server-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/get-server-certificate.html) 

API de IAM:
+  [GetCallerIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html) 
+  [GetGroup](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetGroup.html) 
+  [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) 
+  [GetUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetUser.html) 
+  [GetPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetPolicy.html) 
+  [GetInstanceProfile](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetInstanceProfile.html) 
+  [GetServerCertificate](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServerCertificate.html) 