Roles de IAM - AWS Identity and Access Management

Roles de IAM

Un rol de IAM es una identidad de IAM que puede crear en su cuenta y que tiene permisos específicos. Un rol de IAM es similar a un usuario de IAM en que se trata de una identidad de AWS con políticas de permisos que determinan lo que la identidad puede hacer y lo que no en AWS. No obstante, en lugar de asociarse exclusivamente a una persona, la intención es que cualquier usuario pueda asumir un rol que necesite. Además, un rol no tiene asociadas credenciales a largo plazo estándar, como una contraseña o claves de acceso. En su lugar, cuando se asume un rol, este proporciona credenciales de seguridad temporales para la sesión de rol.

Puede utilizar roles para delegar el acceso a usuarios, aplicaciones o servicios que normalmente no tendrían acceso a los recursos de AWS. Por ejemplo, es posible que desee conceder a los usuarios de la cuenta de AWS el acceso a los recursos que no suelen tener, o conceder a los usuarios de una Cuenta de AWS el acceso a los recursos de otra cuenta. O es posible que quiera permitir que una aplicación móvil utilice los recursos de AWS, pero no desea integrar las claves de AWS dentro la aplicación (donde puede ser difícil actualizarlas y donde es posible que los usuarios las extraigan). En ocasiones, es posible que quiera conceder acceso a AWS a los usuarios que ya tienen identidades definidas fuera de AWS, como en su directorio corporativo. O bien, es posible que quiera conceder acceso a su cuenta a terceros para que puedan realizar una auditoría en los recursos.

En estas situaciones, puede delegar el acceso a los recursos de AWS con un rol de IAM. En esta sección se presentan los roles y las distintas formas de utilizarlos, cuándo y cómo elegir entre enfoques y cómo crear, administrar, cambiar (o asumir) y eliminar roles.

nota

Cuando crea su Cuenta de AWS por primera vez, no se crea ningún rol de forma predeterminada. A medida que agregue servicios a su cuenta, es posible que agreguen roles vinculados a servicios para respaldar sus casos de uso.

Un rol vinculado al servicio es un tipo de rol de servicio que está vinculado a un Servicio de AWS. El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados a servicios aparecen en la Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios.

Antes de eliminar los roles vinculados a servicios, debe borrar sus recursos relacionados. De esta forma, se protegen los recursos de , ya que se evita que se puedan eliminar accidentalmente permisos de acceso a los recursos.

Para obtener información sobre los servicios que admiten el uso de roles vinculados a servicios, consulte Servicios de AWS que funcionan con IAM y busque los servicios que tengan Yes en la columna Service-Linked Role. Elija una opción con un enlace para ver la documentación acerca del rol vinculado a servicios en cuestión.

Cuándo crear un usuario de IAM (en lugar de un rol)

Le recomendamos que utilice únicamente usuarios de IAM para los casos de uso no admitidos por los usuarios federados. Estos son algunos de los casos de uso:

  • Cargas de trabajo que no pueden utilizar roles de IAM: puede ejecutar una carga de trabajo desde una ubicación que necesite acceder a AWS. En algunas situaciones, no se pueden utilizar roles de IAM para proporcionar credenciales temporales; por ejemplo, en el caso de los complementos de WordPress. En esas situaciones, utilice claves de acceso a largo plazo de usuarios de IAM para que la carga de trabajo se autentique en AWS.

  • Clientes de externos de AWS: si utiliza herramientas que no admiten el acceso con IAM Identity Center, como clientes externos de AWS o proveedores que no están alojados en AWS, utilice claves de acceso a largo plazo de usuarios de IAM.

  • Acceso a AWS CodeCommit: si utiliza CodeCommit para almacenar el código, puede emplea un usuario de IAM con claves SSH o credenciales específicas del servicio para que CodeCommit se autentique en los repositorios. Se recomienda hacer esto además de utilizar un usuario de IAM Identity Center para la autenticación normal. Los usuarios de IAM Identity Center son el personal que necesita acceso a sus Cuentas de AWS o a sus aplicaciones en la nube. Para dar acceso a los usuarios a los repositorios de CodeCommit sin configurar usuarios de IAM, puede configurar la utilidad git-remote-codecommit. Para obtener más información sobre IAM y CodeCommit, consulte Credenciales de IAM para CodeCommit: credenciales Git, claves SSH y claves de acceso de AWS. Para obtener más información sobre cómo configurar la utilidad git-remote-codecommit, consulte Conexión a repositorios de AWS CodeCommit con credenciales rotativas en la Guía del usuario de AWS CodeCommit.

  • Acceso a Amazon Keyspaces (para Apache Cassandra): en una situación en la que no pueda utilizar usuarios de IAM Identity Center, como por ejemplo, para probar la compatibilidad con Cassandra, puede utilizar un usuario de IAM con credenciales específicas del servicio para realizar la autenticación en Amazon Keyspaces. Los usuarios de IAM Identity Center son el personal que necesita acceso a sus Cuentas de AWS o a sus aplicaciones en la nube. También puede conectarse a Amazon Keyspaces con credenciales temporales. Para obtener más información, consulte Uso de credenciales temporales para conectarse a Amazon Keyspaces mediante un rol de IAM y el complemento SigV4 en la Guía para desarrolladores de Amazon Keyspaces (para Apache Cassandra).

  • Acceso de emergencia: en caso de que no pueda acceder a su proveedor de identidad y deba realizar alguna acción en su Cuenta de AWS. Puede establecer usuarios de IAM de acceso de emergencia como parte de su plan de resiliencia. Recomendamos que las credenciales de usuario de emergencia estén estrictamente controladas y protegidas mediante autenticación multifactor (MFA).

