

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Valide e implante automaticamente políticas e funções do IAM usando CodePipeline macros do IAM Access Analyzer e 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 e Guilherme Simões, Amazon Web Services*

## Resumo
<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>

Esse padrão descreve as etapas e fornece código para criar um pipeline de implantação que permite que suas equipes de desenvolvimento criem políticas e perfis do AWS Identity and Access Management (IAM) em suas contas da Amazon Web Services (AWS). Essa abordagem ajuda sua organização a reduzir a sobrecarga de suas equipes operacionais e acelerar o processo de implantação. Também ajuda seus desenvolvedores a criar funções e políticas do IAM que sejam compatíveis com seus controles de governança e segurança existentes.

A abordagem desse padrão usa o [AWS Identity and Access Management Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html) para validar as políticas do IAM que você deseja anexar às funções do IAM e usa a AWS CloudFormation para implantar as funções do IAM. No entanto, em vez de editar diretamente o arquivo de CloudFormation modelo da AWS, sua equipe de desenvolvimento cria políticas e funções do IAM formatadas em JSON. Uma CloudFormation macro da AWS transforma esses arquivos de política formatados em JSON em tipos de recursos CloudFormation do AWS IAM antes de iniciar a implantação.

O pipeline de implantação (`RolesPipeline`) tem estágios de origem, validação e implantação. Durante o estágio de origem, sua equipe de desenvolvimento envia os arquivos JSON que contêm a definição das funções e políticas do IAM para um repositório da AWS CodeCommit . CodeBuild Em seguida, a AWS executa um script para validar esses arquivos e os copia em um bucket do Amazon Simple Storage Service (Amazon S3). Como suas equipes de desenvolvimento não têm acesso direto ao arquivo de CloudFormation modelo da AWS armazenado em um bucket S3 separado, elas devem seguir o processo de criação e validação do arquivo JSON.

Finalmente, durante a fase de implantação, a AWS CodeDeploy usa uma CloudFormation pilha da AWS para atualizar ou excluir as políticas e funções do IAM em uma conta.

**Importante**  
O fluxo de trabalho desse padrão é uma prova de conceito (POC) e recomendamos que você o use somente em um ambiente de teste. Se você quiser usar a abordagem desse padrão em um ambiente de produção, consulte [‭‬Práticas recomendadas de segurança em IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)‭‬ na documentação do IAM e faça as alterações necessárias nos seus perfis do IAM e nos serviços da AWS.

## Pré-requisitos e limitações
<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>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Um bucket S3 novo ou existente para o pipeline `RolesPipeline`. Garanta que as credenciais de acesso que você está usando tenham permissões para carregar objetos nesse bucket.
+ AWS Command Line Interface (AWS CLI), instalada e configurada. Para obter mais informações, consulte [Instalação, atualização e desinstalação da AWS CLI ](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)na documentação da AWS CLI. 
+ CLI do AWS Serverless Application Model (AWS SAM), instalada e configurada. Para obter mais informações sobre isso, consulte [Instalação da CLI do AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) na documentação do AWS SAM. 
+ Python 3, instalado na sua máquina local. Para obter mais informações, consulte a [documentação do Pyton](https://www.python.org/).
+ Um cliente Git, instalado e configurado.
+ O GitHub `IAM roles pipeline` repositório, clonado em sua máquina local. 
+ Políticas e perfis do IAM existentes em formato JSON. Para obter mais informações sobre isso, consulte o [ReadMe](https://github.com/aws-samples/iam-roles-pipeline/blob/main/README.md)arquivo no `IAM roles pipeline` repositório Github.
+ Sua equipe de desenvolvedores não deve ter permissões para editar a AWS e CodePipeline CodeBuild os CodeDeploy recursos dessa solução.

**Limitações**
+ O fluxo de trabalho desse padrão é uma prova de conceito (POC) e recomendamos que você o use somente em um ambiente de teste. Se você quiser usar a abordagem desse padrão em um ambiente de produção, consulte [‭‬Práticas recomendadas de segurança em IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)‭‬ na documentação do IAM e faça as alterações necessárias nos seus perfis do IAM e nos serviços da AWS.

## Arquitetura
<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>

O diagrama a seguir mostra como validar e implantar automaticamente funções e políticas do IAM em uma conta usando o CodePipeline IAM Access Analyzer e macros da AWS CloudFormation .

![\[Etapas para validar e implantar perfis e políticas do IAM em uma conta da AWS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/df1add4d-f211-43e3-8976-5314da75f627/images/832bebaf-27a0-4949-9c30-99fc4c9982b8.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um desenvolvedor grava arquivos JSON que contêm as definições das políticas e perfis do IAM. O desenvolvedor envia o código para um CodeCommit repositório e, em CodePipeline seguida, inicia o pipeline. `RolesPipeline`

1. CodeBuild valida os arquivos JSON usando o IAM Access Analyzer. Se houver alguma descoberta relacionada a erros ou segurança, o processo de implantação será interrompido.

1. Se não houver descobertas relacionadas a erros ou segurança, os arquivos JSON serão enviados para o bucket do S3 `RolesBucket`.

1. Em seguida, uma CloudFormation macro da AWS implementada como uma função do AWS Lambda lê os arquivos JSON do `RolesBucket` bucket e os transforma em tipos de recursos do AWS CloudFormation IAM.

1. Uma CloudFormation pilha predefinida da AWS instala, atualiza ou exclui as políticas e funções do IAM na conta. 

**Automação e escala**

 CloudFormation Os modelos da AWS que implantam automaticamente esse padrão são fornecidos no repositório do [pipeline de funções GitHub do IAM](https://github.com/aws-samples/iam-roles-pipeline).

## Ferramentas
<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>
+ A [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) é uma ferramenta de código aberto que permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+ O [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ O [IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) ajuda você a identificar os recursos em sua organização e suas contas, como buckets do S3 ou funções do IAM, que são compartilhados com uma entidade externa. Isso ajuda a identificar o acesso não intencional aos seus recursos e dados.
+ O [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) é uma estrutura de código aberto que ajuda na criação de aplicativos sem servidor na Nuvem AWS.

**Código**

O código-fonte e os modelos desse padrão estão disponíveis no repositório do [pipeline de funções GitHub do IAM](https://github.com/aws-samples/iam-roles-pipeline).

## Épicos
<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 o repositório
<a name="clone-the-repository"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
|  Clone o repositório de amostras. | Clone o repositório do [pipeline de funções GitHub do IAM](https://github.com/aws-samples/iam-roles-pipeline) em sua máquina local. | Desenvolvedor de aplicativos, AWS geral | 

### Implante o RolesPipeline pipeline
<a name="deploy-the-rolespipeline-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante o pipeline. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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) | Desenvolvedor de aplicativos, AWS geral | 
| Clone o repositório do pipeline. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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) | Desenvolvedor de aplicativos, AWS geral | 

### Teste o RolesPipeline pipeline
<a name="test-the-rolespipeline-pipeline"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Teste o RolesPipeline pipeline com políticas e funções válidas do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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) | Desenvolvedor de aplicativos, AWS geral | 
| Teste o RolesPipeline pipeline com políticas e funções inválidas do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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) | Desenvolvedor de aplicativos, AWS geral | 

### Limpe os seus recursos
<a name="clean-up-your-resources"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Preparar para a limpeza. | Esvazie os buckets do S3 e execute o comando `destroy`. | Desenvolvedor de aplicativos, AWS geral | 
| Exclua a RolesStack pilha. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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) | Desenvolvedor de aplicativos, AWS geral | 
| Exclua a RolesPipeline pilha. | Para excluir a CloudFormation pilha `RolesPipeline` da AWS, siga as instruções do [ReadMe](https://github.com/aws-samples/iam-roles-pipeline/blob/main/README.md)arquivo no repositório do Github. `IAM roles pipeline` | Desenvolvedor de aplicativos, AWS geral | 

## 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>
+ [Validação de política do IAM Access Analyzer](https://aws.amazon.com/blogs/aws/iam-access-analyzer-update-policy-validation/) (Blog da notícias da AWS)
+ [Usando CloudFormation macros da AWS para realizar processamento personalizado em modelos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html) ( CloudFormation documentação da AWS)
+ [Criar funções do Lambda com Python](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html) (documentação do AWS Lambda)