Crear 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 Acceder a las Cuentas de AWS que le pertenezcan 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 Crear un rol para delegar permisos a un servicio de AWS.
Creación de un rol de IAM (consola)
Puede utilizar la AWS Management Console 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 información general sobre cómo crear 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.
Permisos mínimos
Para realizar los siguientes pasos, debe tener al menos los siguientes permisos IAM:
-
access-analyzer:ValidatePolicy
-
iam:AttachRolePolicy
-
iam:CreatePolicy
-
iam:CreateRole
-
iam:GetAccountSummary
-
iam:GetPolicy
-
iam:GetPolicyVersion
-
iam:GetRole
-
iam:ListAccountAliases
-
iam:ListAttachedRolePolicies
-
iam:ListOpenIDConnectProviders
-
iam:ListPolicies
-
iam:ListRolePolicies
-
iam:ListRoles
-
iam:ListRoleTags
-
iam:ListSAMLProviders
Para crear un rol (consola)
Inicie sesión en la AWS Management Console y abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación de la consola, elija Roles y, a continuación, seleccione Crear rol.
-
Elija el tipo de rol de Cuenta de AWS.
-
Para crear un rol para la cuenta, elija Esta cuenta. Para crear un rol para otra cuenta, elija Otra Cuenta de AWS e ingrese el ID de cuenta 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 comoResource
. -
Si concede permisos a los usuarios desde una cuenta que no controla y los usuarios van a asumir este rol mediante programación, seleccione 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 Acceder a las Cuentas de AWS que le pertenezcan a terceros.importante
Si elige esta opción, restringe el acceso al rol únicamente a través de la API de AWS CLI, Tools for Windows PowerShell o API de 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 AWS Management Consoleen el blog de seguridad de AWS. -
Si desea restringir el rol a aquellos usuarios que inicien sesión con autenticación multifactor (MFA), seleccione 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 Autenticación multifactor de AWS en IAM
-
Elija Siguiente.
-
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 utilizar como política de permisos o elija 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 Crear políticas de IAM. 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 este momento y asociar las políticas al rol más adelante. De forma predeterminada, un rol no tiene permisos.
-
(Opcional) Configure un límite de permisos. Esta es una característica avanzada.
Abra la sección Configurar límite de permisos y elija 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.
-
Elija Siguiente.
-
Escriba un nombre para el rol en Nombre de rol. Los nombres de rol deben ser únicos en su Cuenta de AWS. Cuando se utiliza un nombre de rol en una política o como parte de un ARN, el nombre del rol distingue entre mayúsculas y minúsculas. Cuando los clientes ven un nombre de rol en la consola, por ejemplo, durante el proceso de inicio de sesión, el nombre del rol no distingue entre mayúsculas y minúsculas. Dado que varias entidades pueden hacer referencia al rol, no se puede editar el nombre del rol una vez que se crea.
-
(Opcional) En Descripción, ingrese una descripción para el nuevo rol.
-
Elija Editar en las secciones Paso 1: seleccionar entidades de confianza o Paso 2: agregar permisos para editar los casos de uso y los permisos del rol. Volverá a las páginas anteriores para realizar las modificaciones.
-
De manera opcional, agregue metadatos al rol asociando etiquetas como pares de clave-valor. Para obtener más información acerca del uso de etiquetas en IAM, consulte Etiquetas para recursos de AWS Identity and Access Management.
-
Revise el rol y, a continuación, seleccione Crear rol.
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 a un usuario permisos para cambiar de rol.
Creación de 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)
-
Crear un rol: aws iam create-role
-
Asociar una política de permisos administrada al rol: aws iam attach-role-policy
o
Crear una política de permisos insertada para el rol: aws iam put-role-policy
-
(Opcional) Añadir los atributos personalizados al rol asociando etiquetas: aws iam tag-role
Para obtener más información, consulte Administrar etiquetas en roles de IAM (AWS CLI o API de AWS).
-
(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 example_bucket
Amazon S3. 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 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 Autenticación multifactor de AWS en IAM.
{ "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:policy/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 a un usuario permisos 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 Cambiar 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)
-
Creación de un rol: CreateRole
Para la política de confianza del rol, puede especificar una ubicación de archivo.
-
Asociar una política de permisos administrada al rol: AttachRolePolicy
o
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 a un usuario permisos para cambiar de rol.
-
(Opcional) Añadir los atributos personalizados al usuario asociando etiquetas: TagRole
Para obtener más información, consulte Administrar etiquetas en usuarios de IAM (AWS CLI o API de AWS).
-
(Opcional) Configuración del 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 Cambiar a un rol de IAM (API de AWS).
Creación de un rol de IAM (AWS CloudFormation)
Para obtener información acerca de cómo crear un rol de IAM en AWS CloudFormation, consulte la referencia de recursos y propiedades y los ejemplos en la Guía del usuario de AWS CloudFormation.
Para obtener más información acerca de las plantillas de IAM en AWS CloudFormation, consulte fragmentos de plantilla AWS Identity and Access Management en la Guía del usuario de AWS CloudFormation.