Términos y conceptos de roles

A continuación se muestran algunos términos básicos para ayudarle a comenzar con el uso de los roles.

Rol

Una identidad de IAM que se puede crear en una cuenta y que tiene permisos específicos. Un rol de IAM tiene algunas similitudes con un usuario de IAM. Los roles y los usuarios son identidades de AWS con políticas de permisos que determinan lo que la identidad puede y no puede hacer en AWS. No obstante, en lugar de asociarse exclusivamente a una persona, la intención es que cualquier usuario pueda asumir un rol que necesite. Además, un rol no tiene asociadas credenciales a largo plazo estándar, como una contraseña o claves de acceso. En su lugar, cuando se asume un rol, este proporciona credenciales de seguridad temporales para la sesión de rol.

Las siguientes opciones pueden utilizar los roles:

  • Un usuario de IAM en la misma Cuenta de AWS o en otra Cuenta de AWS

  • Roles de IAM en la misma cuenta

  • Entidades principales de servicio, para su uso con servicios de AWS y características como:

    • Servicios que permiten ejecutar código en servicios de computación, como Amazon EC2 o AWS Lambda

    • Características que realizan acciones en sus recursos en su nombre, como la replicación de objetos en Amazon S3

    • Servicios que proporcionan credenciales de seguridad temporales a sus aplicaciones que se ejecutan fuera de AWS, como IAM Roles Anywhere o Amazon ECS Anywhere

  • Un usuario externo autenticado por un servicio de proveedor de identidades (IdP) externo que sea compatible con SAML 2.0 u OpenID Connect

Rol de servicio de AWS

Un rol de servicio es un rol de IAM que asume un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para obtener más información, consulte Creación de un rol para delegar permisos a un Servicio de AWS en la Guía del usuario de IAM.

Rol vinculado a servicio de AWS

Un rol vinculado al servicio es un tipo de rol de servicio que está vinculado a un Servicio de AWS. El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados a servicios aparecen en la Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios.

nota

Si ya está utilizando un servicio cuando comienza a admitir roles vinculados a servicios, es posible que reciba un mensaje de correo electrónico anunciándole la adición de un nuevo rol en su cuenta. En este caso, el servicio crea automáticamente el rol vinculado a sí mismo en su cuenta. No es necesario realizar ninguna acción para admitir este rol y no debe eliminarlo manualmente. Para obtener más información, consulte Un nuevo rol ha aparecido en la cuenta de AWS.

Para obtener información sobre los servicios que admiten el uso de roles vinculados a servicios, consulte Servicios de AWS que funcionan con IAM y busque los servicios que tengan Yes en la columna Service-Linked Role. Elija una opción con un enlace para ver la documentación acerca del rol vinculado a servicios en cuestión. Para obtener más información, consulte Creación de un rol vinculado al servicio.

Encadenamiento de roles

El encadenamiento de roles se produce cuando se utiliza un rol para asumir un segundo rol a través de la AWS CLI o la API. Por ejemplo, RoleA tiene permiso para asumir RoleB. Puede permitir a User1 que asuma el RoleA al utilizar las credenciales de usuario a largo plazo en la operación de la API AssumeRole. Esto devuelve las credenciales a corto plazo de RoleA. Para utilizar el encadenamiento de roles, puede emplear las credenciales a corto plazo de RoleA para permitir a User1 que asuma el RoleB.

Cuando asume un rol, puede pasar una etiqueta de sesión y establecer la etiqueta como transitiva. Las etiquetas de sesión transitivas se pasan a todas las sesiones posteriores de una cadena de roles. Para obtener más información sobre las etiquetas de sesión, consulte Transferencia de etiquetas de sesión en AWS STS.

El encadenamiento de roles limita la duración de la sesión de rol de la API de AWS CLI o AWS a un máximo de una hora. Cuando utilice la operación API AssumeRole para asumir un rol, puede especificar la duración de la sesión de su rol con el parámetro DurationSeconds. Puede especificar un valor de parámetro de hasta 43200 segundos (12 horas), en función del valor de la duración máxima de la sesión del rol. Sin embargo, si se asume un rol mediante el encadenamiento de roles y se proporciona un valor para el parámetro DurationSeconds superior a una hora, la operación produce un error.

Delegación

