Creación de un rol para delegar permisos a un usuario de IAM - AWS Identity and Access Management

Creación de un rol para delegar permisos a un usuario de IAM

Puede utilizar roles de IAM para delegar el acceso a sus recursos de AWS. Con roles de IAM puede establecer relaciones de confianza entre la cuenta que confía y otras cuentas de confianza de AWS. La cuenta que confía posee el recurso al que se obtiene acceso y la cuenta de confianza incluye los usuarios que necesitan obtener acceso al recurso. Sin embargo, es posible que otra cuenta sea propietaria de un recurso de su cuenta. Por ejemplo, la cuenta que confía podría permitir a la cuenta de confianza crear recursos, como, por ejemplo, crea objetos en un bucket de Amazon S3. En ese caso, la cuenta que crea el recurso es la propietaria del recurso y controla quién pueden tener acceso a dicho recurso.

Después de crear la relación de confianza, un usuario de IAM o una aplicación de la cuenta de confianza pueden utilizar la operación AWS Security Token Service (AWS STS) AssumeRole de la API. Esta operación proporciona credenciales de seguridad temporales que permiten el acceso a los recursos de AWS de su cuenta.

Usted puede controlar ambas cuentas o un tercero puede controlar la cuenta con los usuarios. Si la otra cuenta con los usuarios se encuentra en una cuenta de AWS que usted no controla, puede utilizar el atributo externalId. El ID externo puede ser cualquier palabra o número acordados entre usted y el administrador de la cuenta de terceros. Esta opción agrega automáticamente una condición a la política de confianza que permite al usuario asumir el rol únicamente si la solicitud incluye el sts:ExternalID correcto. Para obtener más información, consulte Cómo utilizar un ID externo al otorgar acceso a los recursos de AWS a terceros.

Para obtener información sobre cómo utilizar los roles para delegar permisos, consulte Términos y conceptos de roles. Para obtener más información sobre el uso de un rol de servicio para permitir que los servicios obtengan acceso a los recursos de su cuenta, consulte Creación de un rol para delegar permisos a un servicio de AWS.

Creación de un rol de IAM (consola)

Puede utilizar la Consola de administración de AWS para crear un rol que un usuario de IAM pueda asumir. Por ejemplo, suponga que su organización tiene varias cuentas de AWS para aislar un entorno de desarrollo de uno de producción. Para una descripción general de los pasos para configurar y utilizar un rol que permita a usuarios de la cuenta de desarrollo acceder a los recursos de la cuenta de producción, consulte Situación de ejemplo en la que se usan cuentas de desarrollo y producción separadas.

