Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Valide e implemente automáticamente las políticas y funciones de IAM en una cuenta de AWS mediante CodePipeline IAM Access Analyzer y macros de AWS CloudFormation - Recomendaciones de AWS

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.

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.

Valide e implemente automáticamente las políticas y funciones de IAM en una cuenta de AWS mediante CodePipeline IAM Access Analyzer y macros de AWS CloudFormation

Creado por Helton Ribeiro (AWS) y Guilherme Simoes (AWS)

Resumen

Aviso: AWS ya no CodeCommit está disponible para nuevos clientes. Los clientes actuales de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. Más información.

Este patrón describe los pasos y proporciona código para crear un proceso de implementación que permita a sus equipos de desarrollo crear políticas y roles de AWS Identity and Access Management (IAM) en sus cuentas de Amazon Web Services (AWS). Este enfoque ayuda a su organización a reducir los gastos generales de sus equipos operativos y a acelerar el proceso de implementación. También ayuda a sus desarrolladores a crear roles y políticas de IAM que sean compatibles con sus controles de gobierno y seguridad actuales.

El enfoque de este patrón utiliza AWS Identity and Access Management Access Analyzer para validar las políticas de IAM que desea adjuntar a las funciones de IAM y utiliza AWS CloudFormation para implementar las funciones de IAM. Sin embargo, en lugar de editar directamente el archivo de CloudFormation plantilla de AWS, su equipo de desarrollo crea políticas y funciones de IAM con formato JSON. Una CloudFormation macro de AWS transforma estos archivos de políticas con formato JSON en tipos de recursos de AWS CloudFormation IAM antes de comenzar la implementación.

La canalización de implementación (RolesPipeline) tiene las etapas de origen, validación e implementación. Durante la fase de origen, su equipo de desarrollo envía los archivos JSON que contienen la definición de las funciones y políticas de IAM a un repositorio de AWS CodeCommit . CodeBuild A continuación, AWS ejecuta un script para validar esos archivos y los copia en un bucket de Amazon Simple Storage Service (Amazon S3). Como sus equipos de desarrollo no tienen acceso directo al archivo de CloudFormation plantilla de AWS almacenado en un depósito de S3 independiente, deben seguir el proceso de creación y validación de archivos JSON.

Por último, durante la fase de implementación, AWS CodeDeploy utiliza una CloudFormation pila de AWS para actualizar o eliminar las políticas y funciones de IAM de una cuenta.

importante

El flujo de trabajo de este patrón es una prueba de concepto (POC) y le recomendamos que solo lo utilice en un entorno de prueba. Si desea utilizar el enfoque de este patrón en un entorno de producción, consulte las Prácticas recomendadas de seguridad en IAM en la documentación de IAM y realice los cambios necesarios en sus roles de IAM y en los servicios de AWS.

Requisitos previos y limitaciones

Requisitos previos

  • Una cuenta de AWS activa.

  • Un bucket de S3 nuevo o existente para la canalización RolesPipeline. Asegúrese de que las credenciales de acceso que está utilizando tengan permisos para cargar objetos en este bucket.

  • Interfaz de la línea de comandos de AWS (AWS CLI) instalada y configurada. Para obtener más información, consulte Instalar, actualizar y desinstalar la CLI de AWS en la documentación de la CLI de AWS. 

  • CLI de AWS Serverless Application Model (AWS SAM), instalada y configurada. Para obtener más información al respecto, consulte Instalación de la CLI de AWS SAM en la documentación de AWS SAM. 

  • Python 3, instalado en su máquina local. Para obtener más información, consulte la documentación de Python.

  • Un cliente Git, Instalado y configurado.

  • El GitHub IAM roles pipeline repositorio, clonado en su máquina local. 

  • Políticas y roles de IAM con formato JSON existentes. Para obtener más información al respecto, consulta el ReadMearchivo en el IAM roles pipeline repositorio de Github.

  • Su equipo de desarrolladores no debe tener permisos para editar los CodeDeploy recursos de AWS CodePipeline y de esta solución. CodeBuild

Limitaciones

  • El flujo de trabajo de este patrón es una prueba de concepto (POC) y le recomendamos que solo lo utilice en un entorno de prueba. Si desea utilizar el enfoque de este patrón en un entorno de producción, consulte las Prácticas recomendadas de seguridad en IAM en la documentación de IAM y realice los cambios necesarios en sus roles de IAM y en los servicios de AWS.

Arquitectura

En el siguiente diagrama, se muestra cómo validar e implementar automáticamente las funciones y políticas de IAM en una cuenta mediante el uso de CodePipeline macros de AWS y IAM Access Analyzer. CloudFormation

Pasos para validar e implementar políticas y funciones de IAM en una cuenta de AWS.

En el diagrama, se muestra el siguiente flujo de trabajo:

  1. Un desarrollador escribe archivos JSON que contienen las definiciones de las políticas y los roles de IAM. El desarrollador envía el código a un CodeCommit repositorio y, a CodePipeline continuación, inicia la canalización. RolesPipeline

  2. CodeBuild valida los archivos JSON mediante IAM Access Analyzer. Si se detecta algún problema de seguridad o relacionado con errores, se detiene el proceso de implementación.

  3. Si no se detecta ningún problema de seguridad o relacionado con errores, los archivos JSON se envían al bucket de S3 RolesBucket.

  4. A continuación, una CloudFormation macro de AWS implementada como una función de AWS Lambda lee los archivos JSON del RolesBucket bucket y los transforma en tipos de recursos de AWS CloudFormation IAM.

  5. Una CloudFormation pila de AWS predefinida instala, actualiza o elimina las políticas y funciones de IAM de la cuenta. 

Automatizar y escalar

CloudFormation Las plantillas de AWS que implementan automáticamente este patrón se proporcionan en el repositorio de canalización de roles de GitHub IAM.

Herramientas

  • La interfaz de la línea de comandos de AWS (AWS CLI) es una herramienta de código abierto que le permite interactuar con los servicios de AWS mediante comandos en su intérprete de comandos de línea de comandos.

  • AWS Identity and Access Management (IAM) le permite administrar de forma segura el acceso a los recursos de AWS mediante el control de quién está autenticado y autorizado a utilizarlos.

  • IAM Access Analyzer le ayuda a identificar los recursos de su organización y sus cuentas, como buckets de S3 o roles de IAM, que se comparten con una entidad externa. Esto le ayuda a identificar el acceso no deseado a sus recursos y datos.

  • AWS Serverless Application Model (AWS SAM) es un marco de código abierto que permite crear aplicaciones sin servidor en la nube de AWS.

Código

El código fuente y las plantillas de este patrón están disponibles en el repositorio de la canalización de roles de GitHub IAM.

Epics

TareaDescripciónHabilidades requeridas

Clone el repositorio de muestra.

Clona el repositorio de canalización de roles de GitHub IAM en tu máquina local.

Desarrollador de aplicaciones, AWS general

Clone el repositorio

TareaDescripciónHabilidades requeridas

Clone el repositorio de muestra.

Clona el repositorio de canalización de roles de GitHub IAM en tu máquina local.

Desarrollador de aplicaciones, AWS general
TareaDescripciónHabilidades requeridas

Implemente la canalización.

  1. Vaya al directorio que contiene el repositorio clonado.

  2. importante

    Ejecute el make deploy bucket=<bucket_name> comando.: debe <bucket_name> reemplazarlo por el nombre del bucket de S3 existente.

  3. Ejecute el comando aws codepipeline get-pipeline –name RolesPipeline para comprobar si la implementación se ha realizado correctamente.

Desarrollador de aplicaciones, AWS general

Clone el repositorio de la canalización.

  1. La CloudFormation pila de RolesPipeline AWS crea el roles-pipeline-repo CodeCommit repositorio.

  2. Inicie sesión en la consola de administración de AWS, abra la CodeCommit consola de AWS y, a continuación, copie la URL del CodeCommit repositorio para clonarlo en su máquina local. Para obtener más información al respecto, consulte Conectarse a un CodeCommit repositorio de AWS en la CodeCommit documentación de AWS.

Desarrollador de aplicaciones, AWS general

Implemente la canalización RolesPipeline

TareaDescripciónHabilidades requeridas

Implemente la canalización.

  1. Vaya al directorio que contiene el repositorio clonado.

  2. importante

    Ejecute el make deploy bucket=<bucket_name> comando.: debe <bucket_name> reemplazarlo por el nombre del bucket de S3 existente.

  3. Ejecute el comando aws codepipeline get-pipeline –name RolesPipeline para comprobar si la implementación se ha realizado correctamente.

Desarrollador de aplicaciones, AWS general

Clone el repositorio de la canalización.

  1. La CloudFormation pila de RolesPipeline AWS crea el roles-pipeline-repo CodeCommit repositorio.

  2. Inicie sesión en la consola de administración de AWS, abra la CodeCommit consola de AWS y, a continuación, copie la URL del CodeCommit repositorio para clonarlo en su máquina local. Para obtener más información al respecto, consulte Conectarse a un CodeCommit repositorio de AWS en la CodeCommit documentación de AWS.

Desarrollador de aplicaciones, AWS general
TareaDescripciónHabilidades requeridas

Pruebe la RolesPipeline canalización con políticas y funciones de IAM válidas.

  1. Cree archivos JSON para sus políticas y roles de IAM. Puede utilizar los ejemplos del role-example directorio del GitHub IAM roles pipeline repositorio.

  2. importante

    Defina sus políticas y roles de IAM con las configuraciones requeridas. : Asegúrese de seguir el formato descrito en el ReadMe archivo del GitHub IAM roles pipeline repositorio.

  3. Inserte las modificaciones en el roles-pipeline-repo CodeCommit repositorio.

  4. Verifique la implementación de la canalización RolesPipeline.

  5. Asegúrese de que las políticas y los roles de IAM estén implementados correctamente en la cuenta.

  6. Valide si existe un límite de permisos asociado a las políticas o los roles de IAM. Para obtener más información, consulte Límites de permisos para las entidades de IAM en la documentación de IAM.

Desarrollador de aplicaciones, AWS general

Pruebe la RolesPipeline canalización con políticas y funciones de IAM no válidas.

  1. Modifique el roles-pipeline-repo CodeCommit repositorio e incluya funciones o políticas de IAM no válidas. Por ejemplo, puede utilizar una acción que no exista o una versión de la política de IAM no válida.

  2. Verifique la implementación de la canalización. IAM Access Analyzer detiene la canalización durante la fase de validación si detecta políticas o roles de IAM no válidos.

Desarrollador de aplicaciones, AWS general

Pruebe la RolesPipeline canalización

TareaDescripciónHabilidades requeridas

Pruebe la RolesPipeline canalización con políticas y funciones de IAM válidas.

  1. Cree archivos JSON para sus políticas y roles de IAM. Puede utilizar los ejemplos del role-example directorio del GitHub IAM roles pipeline repositorio.

  2. importante

    Defina sus políticas y roles de IAM con las configuraciones requeridas. : Asegúrese de seguir el formato descrito en el ReadMe archivo del GitHub IAM roles pipeline repositorio.

  3. Inserte las modificaciones en el roles-pipeline-repo CodeCommit repositorio.

  4. Verifique la implementación de la canalización RolesPipeline.

  5. Asegúrese de que las políticas y los roles de IAM estén implementados correctamente en la cuenta.

  6. Valide si existe un límite de permisos asociado a las políticas o los roles de IAM. Para obtener más información, consulte Límites de permisos para las entidades de IAM en la documentación de IAM.

Desarrollador de aplicaciones, AWS general

Pruebe la RolesPipeline canalización con políticas y funciones de IAM no válidas.

  1. Modifique el roles-pipeline-repo CodeCommit repositorio e incluya funciones o políticas de IAM no válidas. Por ejemplo, puede utilizar una acción que no exista o una versión de la política de IAM no válida.

  2. Verifique la implementación de la canalización. IAM Access Analyzer detiene la canalización durante la fase de validación si detecta políticas o roles de IAM no válidos.

Desarrollador de aplicaciones, AWS general
TareaDescripciónHabilidades requeridas

Prepárese para la limpieza.

Vacíe los buckets de S3 y, a continuación, ejecute el comando destroy.

Desarrollador de aplicaciones, AWS general

Elimine la RolesStack pila.

  1. La RolesPipeline canalización crea una CloudFormation pila de RolesStack AWS que implementa las políticas y funciones de IAM. Debe eliminar esta pila antes de eliminar la canalización RolesPipeline.

  2. Inicie sesión en la consola de administración de AWS, abra la CloudFormation consola de AWS y, a continuación, elija la RolesStack pila y elija Eliminar.

Desarrollador de aplicaciones, AWS general

Elimine la RolesPipeline pila.

Para eliminar la CloudFormation pila de RolesPipeline AWS, sigue las instrucciones del ReadMearchivo del IAM roles pipeline repositorio de Github.

Desarrollador de aplicaciones, AWS general

Eliminación de sus recursos

TareaDescripciónHabilidades requeridas

Prepárese para la limpieza.

Vacíe los buckets de S3 y, a continuación, ejecute el comando destroy.

Desarrollador de aplicaciones, AWS general

Elimine la RolesStack pila.

  1. La RolesPipeline canalización crea una CloudFormation pila de RolesStack AWS que implementa las políticas y funciones de IAM. Debe eliminar esta pila antes de eliminar la canalización RolesPipeline.

  2. Inicie sesión en la consola de administración de AWS, abra la CloudFormation consola de AWS y, a continuación, elija la RolesStack pila y elija Eliminar.

Desarrollador de aplicaciones, AWS general

Elimine la RolesPipeline pila.

Para eliminar la CloudFormation pila de RolesPipeline AWS, sigue las instrucciones del ReadMearchivo del IAM roles pipeline repositorio de Github.

Desarrollador de aplicaciones, AWS general

Recursos relacionados

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.