Tutorial de IAM: use una plantilla de AWS CloudFormation para crear un rol de IAM federado de SAML
Si tiene un proveedor de identidades (IdP) de SAML existente configurado en su cuenta de AWS, puede crear funciones de IAM federadas que confíen en ese IdP. En este tutorial, se muestra cómo usar una plantilla de AWS CloudFormation para crear un rol de IAM federado de SAML que puedan asumir los usuarios autenticados a través de su IdP externo.
La plantilla crea un rol de IAM federado con una política de confianza que permite que el IdP de SAML asuma el rol. Los usuarios autenticados por su IdP externo pueden asumir este rol para acceder a los recursos de AWS en función de los permisos que están adjuntos al rol.
El recurso desplegado consta de los siguientes elementos:
-
Un rol de IAM federado que confía en su IdP de SAML existente.
-
Políticas administradas configurables que se pueden adjuntar al rol para conceder permisos específicos.
-
Configuraciones opcionales de límite de permisos y duración de las sesiones.
Requisitos previos
En este tutorial se presupone que los elementos siguientes ya existen:
-
Un IdP de SAML existente configurado en su cuenta de AWS. Si no lo tiene, puede crear uno con el tutorial de Tutorial de IAM: use una plantilla de AWS CloudFormation para crear un proveedor de identidades (IdP) de SAML.
-
El ARN de su IdP de SAML, que deberá especificar como parámetro durante la creación de la pila.
-
Python 3.6 o una versión posterior instalada en su máquina local para ejecutar el comando de Python utilizado en este tutorial a fin de formatear el archivo XML de metadatos SAML de su IdP.
Crear un rol federado de SAML con AWS CloudFormation
Para crear el rol federado de SAML, debe crear una plantilla de CloudFormation y utilizarla para crear una pila que contenga el rol.
Crear la plantilla
Primero, cree la plantilla de CloudFormation.
-
En la sección Plantilla, haga clic en el icono de copia de la pestaña JSON o YAML para copiar el contenido de la plantilla.
-
Pegue el contenido de la plantilla en un archivo nuevo.
-
Guarde el archivo localmente.
Creación de la pila
A continuación, utilice la plantilla que creó para aprovisionar una pila de CloudFormation.
-
Abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation
. -
En la página Pilas, para Crear pila elija Con nuevos recursos (estándar).
-
En Especificar plantilla:
-
En Requisito previo, elija Seleccionar una plantilla existente.
-
En Especificar plantilla, elija Cargar un archivo de plantilla.
-
Seleccione Elegir archivo para navegar hasta el archivo y seleccionarlo.
-
Elija Siguiente.
-
-
Especifique los siguientes detalles de la pila:
-
Introduzca un nombre de pila.
-
Para SAMLProviderARN, introduzca el ARN de su IdP de SAML existente. Debe estar en el formato
arn:aws:iam::123456789012:saml-provider/YourProviderName
.Ejemplo:
arn:aws:iam::123456789012:saml-provider/CompanyIdP
nota
Si creó su IdP de SAML con el tutorial de Tutorial de IAM: use una plantilla de AWS CloudFormation para crear un proveedor de identidades (IdP) de SAML, puede encontrar el ARN del proveedor en la pestaña de resultados de esa pila de CloudFormation.
-
Para RoleName, puede dejar este campo vacío para generar automáticamente un nombre basado en el nombre de la pila o introducir un nombre personalizado para el rol de IAM.
Ejemplo:
SAML-Developer-Access
oSAML-ReadOnly-Role
-
Para otros parámetros, acepte los valores predeterminados o introduzca los propios en función de sus requisitos:
-
RoleSessionDuration: duración máxima de la sesión en segundos (3600-43 200, el valor predeterminado es 7200)
Ejemplo:
14400
(4 horas) -
RolePermissionsBoundary: ARN opcional de una política de límite de permisos
Ejemplo:
arn:aws:iam::123456789012:policy/DeveloperBoundary
-
RolePath: ruta para el rol de IAM (el valor predeterminado es /)
Ejemplo:
/saml-roles/
-
ManagedPolicy1-5: se pueden adjuntar ARN opcionales de hasta 5 políticas administradas
Ejemplo de ManagedPolicy1:
arn:aws:iam::aws:policy/ReadOnlyAccess
Ejemplo de ManagedPolicy2:
arn:aws:iam::123456789012:policy/CustomPolicy
-
-
Elija Siguiente.
-
-
Configure las opciones la pila:
-
En las opciones de error de pila, seleccione Eliminar todos los recursos recién creados.
nota
Si elige esta opción, evita que se le facturen los recursos cuya política de eliminación especifique que se conservarán incluso si se produce un error durante la creación de la pila.
-
Acepte todos los demás valores predeterminados.
-
En Capacidades, seleccione la casilla para aceptar que CloudFormation puede crear recursos de IAM en su cuenta.
-
Elija Siguiente.
-
-
Revise los detalles de la pila y elija Enviar.
AWS CloudFormation crea el stack. Una vez completada la creación de la pila, los recursos de la pila están listos para usarse. Puede usar la pestaña Recursos de la página de detalles de la pila para ver los recursos que se aprovisionaron en su cuenta.
La pila generará el siguiente valor, que puede ver en la pestaña Resultados:
-
RoleARN: el ARN del rol de IAM creado (por ejemplo,
arn:aws:iam::123456789012:role/SAML-Developer-Access
oarn:aws:iam::123456789012:role/stack-name-a1b2c3d4
si se utiliza un nombre generado automáticamente).
Necesitará este ARN del rol al configurar su IDP para enviar los atributos de SAML adecuados para la asunción del rol.
Probar el rol federado de SAML
Una vez que se haya creado el rol federado de SAML, puede verificar su configuración y probar la configuración de la federación.
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
Seleccione Roles en el panel de navegación.
-
Busque y seleccione el rol federado que acaba de crear.
Si proporcionó un nombre de rol personalizado, búsquelo. Si dejó el parámetro RoleName vacío, el rol tendrá un nombre generado automáticamente que se basa en el nombre de la pila y un identificador único.
-
Seleccione la pestaña Relaciones de confianza para revisar la política de confianza.
La política de confianza debe mostrar que se confía en su IdP de SAML para asumir este rol con la condición de que la audiencia de SAML (
SAML:aud
) coincida conhttps://signin.aws.amazon.com/saml
. -
Seleccione la pestaña Permisos para revisar las políticas asociadas.
Puede ver todas las políticas administradas que se adjuntaron al rol durante su creación.
-
Anote el ARN de rol que se muestra en la página de resumen del rol.
Necesitará este ARN para configurar su IdP externo y permitir que los usuarios asuman este rol.
El rol federado de SAML ya está listo para usarse. Configure su IdP externo para incluir el ARN de este rol en las aserciones de SAML, y los usuarios autenticados podrán asumir este rol para acceder a los recursos de AWS.
Limpieza: elimine recursos
Como último paso, eliminará la pila y los recursos que contiene.
-
Abra la consola de AWS CloudFormation.
-
En la página Pilas, seleccione la pila creada a partir de la plantilla, seleccione Eliminar y, a continuación, confirme Eliminar.
CloudFormation inicia la eliminación de la pila y de todos los recursos que incluye.
Detalles de la plantilla de CloudFormation
Recursos
La plantilla de AWS CloudFormation para este tutorial crea el siguiente recurso en su cuenta:
-
AWS::IAM::Role
: un rol de IAM federado que pueden asumir los usuarios autenticados a través del IdP de SAML.
Configuración
La plantilla incluye los siguientes parámetros configurables:
-
RoleName: nombre del rol de IAM (déjelo en blanco para que el nombre se genere automáticamente)
-
SAMLProviderARN: ARN del IdP de SAML (obligatorio)
-
RoleSessionDuration: duración máxima de la sesión en segundos (3600-43 200, el valor predeterminado es 7200)
-
RolePermissionsBoundary: ARN opcional de una política de límite de permisos
-
RolePath: ruta para el rol de IAM (el valor predeterminado es /)
-
ManagedPolicy1-5: se pueden adjuntar ARN opcionales de hasta 5 políticas administradas
Plantilla de CloudFormation
Guarde el siguiente código JSON o YAML como un archivo independiente para usarlo como plantilla de CloudFormation en este tutorial.