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

Creación de un rol para delegar permisos a un servicio de AWS

Muchos servicios de AWS requieren que utilice roles para permitir que el servicio obtenga acceso a los recursos de otros servicios en su nombre. Un rol que asume un servicio para realizar acciones en su nombre se denomina rol de servicio. Si un rol tiene un fin específico para un servicio, se identifica como rol de servicio para instancias EC2 (por ejemplo) o como rol vinculado a un servicio. Para ver qué servicios son compatibles con el uso de roles vinculados a servicios, o si un servicio admite algún tipo de credenciales temporales, consulte Servicios de AWS que funcionan con IAM. Para obtener información sobre cómo un servicio determinado utiliza los roles, elija el nombre del servicio en la tabla para ver la documentación correspondiente a dicho servicio.

Para obtener información sobre cómo los roles le pueden ayudar a delegar permisos, consulte Términos y conceptos de roles.

Permisos del rol de servicio

Debe configurar permisos para permitir a una entidad de IAM (como un usuario, grupo o función) crear o editar un rol de servicio.

nota

El ARN de un rol vinculado a un servicio incluye una entidad principal del servicio, que se indica en las políticas siguientes como SERVICE-NAME.amazonaws.com. No intente adivinar la entidad principal del servicio, ya que distingue entre mayúsculas y minúsculas y su formato puede variar para los distintos servicios de AWS. Para ver el elemento principal de un servicio, consulte la documentación correspondiente su rol vinculado a servicio.

Para permitir a una entidad de IAM cree un rol vinculado a un servicio específico

Agregue la siguiente política a la entidad de IAM que necesite crear el rol de servicio. Esta política le permite crear un rol de servicio para el servicio especificado y con un nombre específico. A continuación, puede asociar políticas administradas o integradas al rol.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" } ] }

Para permitir a una entidad de IAM crear un rol vinculado a cualquier servicio

Añada la siguiente instrucción a la política de permisos de la entidad de IAM que necesita crear el rol de servicio. Esta instrucción le permite crear cualquier rol de servicio para cualquier servicio. A continuación, asocie las políticas integradas a ese rol.

{ "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:PutRolePolicy" ], "Resource": "*" }

Para permitir a una entidad de IAM editar un rol de servicio

Agregue la siguiente política a la entidad de IAM que necesite editar el rol de servicio.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EditSpecificServiceRole", "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" }, { "Sid": "ViewRolesAndPolicies", "Effect": "Allow", "Action": [ "iam:GetPolicy", "iam:ListRoles" ], "Resource": "" } ] }

Para permitir a una entidad de IAM eliminar un rol de servicio específico

Añada la siguiente instrucción a la política de permisos de la entidad de IAM que necesite eliminar el rol de servicio especificado.

{ "Effect": "Allow", "Action": "iam:DeleteRole", "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" }

Para permitir a una entidad de IAM eliminar cualquier rol de servicio

Añada la siguiente instrucción a la política de permisos de la entidad de IAM que necesite eliminar el rol de servicio.

{ "Effect": "Allow", "Action": "iam:DeleteRole", "Resource": "*" }

Creación de un rol para un servicio de AWS (consola)

Puede utilizar la Consola de administración de AWS para crear un rol para un servicio. Algunos servicios admiten más de una función de servicio. Por lo tanto, recomendamos que consulte la documentación de AWS relacionada con su servicio para ver qué caso de uso debe elegir. Puede obtener más información acerca de cómo asignar las políticas de confianza y de permisos necesarias para el rol, para que el servicio pueda asumir el rol en su nombre. Los pasos que puede utilizar para controlar los permisos para el rol pueden variar en función de cómo defina el servicio los casos de uso y de si se crea o no un rol vinculado al servicio.

