

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

# Gerencie conjuntos de Centro de Identidade do AWS IAM permissões como código usando AWS CodePipeline
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline"></a>

*André Cavalcante e Claison Amorim, Amazon Web Services*

## Resumo
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-summary"></a>

Centro de Identidade do AWS IAM ajuda você a gerenciar centralmente o acesso de login único (SSO) a todos os seus aplicativos. Contas da AWS Você pode criar e gerenciar identidades de usuários no Centro de Identidade do IAM ou conectar uma fonte de identidades existente, como um domínio do Microsoft Active Directory ou um provedor de identidades (IdP) externo. [O IAM Identity Center fornece uma experiência de administração unificada para definir, personalizar e atribuir acesso refinado ao seu AWS ambiente usando conjuntos de permissões.](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) Os conjuntos de permissões se aplicam aos grupos e usuários federados do seu repositório de identidades do Centro de Identidade do IAM ou do seu IdP externo.

Este padrão ajuda você a gerenciar os conjuntos de permissões do Centro de Identidade do IAM como código em seu ambiente de várias contas que é gerenciado como uma organização no AWS Organizations. Com esse padrão, você pode conseguir o seguinte:
+ Criar, excluir e atualizar conjuntos de permissões
+ Crie, atualize ou exclua atribuições do conjunto de permissões para o alvo Contas da AWS, para as unidades organizacionais (OUs) ou para a raiz da sua organização.

Para gerenciar as permissões e atribuições do IAM Identity Center como código, essa solução implanta um pipeline de integração contínua e entrega contínua (CI/CD) que usa e. AWS CodeBuild AWS CodePipeline Você gerencia os conjuntos de permissões e as atribuições nos modelos JSON que você armazena em um repositório remoto. Quando EventBridge as regras da Amazon detectam uma alteração no repositório ou detectam modificações nas contas na UO de destino, elas iniciam uma AWS Lambda função. A função Lambda inicia o CI/CD pipeline que atualiza os conjuntos de permissões e as atribuições no IAM Identity Center.

## Pré-requisitos e limitações
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-prereqs"></a>

**Pré-requisitos **
+ Um ambiente de várias contas gerenciado como uma organização no AWS Organizations. Para obter mais informações, consulte [Criar uma organização](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_create.html).
+ Centro de identidade do IAM, habilitado e configurado com uma fonte de identidade. Para obter mais informações sobre o Centro de Identidade do IAM, consulte [Fundamentos](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html).
+ Uma conta de membro registrada como administrador delegado para o seguinte: Serviços da AWS
  + Centro de Identidade do IAM: para obter instruções, consulte [Register a member account](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html#delegated-admin-how-to-register) na documentação do Centro de Identidade do IAM.
  + AWS Organizations — Para obter instruções, consulte [Administrador delegado para AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_delegate_policies.html). Essa conta deve ter permissões para listar e descrever contas OUs e.
**nota**  
Você deve usar a mesma conta do administrador delegado para os dois serviços.
+ Permissões para implantar AWS CloudFormation pilhas na conta de administrador delegado do IAM Identity Center e na conta de gerenciamento da organização. Para obter mais informações, consulte [Controle de acesso](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) na CloudFormation documentação.
+ Um bucket do Amazon Simple Storage Service (Amazon S3) na conta do administrador delegado do Centro de Identidade do IAM. Você carrega o código do artefato nesse bucket. Para obter instruções, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) na documentação do Amazon S3.
+ O ID da conta de gerenciamento da organização. Para obter instruções, consulte [Como encontrar seu Conta da AWS ID](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html#FindAccountId).
+ Um repositório em seu host de código-fonte, como GitHub.

**Limitações**
+ Este padrão não pode ser usado para gerenciar ou atribuir conjuntos de permissões para ambientes de conta única ou para contas que não são gerenciadas como uma organização no AWS Organizations.
+ Os nomes dos conjuntos de permissões, as atribuições IDs e os tipos principais do IAM Identity Center IDs não podem ser modificados após a implantação.
+ Esse padrão ajuda você a criar e gerenciar [permissões personalizadas](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetcustom.html). Você não pode usar esse padrão para gerenciar ou atribuir [permissões predefinidas](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetpredefined.html).
+ Esse padrão não pode ser usado para gerenciar um conjunto de permissões para a conta de gerenciamento da organização.

## Arquitetura
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-architecture"></a>

**Arquitetura de destino**

![\[Usando um CI/CD pipeline para gerenciar conjuntos de permissões no IAM Identity Center.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/419aaa80-1b97-402d-9c74-c1b8c1ddd1cb/images/1f143bc4-c2c6-4ab6-8615-742fec617f18.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. Um usuário faz uma ou todas as alterações a seguir:
   + Confirma uma ou mais alterações no repositório remoto, como GitHub
   + Modifica as contas na OU em AWS Organizations

1. Se o usuário tiver confirmado uma alteração no repositório remoto na ramificação principal, o pipeline será iniciado. 

   Se o usuário modificou as contas na OU, a `MoveAccount` EventBridge regra detectará a alteração e iniciará uma função Lambda na conta de gerenciamento da organização.

1. A função Lambda iniciada inicia o CI/CD pipeline. CodePipeline

1. CodePipeline inicia o `TemplateValidation` CodeBuild projeto. O `TemplateValidation` CodeBuild projeto usa um script Python no repositório remoto para validar os modelos do conjunto de permissões. CodeBuild valida o seguinte:
   + Os nomes do conjunto de permissões que são exclusivos.
   + A declaração de atribuição IDs (`Sid`) é exclusiva.
   + As definições de política no parâmetro `CustomPolicy` e válidas. (Essa validação usa AWS Identity and Access Management Access Analyzer.)
   + Os nomes de recursos da Amazon (ARNs) das políticas gerenciadas são válidos.

1. O grupo de `PermissionSet` ação no `Deploy` CodeBuild projeto usa AWS SDK para Python (Boto3) para excluir, criar ou atualizar os conjuntos de permissões no IAM Identity Center. Somente os conjuntos de permissões com a tag `SSOPipeline:true` são afetados. Todos os conjuntos de permissões gerenciados por meio desse pipeline têm essa tag.

1. O grupo de `Assignments` ação no `Deploy` CodeBuild projeto usa o Terraform para excluir, criar ou atualizar as atribuições no IAM Identity Center. Os arquivos de estado do backend do Terraform são armazenados em um bucket do Amazon S3 na mesma conta.

1. CodeBuild atualiza os conjuntos de permissões e as atribuições no IAM Identity Center.

**Automação e escala**

Como todas as novas contas em um ambiente de várias contas são movidas para uma unidade organizacional específica em AWS Organizations, essa solução é executada automaticamente e concede os conjuntos de permissões necessários a todas as contas que você especifica nos modelos de atribuição. Nenhuma automação ou ação de escalonamento adicional é necessária.

Em ambientes grandes, o número de solicitações de API para o Centro de Identidade do IAM pode fazer com que essa solução seja executada mais lentamente. O Terraform e o Boto3 gerenciam automaticamente o controle de utilização para minimizar qualquer degradação do desempenho.

## Ferramentas
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-tools"></a>

**Serviços da AWS**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS
+ O [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação. 
+ O [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software, além de automatizar as etapas necessárias para a implantação contínua de alterações.
+  EventBridgeA [Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) é um serviço de ônibus de eventos sem servidor que ajuda você a conectar seus aplicativos com dados em tempo real de várias fontes. Por exemplo, AWS Lambda funções, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outros. Contas da AWS
+ [Centro de Identidade do AWS IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)ajuda você a gerenciar centralmente o acesso de login único (SSO) a todos os seus Contas da AWS aplicativos e à nuvem.
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)é um serviço de gerenciamento de contas que ajuda você a consolidar várias Contas da AWS em uma organização que você cria e gerencia centralmente.
+ [AWS SDK para Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)é um kit de desenvolvimento de software que ajuda você a integrar seu aplicativo, biblioteca ou script Python com o. Serviços da AWS
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

**Repositório de código**

O código desse padrão está disponível no repositório [aws-iam-identity-center-pipeline](https://github.com/aws-samples/aws-iam-identity-center-pipeline). A pasta de modelos no repositório inclui modelos de exemplo para conjuntos de permissões e atribuições. Também inclui AWS CloudFormation modelos para implantar o CI/CD pipeline e os AWS recursos nas contas de destino.

## Práticas recomendadas
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-best-practices"></a>
+ Antes de começar a modificar o conjunto de permissões e os modelos de exercícios, recomendamos que você planeje os conjuntos de permissões para sua organização. Considere quais devem ser as permissões, a quais contas ou OUs o conjunto de permissões devem ser aplicados e quais diretores do IAM Identity Center (usuários ou grupos) devem ser afetados pelo conjunto de permissões. Os nomes dos conjuntos de permissões, a associação IDs e os tipos principais do IAM Identity Center IDs não podem ser modificados após a implantação.
+ Siga o princípio do privilégio mínimo e conceda as permissões mínimas necessárias para executar uma tarefa. Para obter mais informações, consulte [Conceder privilégios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) e [melhores práticas de segurança](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAMBestPracticesAndUseCases.html) na documentação AWS Identity and Access Management (IAM).

## Épicos
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-epics"></a>

### Planejar conjuntos de permissões e atribuições
<a name="plan-permission-sets-and-assignments"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clonar o repositório. | Em um shell bash, insira o comando a seguir. Isso clona o repositório [aws-iam-identity-center-pipeline](https://github.com/aws-samples/aws-iam-identity-center-pipeline) de. GitHub<pre>git clone https://github.com/aws-samples/aws-iam-identity-center-pipeline.git</pre> | DevOps engenheiro | 
| Defina os conjuntos de permissões. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps engenheiro | 
| Defina as atribuições. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps engenheiro | 

### Implante conjuntos de permissões e atribuições
<a name="deploy-the-permission-sets-and-assignments"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Faça login na conta de administrador delegado do Centro de Identidade do IAM. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps engenheiro | 
| Implante recursos na conta AWS Organizations de gerenciamento. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps engenheiro | 
| Conclua a configuração do repositório remoto. | Altere o status da Conexões de código da AWS conexão de `PENDING` para`AVAILABLE`. Essa conexão foi criada quando você implantou a CloudFormation pilha. Para obter instruções, consulte [Atualizar uma conexão pendente](https://docs.aws.amazon.com/dtconsole/latest/userguide/connections-update.html) na CodeConnections documentação.  | DevOps engenheiro | 
| Carregue arquivos no repositório remoto. | Faça upload de todos os arquivos que você baixou do repositório `aws-samples` e editou nas etapas anteriores no repositório remoto. As alterações na ramificação `main` iniciam o pipeline, que cria ou atualiza os conjuntos de permissões e as atribuições. | DevOps engenheiro | 

### Como atualizar os conjuntos de permissões e as atribuições
<a name="updating-the-permission-sets-and-assignments"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Atualize os conjuntos de permissões e as atribuições. | Quando a EventBridge regra da `MoveAccount` Amazon detecta modificações nas contas da organização, o CI/CD pipeline inicia e atualiza automaticamente os conjuntos de permissões. Por exemplo, se você adicionar uma conta a uma OU especificada no arquivo JSON de atribuições, o CI/CD pipeline aplicará o conjunto de permissões à nova conta.Se você quiser modificar os conjuntos de permissões e as atribuições implantados, atualize os arquivos JSON e, em seguida, confirme-os no repositório remoto. Observe o seguinte ao usar o CI/CD pipeline para gerenciar conjuntos de permissões e associações implantados anteriormente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | DevOps engenheiro | 

## Solução de problemas
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Erros de acesso negado | Confirme se você tem as permissões necessárias para implantar os CloudFormation modelos e os recursos definidos neles. Para obter mais informações, consulte [Controle de acesso](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) na CloudFormation documentação. | 
| Erros de pipeline na fase de validação | Esse erro aparecerá se houver algum erro no conjunto de permissões ou nos modelos de atribuição.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline.html) | 

## Recursos relacionados
<a name="manage-aws-iam-identity-center-permission-sets-as-code-by-using-aws-codepipeline-resources"></a>
+ [Permission sets](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) (documentação do Centro de Identidade do IAM)