Creación de un rol para delegar permisos a un usuario de IAM
Puede utilizar roles de IAM para proporcionar 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
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.