Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Valide e implante automaticamente políticas e funções do IAM em uma conta da AWS usando o CodePipeline IAM Access Analyzer e macros da AWS CloudFormation - Recomendações da AWS

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

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 em uma conta da AWS usando o CodePipeline IAM Access Analyzer e macros da AWS CloudFormation

Criado por Helton Ribeiro (AWS) e Guilherme Simoes (AWS)

Resumo

Aviso: CodeCommit A AWS não está mais disponível para novos clientes. Os clientes atuais da AWS CodeCommit podem continuar usando o serviço normalmente. Saiba mais.

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 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‭‬ 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

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

  • 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 ReadMearquivo 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‭‬ 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

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 políticas e funções do IAM em uma conta da AWS.

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

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

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

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

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

Ferramentas

  • A AWS Command Line Interface (AWS CLI) é 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) 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 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) é 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.

Épicos

TarefaDescriçãoHabilidades necessárias

Clone o repositório de amostras.

Clone o repositório do pipeline de funções GitHub do IAM em sua máquina local.

Desenvolvedor de aplicativos, AWS geral

Clone o repositório

TarefaDescriçãoHabilidades necessárias

Clone o repositório de amostras.

Clone o repositório do pipeline de funções GitHub do IAM em sua máquina local.

Desenvolvedor de aplicativos, AWS geral
TarefaDescriçãoHabilidades necessárias

Implante o pipeline.

  1. Navegue até o diretório que contém o repositório clonado.

  2. Importante

    Execute o make deploy bucket=<bucket_name> comando.: você deve <bucket_name> substituir pelo nome do bucket do S3 existente.

  3. Execute o comando aws codepipeline get-pipeline –name RolesPipeline para verificar se sua implantação foi bem-sucedida.

Desenvolvedor de aplicativos, AWS geral

Clone o repositório do pipeline.

  1. A CloudFormation pilha RolesPipeline da AWS cria o roles-pipeline-repo CodeCommit repositório.

  2. Faça login no Console de Gerenciamento da AWS, abra o CodeCommit console da AWS e copie a URL do CodeCommit repositório para cloná-la em sua máquina local. Para obter mais informações sobre isso, consulte Conecte-se a um CodeCommit repositório da AWS na CodeCommit documentação da AWS.

Desenvolvedor de aplicativos, AWS geral

Implante o RolesPipeline pipeline

TarefaDescriçãoHabilidades necessárias

Implante o pipeline.

  1. Navegue até o diretório que contém o repositório clonado.

  2. Importante

    Execute o make deploy bucket=<bucket_name> comando.: você deve <bucket_name> substituir pelo nome do bucket do S3 existente.

  3. Execute o comando aws codepipeline get-pipeline –name RolesPipeline para verificar se sua implantação foi bem-sucedida.

Desenvolvedor de aplicativos, AWS geral

Clone o repositório do pipeline.

  1. A CloudFormation pilha RolesPipeline da AWS cria o roles-pipeline-repo CodeCommit repositório.

  2. Faça login no Console de Gerenciamento da AWS, abra o CodeCommit console da AWS e copie a URL do CodeCommit repositório para cloná-la em sua máquina local. Para obter mais informações sobre isso, consulte Conecte-se a um CodeCommit repositório da AWS na CodeCommit documentação da AWS.

Desenvolvedor de aplicativos, AWS geral
TarefaDescriçãoHabilidades necessárias

Teste o RolesPipeline pipeline com políticas e funções válidas do IAM.

  1. Crie arquivos JSON para suas políticas e perfis do IAM. Você pode usar as amostras no role-example diretório do GitHub IAM roles pipeline repositório.

  2. Importante

    Defina suas políticas e perfis do IAM com as configurações necessárias. : certifique-se de seguir o formato descrito no ReadMe arquivo do GitHub IAM roles pipeline repositório.

  3. Envie as modificações para o roles-pipeline-repo CodeCommit repositório.

  4. Verifique a implementação do pipeline RolesPipeline.

  5. Certifique-se de que as políticas e perfis do IAM estejam implantadas corretamente na conta.

  6. Valide se há um limite de permissões associado às políticas ou funções do IAM. Para obter mais informações sobre isso, consulte Limites de permissões para identidades do IAM na documentação do IAM.

