Identificadores de IAM - AWS Identity and Access Management

Identificadores de IAM

IAM utiliza varios identificadores diferentes para usuarios, grupos de usuarios, 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 usuarios, 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 usuarios 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 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 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: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: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
  • 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 usuarios 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 usuarios 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: