Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Gestione los conjuntos de permisos del AWS IAM Identity Center como código mediante AWS CodePipeline
Creado por Andre Cavalcante (AWS) y Claison Amorim (AWS)
Entorno: producción | Tecnologías: seguridad, identidad, cumplimiento; DevOps | |
Servicios de AWS: AWS CodeBuild; AWS CodeCommit CodePipeline; AWS IAM Identity Center |
Resumen
AWS IAM Identity Center (sucesor de AWS Single Sign-On) le ayuda a administrar de forma centralizada el acceso de inicio de sesión único (SSO) a todas las cuentas y aplicaciones de AWS. Puede crear y administrar identidades de usuario en IAM Identity Center, o puede conectar una fuente de identidades existente, como un dominio de Microsoft Active Directory o un proveedor de identidades (IdP) externo. IAM Identity Center ofrece una experiencia de administración unificada para definir, personalizar y asignar un acceso detallado a su entorno de AWS mediante conjuntos de permisos. Los conjuntos de permisos se aplican a los usuarios y grupos federados de su almacén de identidades de AWS IAM Identity Center o de su IdP externo.
Este patrón le ayuda a administrar los conjuntos de permisos del IAM Identity Center como código en su entorno de cuentas múltiples que se administra como una organización en AWS Organizations. Con este patrón, puede lograr lo siguiente:
Crear, eliminar y actualizar conjuntos de permisos
Cree, actualice o elimine asignaciones de conjuntos de permisos de destino a cuentas de AWS, unidades organizativas (OU) o la raíz de la organización.
Para gestionar los permisos y las asignaciones del IAM Identity Center como código, esta solución implementa una canalización de integración y entrega continuas (CI/CD) que utiliza AWS, AWS y CodeCommit AWS. CodeBuild CodePipeline Usted administra los conjuntos de permisos y las asignaciones en plantillas JSON que almacena en el repositorio. CodeCommit Cuando EventBridge las reglas de Amazon detectan un cambio en el repositorio o detectan modificaciones en las cuentas de la unidad organizativa de destino, se inicia una función de AWS Lambda. La función de Lambda inicia la canalización de CI/CD que actualiza los conjuntos de permisos y las asignaciones en IAM Identity Center.
Requisitos previos y limitaciones
Requisitos previos
Un entorno de varias cuentas gestionado como una organización en AWS Organizations. A fin de obtener más información, consulte Creación de una organización.
IAM Identity Center, habilitado y configurado con una fuente de identidad. Para obtener más información, consulte Introducción en la documentación de IAM Identity Center.
Una cuenta de miembro que está registrada como administrador delegado del IAM Identity Center. Para obtener instrucciones, consulte Registrar una cuenta de miembro en la documentación del IAM Identity Center.
Permisos para implementar CloudFormation pilas de AWS en la cuenta de administrador delegado del IAM Identity Center y en la cuenta de administración de la organización. Para obtener más información, consulte Controlar el acceso en la documentación. CloudFormation
Un bucket de Amazon Simple Storage Service (Amazon S3) en el administrador delegado del Identity Center para cargar el código del artefacto. Para ver instrucciones, consulte Crear un bucket.
El ID de la cuenta de gestión de la organización. Para obtener instrucciones, consulte Encontrar el ID de su cuenta de AWS.
Limitaciones
Este patrón no se puede usar para administrar o asignar conjuntos de permisos para entornos de una sola cuenta o para cuentas que no se administran como una organización en AWS Organizations.
Los nombres de los conjuntos de permisos, los ID de asignación y los tipos e ID de entidad principal del IAM Identity Center no se pueden modificar después de la implementación.
Este patrón le ayuda a crear y administrar permisos personalizados. No puede usar este patrón para administrar o asignar permisos predefinidos.
Este patrón no se puede usar para administrar un conjunto de permisos para la cuenta de administración de la organización.
Arquitectura
Pila de tecnología
AWS CodeBuild
AWS CodeCommit
AWS CodePipeline
Amazon EventBridge
AWS Identity Center
AWS Lambda
AWS Organizations
Arquitectura de destino
![Uso de la canalización de CI/CD y el CodeCommit repositorio de AWS para administrar los conjuntos de permisos en AWS IAM Identity Center.](images/pattern-img/419aaa80-1b97-402d-9c74-c1b8c1ddd1cb/images/3d671cf3-329b-4292-aa2d-1027886074f4.png)
En el diagrama, se muestra el siguiente flujo de trabajo:
Un usuario realiza uno de los siguientes cambios:
Realiza uno o más cambios en el repositorio CodeCommit
Modifica las cuentas de la unidad organizativa (OU) de AWS Organizations
Si el usuario ha realizado un cambio en el CodeCommit repositorio, la
CodeChange
EventBridge regla detecta el cambio e inicia una función Lambda en la cuenta de administrador delegado de IAM Identity Center. La regla no reacciona a los cambios en determinados archivos del repositorio, como el archivoREADME.md
.Si el usuario modificó las cuentas de la unidad organizativa, la
MoveAccount
EventBridge regla detecta el cambio e inicia una función Lambda en la cuenta de administración de la organización.La función Lambda iniciada inicia la canalización de CI/CD. CodePipeline
CodePipeline inicia el proyecto.
CodebuildTemplateValidation
CodeBuildEl
CodebuildTemplateValidation
CodeBuild proyecto utiliza un script de Python en el CodeCommit repositorio para validar las plantillas del conjunto de permisos. CodeBuild valida lo siguiente:Los nombres de conjunto de permisos son únicos.
Los ID de la declaración de asignación (
Sid
) son únicos.Las definiciones de política figuran en el parámetro
CustomPolicy
y son válidas. (Esta validación utiliza AWS Identity and Access Management Access Analyzer)Los nombres de recurso de Amazon (ARN) de las políticas administradas son válidos.
El
CodebuildPermissionSet
CodeBuild proyecto utiliza AWS SDK for Python (Boto3) para eliminar, crear o actualizar los conjuntos de permisos en el Centro de identidades de IAM. Solo se ven afectados los conjuntos de permisos con la etiquetaSSOPipeline:true
. Todos los conjuntos de permisos que se administran a través de esta canalización tienen esta etiqueta.El
CodebuildAssignments
CodeBuild proyecto utiliza Terraform para eliminar, crear o actualizar las asignaciones en el Centro de Identidad de IAM. Los archivos de estado del backend de Terraform se almacenan en un bucket de S3 en la misma cuenta.CodeBuild asume una función de
lookup
IAM en la cuenta de administración de la organización. Llama a las API de las organizaciones y de identitystorepara enumerar los recursos necesarios para conceder o revocar permisos. CodeBuild actualiza los conjuntos de permisos y las asignaciones en el Centro de identidades de IAM.
Automatizar y escalar
Como todas las cuentas nuevas en un entorno de varias cuentas se trasladan a una unidad organizativa específica de AWS Organizations, esta solución se ejecuta automáticamente y concede los conjuntos de permisos necesarios a todas las cuentas que especifique en las plantillas de asignación. No se necesitan automatizaciones ni acciones de escalado adicionales.
En entornos de gran tamaño, la cantidad de solicitudes de API al IAM Identity Center puede provocar que esta solución se ejecute más lentamente. Terraform y Boto3 gestionan automáticamente la limitación para minimizar cualquier degradación del rendimiento.
Herramientas
Servicios de AWS
AWS le CloudFormation ayuda a configurar los recursos de AWS, aprovisionarlos de forma rápida y coherente y gestionarlos durante todo su ciclo de vida en todas las cuentas y regiones de AWS.
AWS CodeBuild es un servicio de compilación totalmente gestionado que le ayuda a compilar código fuente, ejecutar pruebas unitarias y producir artefactos listos para su implementación.
AWS CodeCommit es un servicio de control de versiones que le ayuda a almacenar y gestionar repositorios de Git de forma privada, sin necesidad de gestionar su propio sistema de control de código fuente.
AWS le CodePipeline ayuda a modelar y configurar rápidamente las diferentes etapas de una versión de software y a automatizar los pasos necesarios para publicar cambios de software de forma continua.
Amazon EventBridge es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, las funciones de Lambda de AWS, los puntos de conexión de invocación HTTP que utilizan destinos de API o los buses de eventos de otras cuentas de AWS.
AWS IAM Identity Center le ayuda a gestionar de forma centralizada el acceso de inicio de sesión único (SSO) a todas sus cuentas y aplicaciones en la nube de AWS.
AWS Organizations es un servicio de administración de cuentas que le permite agrupar varias cuentas de AWS en una organización que usted crea y administra de manera centralizada.
AWS SDK para Python (Boto3)
es un kit de desarrollo de software que permite integrar su aplicación, biblioteca o script de Python con los servicios de AWS. Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que le ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
Repositorio de código
El código de este patrón está disponible en el repositorio aws-iam-identity-center-pipeline
Prácticas recomendadas
Antes de empezar a modificar el conjunto de permisos y las plantillas de asignación, le recomendamos que planifique los conjuntos de permisos para su organización. Tenga en cuenta cuáles deben ser los permisos, a qué cuentas o unidades organizativas debe aplicarse el conjunto de permisos y qué entidades principales (usuarios o grupos) del IAM Identity Center deberían verse afectados por el conjunto de permisos. Los nombres de los conjuntos de permisos, los ID de asociación y los tipos de entidad principal del IAM Identity Center no se pueden modificar tras la implementación.
Cumpla con el principio de privilegio mínimo y conceda los permisos mínimos necesarios para llevar a cabo una tarea. Para obtener más información, consulte Otorgar privilegio mínimo y Prácticas recomendadas de seguridad en la documentación de IAM.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Clonar el repositorio. | En un shell de bash, ingrese el siguiente comando: Esto clona el repositorio aws-iam-identity-center-pipeline desde
| DevOps ingeniero |
Defina los conjuntos de permisos. |
| DevOps ingeniero |
Defina las asignaciones. |
| DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cargue los archivos en un bucket de S3. |
| DevOps ingeniero |
Implemente los recursos en la cuenta de administrador delegado del IAM Identity Center. |
| DevOps ingeniero |
Implemente recursos en la cuenta de administración de AWS Organizations. |
| DevOps ingeniero |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Actualice los conjuntos de permisos y las asignaciones. | Cuando la EventBridge regla de Si desea modificar los conjuntos de permisos y las asignaciones implementados, actualice los archivos JSON y, a continuación, consérvelos en el CodeCommit repositorio de la cuenta de administrador delegado del IAM Identity Center. Para obtener instrucciones, consulte Crear una confirmación en la CodeCommit documentación. Tenga en cuenta lo siguiente cuando utilice la canalización de CI/CD para gestionar conjuntos de permisos y asociaciones implementados anteriormente:
| DevOps ingeniero |
Resolución de problemas
Problema | Solución |
---|---|
Errores de acceso denegado | Confirme que tiene los permisos necesarios para implementar las CloudFormation plantillas y los recursos definidos en ellas. Para obtener más información, consulte Controlar el acceso en la CloudFormation documentación. |
Errores de canalización en la fase de validación | Este error se muestra si hay algún error en el conjunto de permisos o en las plantillas de asignación.
|
Recursos relacionados
Conjuntos de permisos (documentación del IAM Identity Center)