Desenvolvedor de aplicativos, AWS geral

Teste o RolesPipeline pipeline com políticas e funções inválidas do IAM.

  1. Modifique o roles-pipeline-repo CodeCommit repositório e inclua funções ou políticas inválidas do IAM. Por exemplo, você pode usar uma ação que não existe ou uma versão inválida da política do IAM.

  2. Verifique a implementação do pipeline. O IAM Access Analyzer interrompe o pipeline durante o estágio de validação se detectar políticas ou perfis inválidos do IAM.

Desenvolvedor de aplicativos, AWS geral

Teste o RolesPipeline pipeline

TarefaDescriçãoHabilidades necessárias

Teste o RolesPipeline pipeline com políticas e funções válidas do IAM.

  1. Crie arquivos JSON para suas políticas e perfis do IAM. Você pode usar as amostras no role-example diretório do GitHub IAM roles pipeline repositório.

  2. Importante

    Defina suas políticas e perfis do IAM com as configurações necessárias. : certifique-se de seguir o formato descrito no ReadMe arquivo do GitHub IAM roles pipeline repositório.

  3. Envie as modificações para o roles-pipeline-repo CodeCommit repositório.

  4. Verifique a implementação do pipeline RolesPipeline.

  5. Certifique-se de que as políticas e perfis do IAM estejam implantadas corretamente na conta.

  6. Valide se há um limite de permissões associado às políticas ou funções do IAM. Para obter mais informações sobre isso, consulte Limites de permissões para identidades do IAM na documentação do IAM.

Desenvolvedor de aplicativos, AWS geral

Teste o RolesPipeline pipeline com políticas e funções inválidas do IAM.

  1. Modifique o roles-pipeline-repo CodeCommit repositório e inclua funções ou políticas inválidas do IAM. Por exemplo, você pode usar uma ação que não existe ou uma versão inválida da política do IAM.

  2. Verifique a implementação do pipeline. O IAM Access Analyzer interrompe o pipeline durante o estágio de validação se detectar políticas ou perfis inválidos do IAM.

Desenvolvedor de aplicativos, AWS geral
TarefaDescriçãoHabilidades 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.

  1. O RolesPipeline pipeline cria uma CloudFormation pilha RolesStack da AWS que implanta as políticas e funções do IAM. Você deve excluir essa pilha antes de excluir o pipeline RolesPipeline.

  2. Faça login no Console de Gerenciamento da AWS, abra o CloudFormation console da AWS, escolha a RolesStack pilha e escolha Excluir.

Desenvolvedor de aplicativos, AWS geral

Exclua a RolesPipeline pilha.

Para excluir a CloudFormation pilha RolesPipeline da AWS, siga as instruções do ReadMearquivo no repositório do Github. IAM roles pipeline

Desenvolvedor de aplicativos, AWS geral

Limpe os seus recursos

TarefaDescriçãoHabilidades 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.

  1. O RolesPipeline pipeline cria uma CloudFormation pilha RolesStack da AWS que implanta as políticas e funções do IAM. Você deve excluir essa pilha antes de excluir o pipeline RolesPipeline.

  2. Faça login no Console de Gerenciamento da AWS, abra o CloudFormation console da AWS, escolha a RolesStack pilha e escolha Excluir.

Desenvolvedor de aplicativos, AWS geral

Exclua a RolesPipeline pilha.

Para excluir a CloudFormation pilha RolesPipeline da AWS, siga as instruções do ReadMearquivo no repositório do Github. IAM roles pipeline

Desenvolvedor de aplicativos, AWS geral

Recursos relacionados

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.