Creación de un rol para un proveedor de identidad de terceros (federación) - AWS Identity and Access Management

Creación de un rol para un proveedor de identidad de terceros (federación)

Puede utilizar proveedores de identidad en lugar de crear usuarios de IAM en una cuenta de AWS. Con un proveedor de identidad (IdP), puede administrar sus identidades de usuario fuera de AWS y conceder permisos a estas identidades de usuarios externos para que tengan acceso a los recursos de AWS de su cuenta. Para obtener más información acerca de la identidad federada y los proveedores de identidad, consulte Federación y proveedores de identidades.

Creación de un rol para usuarios federados (consola)

Los procedimientos que ha de seguir para crear un rol para los usuarios federados dependen de su elección de proveedores de terceros:

Creación de un rol para acceso federado (AWS CLI)

Los pasos que ha de seguir para crear un rol para los proveedores de identidad compatibles (OIDC o SAML) desde la AWS CLI son idénticos. La diferencia está en el contenido de la política de confianza que crea en los pasos de requisitos previos. Empiece siguiendo los pasos de la sección Requisitos previos para el tipo de proveedor que utilice:

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 la identidad federada (AWS CLI)

  1. Crear un rol: aws iam create-role

  2. Asociar una política de permisos 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 Administrar etiquetas en roles 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 de proveedor de identidad 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. En el ejemplo, también se presupone que está ejecutando la AWS CLI en un equipo con Windows y que ya ha configurado la AWS CLI con sus credenciales. Para obtener más información, consulte Configuración de la AWS Command Line Interface.

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.

En el ejemplo siguiente, la política de confianza está diseñada para una aplicación móvil si el usuario inicia sesión mediante Amazon Cognito. En este ejemplo, us-east: 12345678-ffff-ffff-ffff-123456 representa el ID del grupo de identidades asignado por Amazon Cognito.

{ "Version": "2012-10-17", "Statement": { "Sid": "RoleForCognito", "Effect": "Allow", "Principal": {"Federated": "cognito-identity.amazonaws.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}} } }

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 el rol Test-Cognito-Role, primero debe guardar la política de confianza anterior con el nombre trustpolicyforcognitofederation.json y la política de permisos anterior con el nombre permspolicyforcognitofederation.json en la carpeta policies del disco duro local C:. A continuación, puede utilizar los comandos siguientes para crear el rol y asociarle la política insertada.

# Create the role and attach the trust policy that enables users in an account to assume the role. $ aws iam create-role --role-name Test-Cognito-Role --assume-role-policy-document file://C:\policies\trustpolicyforcognitofederation.json # Attach the permissions policy to the role to specify what it is allowed to do. aws iam put-role-policy --role-name Test-Cognito-Role --policy-name Perms-Policy-For-CognitoFederation --policy-document file://C:\policies\permspolicyforcognitofederation.json

Creación de un rol para acceso federado (API de AWS)

Los pasos que ha de seguir para crear un rol para los proveedores de identidad compatibles (OIDC o SAML) desde la AWS CLI son idénticos. La diferencia está en el contenido de la política de confianza que crea en los pasos de requisitos previos. Empiece siguiendo los pasos de la sección Requisitos previos para el tipo de proveedor que utilice:

Para crear un rol para la identidad federada (API de AWS)

  1. Crear un rol: CreateRole

  2. Asociar una política de permisos 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 Administrar etiquetas en usuarios 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.