Para crear un rol (consola)

  1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación de la consola, elija Roles y, a continuación, seleccione Create role (Crear rol).

  3. Elija el tipo de rol Another AWS account (Otra cuenta de AWS).

  4. En Account ID, escriba el ID de la cuenta de AWS al que desea conceder acceso a los recursos.

    El administrador de la cuenta especificada puede conceder permiso para asumir este rol a cualquier usuario de IAM en esa cuenta. Para ello, el administrador asocia una política al usuario o grupo que concede permiso para la acción sts:AssumeRole. Esta política debe especificar el ARN del rol como Resource.

  5. Si está concediendo permisos a los usuarios desde una cuenta que no controla, y los usuarios van a asumir este rol mediante programación, seleccione Require external ID (Requerir ID externo). El ID externo puede ser cualquier palabra o número acordados entre usted y el administrador de la cuenta de terceros. Esta opción agrega automáticamente una condición a la política de confianza que permite al usuario asumir el rol únicamente si la solicitud incluye el sts:ExternalID correcto. Para obtener más información, consulte Cómo utilizar un ID externo al otorgar acceso a los recursos de AWS a terceros.

    importante

    Si elige esta opción, restringe el acceso al rol únicamente a través de la API de AWS CLI, Herramientas para Windows PowerShell o AWS. Esto se debe a que no puede utilizar la consola de AWS para cambiar a un rol que tiene una condición externalId en su política de confianza. Sin embargo, puede crear este tipo de acceso mediante programación si escribe un script o una aplicación con el correspondiente SDK. Para obtener más información y un script de muestra, consulte Cómo habilitar el acceso entre cuentas a la Consola de administración de AWS en el blog de seguridad de AWS.

  6. Si desea restringir el rol a aquellos usuarios que inicien sesión con autenticación multifactor (MFA), seleccione Require MFA (Requerir MFA). De esta forma se agrega una condición a la política de confianza del rol que comprueba si se produce un inicio de sesión con MFA. Un usuario que desee asumir el rol debe iniciar sesión con una contraseña temporal de uso único desde un dispositivo MFA configurado. Los usuarios sin autenticación MFA no pueden asumir el rol. Para obtener más información acerca de MFA, consulte Uso de Multi-Factor Authentication (MFA) en AWS

  7. Elija Next: Permissions.

  8. IAM incluye una lista de las políticas administradas por AWS y de las políticas administradas por el cliente de cada cuenta. Seleccione la política que desea usar como política de permisos o elija Create policy (Crear política) para abrir una pestaña nueva del navegador y crear una política nueva desde cero. Para obtener más información, consulte el paso 4 del procedimiento Creación de políticas de IAM (consola). Después de crear la política, cierre esa pestaña y vuelva a la pestaña original. Seleccione la casilla situada junto a las políticas de permisos que desea conceder a cualquier persona que asuma el rol. Si lo prefiere, puede optar por no seleccionar ninguna política en ese momento y asociar las políticas al rol más adelante. De forma predeterminada, un rol no tiene permisos.

  9. (Opcional) Configure un límite de permisos. Esta es una característica avanzada.

    Abra la sección Set permissions boundary (Configurar límite de permisos) y elija Use a permissions boundary to control the maximum role permissions (Utilizar un límite de permisos para controlar los permisos que puede tener el rol como máximo). Seleccione la política que desea utilizar para el límite de permisos.

  10. Elija Next: Tags (Siguiente: Etiquetas).

  11. (Opcional) Añada metadatos al rol asociando las etiquetas como pares de clave–valor. Para obtener más información acerca del uso de etiquetas en IAM, consulte Etiquetado de usuarios y roles de IAM.

  12. Elija Next: Review.

  13. En Role name, escriba un nombre para dicho rol. Los nombres de rol deben ser únicos en su cuenta de AWS. No se distingue por caso. Por ejemplo, no puede crear funciones denominado tanto PRODROLE y prodrole. Dado que es posible que otros recursos de AWS hagan referencia al rol, no se puede editar el nombre del rol después de crearlo.

  14. (Opcional) En Role descripción, escriba una descripción para la nueva función.

  15. Revise el rol y, a continuación, seleccione Create role.

    importante

    Recuerde que esto es solo la primera mitad de la configuración necesaria. También debe conceder permisos a determinados usuarios de la cuenta de confianza para cambiar al rol en la consola o para asumir el rol mediante programación. Para obtener más información acerca de este paso, consulte Conceder permisos de usuario para cambiar de rol.

Crear un rol de IAM (AWS CLI)

Para crear un rol desde la AWS CLI se deben seguir varios pasos. Si utiliza la consola para crear un rol, muchos de los pasos se realizan automáticamente, pero con la AWS CLI deberá realizar cada paso usted mismo. Debe crear el rol y, a continuación, asignar una política de permisos al rol. Si lo prefiere, también puede configurar el límite de permisos para el rol.

Para crear un rol para el acceso entre cuentas (AWS CLI)

  1. Crear un rol: aws iam create-role

  2. Asociar una política de permisos administrada al rol: aws iam attach-role-policy

    o bien

    Crear una política de permisos insertada para el rol: aws iam put-role-policy

  3. (Opcional) Añadir los atributos personalizados al rol asociando etiquetas: aws iam tag-role

    Para obtener más información, consulte Administración de etiquetas en entidades de IAM (AWS CLI o API de AWS).

  4. (Opcional) Configurar el límite de permisos para el rol: aws iam put-role-permissions-boundary

    Un límite de permisos controla los permisos que puede tener un rol como máximo. Los límites de permisos son una característica avanzada de AWS.

El siguiente ejemplo muestra los dos primeros pasos, que también son los más comunes, para crear un rol entre cuentas en un entorno sencillo. Este ejemplo permite a cualquier usuario de la cuenta 123456789012 asumir el rol y ver el bucket de Amazon S3 example_bucket. Este ejemplo también supone que se está utilizando un equipo cliente con Windows y que ya se ha configurado la interfaz de línea de comandos con las credenciales de la cuenta y la región. Para obtener más información, consulte el tema sobre configuración de la interfaz de línea de comandos de AWS.

