Identificadores de IAM
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.
Nombres fáciles de recordar y rutas
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. Para obtener información acerca de cómo se puede especificar un nombre descriptivo, consulte la documentación de la API de usuario. Para obtener más ejemplos de cómo utilizar las rutas, consulte ARN de IAM.
Cuando se utiliza AWS 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.
ARN de IAM
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 esaws
. Si tiene recursos en otras particiones, la partición esaws-
. Por ejemplo, la partición de los recursos de la región China (Pekín) espartitionname
aws-cn
. No se puede delegar el acceso entre cuentas en particiones diferentes. -
service
identifica el producto de AWS. Los recursos de IAM siempre usaniam
. -
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
Muchos de los ejemplos siguientes incluyen rutas en la parte del recurso de ARN. Las rutas no se pueden crear ni manipular en la AWS Management Console. 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/JohnDoe arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/JaneDoe 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/JohnDoe arn:aws:sts::123456789012:assumed-role/Accounting-Role/JaneDoe arn:aws:sts::123456789012:self arn:aws:iam::123456789012:mfa/JaneDoeMFA arn:aws:iam::123456789012:u2f/user/JohnDoe/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
Los siguientes ejemplos proporcionan más detalles para ayudarle a 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/JohnDoe
-
Otro usuario con una ruta que refleje un organigrama:
arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/JaneDoe
-
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:
arn:aws:iam::123456789012:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer
-
Un rol de servicio:
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
-
Un usuario federado identificado 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, 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
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 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.
{ "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
Uso de comodines y rutas en ARN
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_1234, 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/JohnDoe 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/JohnDoe arn:aws:iam::111122223333:user/division_abc/subdivision_xyz/JaneDoe
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*
ejemplo 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 AWS Management Console. 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_Admin 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_Launch. 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
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 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..
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 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 de una política que utiliza la clave de condición global aws: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
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 | Token al portador del servicio AWS STS |
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) 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
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:
API de IAM: