

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 mediante CodePipeline IAM Access Analyzer y macros de AWS CloudFormation
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros"></a>

*Helton Ribeiro y Guilherme Simoes, Amazon Web Services*

## Resumen
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-summary"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 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
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-prereqs"></a>

**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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 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](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) 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](https://www.python.org/).
+ 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 [ReadMe](https://github.com/aws-samples/iam-roles-pipeline/blob/main/README.md)archivo 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la documentación de IAM y realice los cambios necesarios en sus roles de IAM y en los servicios de AWS.

## Arquitectura
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-architecture"></a>

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 automáticamente las políticas y los roles de IAM en una cuenta de AWS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/df1add4d-f211-43e3-8976-5314da75f627/images/832bebaf-27a0-4949-9c30-99fc4c9982b8.png)


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`

1. 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.

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

1. 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.

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

**Automatización y escala**

 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](https://github.com/aws-samples/iam-roles-pipeline).

## Tools (Herramientas)
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-tools"></a>
+ La [interfaz de la línea de comandos de AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) 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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) 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)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) 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](https://github.com/aws-samples/iam-roles-pipeline).

## Epics
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-epics"></a>

### Clone el repositorio
<a name="clone-the-repository"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
|  Clone el repositorio de muestra. | Clona el repositorio de [canalización de roles de GitHub IAM](https://github.com/aws-samples/iam-roles-pipeline) en tu máquina local. | Desarrollador de aplicaciones, AWS general | 

### Implemente la canalización RolesPipeline
<a name="deploy-the-rolespipeline-pipeline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Implemente la canalización. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Desarrollador de aplicaciones, AWS general | 
| Clone el repositorio de la canalización. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Desarrollador de aplicaciones, AWS general | 

### Pruebe la RolesPipeline canalización
<a name="test-the-rolespipeline-pipeline"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Pruebe la RolesPipeline canalización con políticas y funciones de IAM válidas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Desarrollador de aplicaciones, AWS general | 
| Pruebe la RolesPipeline canalización con políticas y funciones de IAM no válidas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Desarrollador de aplicaciones, AWS general | 

### Eliminación de sus recursos
<a name="clean-up-your-resources"></a>


| Tarea | Descripción | Habilidades 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. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros.html) | Desarrollador de aplicaciones, AWS general | 
| Elimine la RolesPipeline pila. | Para eliminar la CloudFormation pila de `RolesPipeline` AWS, sigue las instrucciones del [ReadMe](https://github.com/aws-samples/iam-roles-pipeline/blob/main/README.md)archivo del `IAM roles pipeline` repositorio de Github. | Desarrollador de aplicaciones, AWS general | 

## Recursos relacionados
<a name="automatically-validate-and-deploy-iam-policies-and-roles-in-an-aws-account-by-using-codepipeline-iam-access-analyzer-and-aws-cloudformation-macros-resources"></a>
+ [IAM Access Analyzer: validación de políticas](https://aws.amazon.com/blogs/aws/iam-access-analyzer-update-policy-validation/) (Blog de noticias de AWS)
+ [Uso de CloudFormation macros de AWS para realizar un procesamiento personalizado en plantillas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) ( CloudFormation documentación de AWS)
+ [Creación de funciones Lambda con Python](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html) (documentación de AWS Lambda)