Es la concesión de permisos a alguien para que obtenga acceso a los recursos que estén bajo su control. La delegación implica establecer una relación de confianza entre dos cuentas. La primera es la cuenta que posee el recurso (la cuenta que confía). El segundo es la cuenta que contiene los usuarios que necesitan acceder al recurso (la cuenta de confianza). Las cuentas de confianza y que confía pueden ser cualquiera de las siguientes:

  • La misma cuenta.

  • Dos cuentas distintas que están bajo el control de la organización.

  • Dos cuentas que son propiedad de diferentes organizaciones.

Para delegar el permiso para obtener acceso a un recurso, cree un rol de IAM en la cuenta que confía que tiene dos políticas asociadas. La política de permisos concede al usuario del rol los permisos necesarios para realizar las tareas previstas en el recurso. La política de confianza especifica los miembros de la cuenta de confianza que pueden asumir el rol.

Al crear una política de confianza, no puede especificar un comodín (*) como parte de un ARN en la entidad principal. La política de confianza se asocia al rol de la cuenta que confía, y supone la mitad de los permisos. La otra mitad es una política de permisos asociada al usuario de la cuenta de confianza que permite a dicho usuario cambiar al rol o asumirlo. Un usuario que asume un rol renuncia temporalmente a sus permisos y, en su lugar, asume los permisos del rol. Si el usuario se desconecta o deja de utilizar el rol, los permisos originales del usuario se restablecerán. Un parámetro adicional denominado ID externo garantiza el uso seguro de roles entre cuentas no controladas por la misma organización.

Política de confianza

Un documento de política JSON en el que se definen las entidades principales en las que confía para asumir el rol. Una política de confianza de rol es una política basada en recursos requerida que se adjunta a un rol en IAM. Las entidades principales que puede especificar en la política de confianza incluyen usuarios, roles, cuentas y servicios.

Rol para acceso entre cuentas

Un rol que concede acceso a los recursos de una cuenta a una entidad principal de confianza de otra cuenta. Los roles son la forma principal de conceder acceso entre cuentas. Sin embargo, algunos servicios de AWS permiten asociar una política directamente a un recurso (en lugar de utilizar un rol como proxy). Estas se denominan políticas basadas en recursos y puede utilizarlas para conceder a las entidades principales de otra Cuenta de AWS acceso al recurso. Algunos de estos recursos incluyen buckets de Amazon Simple Storage Service (S3), bóvedas de S3 Glacier, temas de Amazon Simple Notification Service (SNS) y colas de Amazon Simple Queue Service (Amazon SQS). Para saber qué servicios admiten políticas basadas en recursos, consulte Servicios de AWS que funcionan con IAM. Para obtener más información sobre las políticas basadas en recursos, consulte Acceso a recursos entre cuentas en IAM.

Recursos adicionales de

Los siguientes recursos pueden ayudarle a obtener más información sobre la terminología de IAM en relación con las roles de IAM.

  • Las entidades principales son entidades de AWS que puede realizar acciones y obtener acceso a los recursos. Una entidad principal puede ser un Usuario raíz de la cuenta de AWS, un usuario de IAM o un rol. Una entidad principal que representa la identidad de un servicio de AWS es un servicio de entidad principal. Utilice el elemento de entidad principal en políticas de confianza de rol para definir las entidades principales en las que confía para asumir el rol.

    Para obtener más información y ejemplos de entidades principales a los que puede permitir que asuman un rol, consulte Elemento de la política de JSON de AWS: Principal.

  • La federación de identidades crea una relación de confianza entre un proveedor de identidad externo y AWS. Puede utilizar su proveedor de OpenID Connect (OIDC) o Security Assertion Markup Language (SAML) 2.0 para administrar quién puede acceder a los recursos de AWS. Cuando se utiliza OIDC y SAML 2.0 para configurar una relación de confianza entre estos proveedores de identidad externos y AWS, el usuario se asigna a un rol de IAM. El usuario también recibe credenciales temporales que le permiten tener acceso a los recursos de AWS.

    Para obtener más información acerca de los usuarios federados, consulte Federación y proveedores de identidades.

  • Los usuarios federados son identidades existentes de AWS Directory Service, del directorio de usuarios de su empresa o de un proveedor OIDC. A estas identidades se les llama usuarios federados. AWS asigna una función a un usuario federado cuando se solicita acceso a través de un proveedor de identidad.

    Para obtener más información acerca de los usuarios federados, consulte Usuarios federados y roles.

  • Las políticas de permisos son políticas basadas en la identidad que definen qué acciones y recursos puede utilizar el rol. El documento se redacta según las reglas del lenguaje de la política de IAM.

    Para obtener más información, consulte Referencia de políticas JSON de IAM.

  • Los límites de permisos son una característica avanzada que permite utilizar políticas para limitar los permisos máximos que una política basada en identidad puede conceder a un rol. No se puede aplicar un límite de permisos a un rol vinculado a un servicio.

    Para obtener más información, consulte Límites de permisos para las entidades de IAM.