Para crear un rol para un servicio de AWS (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 de IAM, seleccione Roles y, a continuación, seleccione Create role (Crear rol).

  3. Para Select type of trusted entity (Seleccionar tipo de entidad de confianza), elija AWS service (Servicio de AWS).

  4. Elija el servicio que desea permitir que asuma este rol.

  5. Elija el caso de uso para su servicio. Si el servicio especificado tiene solo un caso de uso, se selecciona automáticamente. Los casos de uso son definidos por el servicio de modo tal que ya incluyen la política de confianza que el servicio mismo requiere. A continuación, elija Next: Permissions.

  6. Si es posible, seleccione la política que desea usar para la 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 los servicios.

    En función del caso de uso seleccionado, el servicio podría permitirle realizar cualquiera de las siguientes acciones:

    • Ninguna, porque el servicio define los permisos para el rol

    • Permitirle elegir permisos de un conjunto limitado

    • Permitirle elegir cualquier permiso, sin límites

    • Permite no seleccionar ninguna política en ese momento, crear las políticas más adelante y, a continuación, asociarlas al rol.

  7. (Opcional) Configure un límite de permisos. Se trata de una característica avanzada que está disponible para los roles de servicio, pero no para los roles vinculados a servicios.

    Abra la sección Set permissions boundary (Establecer 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). IAM incluye una lista de las políticas administradas por AWS y las administradas por el cliente en su cuenta. Seleccione la política que desea usar para el límite 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). Una vez creada la política, cierre la pestaña y vuelva a la pestaña original para seleccionar la política que va a usar para el límite de permisos.

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

  9. (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.

  10. Elija Next: Review.

  11. En Role Name (Nombre del rol), el servicio define el grado de personalización del nombre del rol. Si el servicio define el nombre del rol, esta opción no es editable. En otros casos, el servicio puede definir un prefijo para el rol y permitirle escribir un sufijo opcional. Algunos servicios le permiten especificar el nombre completo de su rol.

    Si es posible, escriba un nombre de rol o un sufijo de nombre de 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.

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

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

Creación de un rol para un servicio (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 el servicio con el que está trabajando es Amazon EC2 también deberá crear un perfil de instancia y añadirle el rol. Si lo prefiere, también puede configurar el límite de permisos para el rol.

Para crear un rol para un servicio de AWS desde la 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.

Si va a utilizar el rol con Amazon EC2 o con otro servicio de AWS que utiliza Amazon EC2, debe almacenar el rol en un perfil de instancia. Un perfil de instancia es un contenedor para un rol que se puede asociar a una instancia Amazon EC2 cuando se lanza. Un perfil de instancia puede contener un único rol y dicho límite no se puede aumentar. Si crea el rol con la Consola de administración de AWS, el perfil de instancia se crea con el mismo nombre que el rol. Para obtener más información sobre los perfiles de instancia, consulte Uso de perfiles de instancia. Para obtener información sobre cómo lanzar una instancia EC2 con un rol, consulte Control del acceso a recursos de Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

Para crear un perfil de instancia y almacenar el rol en él (AWS CLI)

  1. Crear un perfil de instancia: aws iam create-instance-profile

  2. Añadir el rol al perfil de instancia: aws iam add-role-to-instance-profile

En el siguiente ejemplo de conjunto de comandos de la AWS CLI, se muestran los dos primeros pasos para crear un rol y asociar permisos. También muestra los dos pasos para crear un perfil de instancia y añadir el rol al perfil. Esta política de confianza de ejemplo permite al servicio Amazon EC2 asumir el rol y ver el bucket de Amazon S3 example_bucket. El 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 y región de la cuenta. 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 que el servicio Amazon EC2 asuma el rol.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } }

Cuando utilice el segundo comando, debe asociar una política de permisos al rol. La siguiente política de permisos de ejemplo permite al 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 el rol Test-Role-for-EC2, primero debe guardar la política de confianza anterior con el nombre trustpolicyforec2.json y la política de permisos anterior con el nombre permissionspolicyforec2.json en el directorio policies del disco duro local C:. A continuación, puede utilizar los siguientes comandos para crear el rol, asociar la política, crear el perfil de instancia y añadir el rol al perfil de instancia.

# Create the role and attach the trust policy that allows EC2 to assume this role. $ aws iam create-role --role-name Test-Role-for-EC2 --assume-role-policy-document file://C:\policies\trustpolicyforec2.json # Embed the permissions policy (in this example an inline policy) to the role to specify what it is allowed to do. $ aws iam put-role-policy --role-name Test-Role-for-EC2 --policy-name Permissions-Policy-For-Ec2 --policy-document file://permissionspolicyforec2.json # Create the instance profile required by EC2 to contain the role $ aws iam create-instance-profile --instance-profile-name EC2-ListBucket-S3 # Finally, add the role to the instance profile $ aws iam add-role-to-instance-profile --instance-profile-name EC2-ListBucket-S3 --role-name Test-Role-for-EC2

Al lanzar la instancia EC2, especifique el nombre de perfil de instancia en la página Configure Instance Details (Configurar detalles de la instancia) si utiliza la consola de AWS. Si utiliza el comando de la CLI aws ec2 run-instances, especifique el parámetro --iam-instance-profile.

Creación de un rol para un servicio (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 el servicio con el que está trabajando es Amazon EC2 también deberá crear un perfil de instancia y añadirle el rol. Si lo prefiere, también puede configurar el límite de permisos para el rol.

Para crear un rol para un servicio de AWS (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

  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.

Si va a utilizar el rol con Amazon EC2 o con otro servicio de AWS que utiliza Amazon EC2, debe almacenar el rol en un perfil de instancia. Un perfil de instancia es un contenedor para un rol. Cada perfil de instancia solo puede contener un único rol y dicho límite no se puede superar. Si crea el rol en la Consola de administración de AWS, el perfil de instancia se crea con el mismo nombre que el rol. Para obtener más información sobre los perfiles de instancia, consulte Uso de perfiles de instancia. Para obtener información sobre cómo lanzar una instancia Amazon EC2 con un rol, consulte Control del acceso a recursos de Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

Para crear un perfil de instancia y almacenar el rol en él (API de AWS)

  1. Crear un perfil de instancia: CreateInstanceProfile

  2. Añadir el rol al perfil de instancia: AddRoleToInstanceProfile