En este ejemplo, incluya la siguiente política de confianza en el primer comando al crear el rol. Esta política de confianza permite a los usuarios de la cuenta 123456789012 asumir el rol utilizando la operación AssumeRole, pero solo si el usuario proporciona la autenticación MFA utilizando los parámetros SerialNumber y TokenCode. Para obtener más información acerca de MFA, consulte Uso de Multi-Factor Authentication (MFA) en AWS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:root" }, "Action": "sts:AssumeRole", "Condition": { "Bool": { "aws:MultiFactorAuthPresent": "true" } } } ] }
importante

Si el elemento Principal incluye el ARN de un determinado usuario o rol de IAM, dicho ARN se transforma en un ID exclusivo de entidad principal cuando se guarda la política. Esto ayuda a mitigar el riesgo de que alguien aumente sus permisos eliminando o volviendo a crear el rol o usuario. Normalmente, este ID no se muestra en la consola porque también existe una transformación inversa al ARN cuando se muestra la política de confianza. Sin embargo, si se elimina el rol o el usuario, el ID de entidad principal aparece en la consola porque AWS ya no puede volver a asignarlo a un ARN. Por lo tanto, si elimina y vuelve a crear un usuario o rol al que se hace referencia en un elemento Principal de la política de confianza, debe editar el rol para sustituir el ARN.

Cuando utilice el segundo comando, debe asociar una política administrada existente al rol. La siguiente política de permisos permite a cualquiera que asuma el rol realizar únicamente la acción ListBucket en el bucket de Amazon S3 example_bucket.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } ] }

Para crear este rol Test-UserAccess-Role, primero debe guardar la política de confianza anterior con el nombre trustpolicyforacct123456789012.json en la carpeta policies del disco duro local C:. A continuación, guarde el política de permisos anterior como una política administrada por el cliente en su cuenta de AWS con el nombre PolicyForRole. A continuación, puede utilizar los comandos siguientes para crear el rol y asociarle la política administrada.

# Create the role and attach the trust policy file that allows users in the specified account to assume the role. $ aws iam create-role --role-name Test-UserAccess-Role --assume-role-policy-document file://C:\policies\trustpolicyforacct123456789012.json # Attach the permissions policy (in this example a managed policy) to the role to specify what it is allowed to do. $ aws iam attach-role-policy --role-name Test-UserAccess-Role --policy-arn arn:aws:iam::123456789012:role/PolicyForRole
importante

Recuerde que esto es solo la primera mitad de la configuración necesaria. También debe conceder permisos a los usuarios individuales de la cuenta de confianza para cambiar al rol. Para obtener más información acerca de este paso, consulte Conceder permisos de usuario para cambiar de rol.

Después de crear el rol y concederle permisos para realizar tareas de AWS u obtener acceso a los recursos de AWS, cualquier usuario de la cuenta 123456789012 puede asumir el rol. Para obtener más información, consulte Cambio a un rol de IAM (AWS CLI).

Creación de un rol de IAM (API de AWS)

Para crear un rol desde la API de AWS se deben seguir varios pasos. Si utiliza la consola para crear un rol, muchos de los pasos se realizan automáticamente, pero con la API deberá realizar cada paso usted mismo. Debe crear el rol y, a continuación, asignar una política de permisos al rol. Si lo prefiere, también puede configurar el límite de permisos para el rol.

Para crear un rol en código (API de AWS)

  1. Crear un rol: CreateRole

    Para la política de confianza del rol, puede especificar una ubicación de archivo.

  2. Asociar una política de permisos administrada al rol: AttachRolePolicy

    o bien

    Crear una política de permisos insertada para el rol: PutRolePolicy

    importante

    Recuerde que esto es solo la primera mitad de la configuración necesaria. También debe conceder permisos a los usuarios individuales de la cuenta de confianza para cambiar al rol. Para obtener más información acerca de este paso, consulte Conceder permisos de usuario para cambiar de rol.

  3. (Opcional) Añadir los atributos personalizados al usuario asociando etiquetas: TagRole

    Para obtener más información, consulte Administración de etiquetas en entidades de IAM (AWS CLI o API de AWS).

  4. (Opcional) Configurar el límite de permisos para el rol: PutRolePermissionsBoundary

    Un límite de permisos controla los permisos que puede tener un rol como máximo. Los límites de permisos son una característica avanzada de AWS.

Después de crear el rol y concederle permisos para realizar tareas de AWS u obtener acceso a los recursos de AWS, debe conceder permisos a los usuarios de la cuenta para que puedan asumir el rol. Para obtener más información sobre cómo asumir un rol, consulte Cambio a un rol de IAM (API de AWS).