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 permissões do AWS IAM Identity Center como código usando a AWS CodePipeline
Criado por Andre Cavalcante (AWS) e Claison Amorim (AWS)
Repositório de código: aws-iam-identity-center -pipeline | Ambiente: produção | Tecnologias: Segurança, identidade, conformidade; DevOps |
Serviços da AWS: AWS CodeBuild; AWS CodeCommit; AWS CodePipeline; AWS IAM Identity Center |
Resumo
O Centro de Identidade do AWS IAM (sucessor do autenticação única (SSO) da AWS) ajuda você a gerenciar centralmente o acesso à autenticação única (SSO) a todas as suas contas e aplicativos na nuvem 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 Centro de Identidade do IAM fornece uma experiência de administração unificada para definir, personalizar e atribuir acesso refinado ao seu ambiente da AWS usando conjuntos de permissões. Os conjuntos de permissões se aplicam aos grupos e usuários federados do seu repositório de identidades do Centro de Identidade do AWS 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
Criar, atualizar ou excluir atribuições de conjuntos de permissões para contas AWS do destino, para unidades organizacionais (UOs) ou para a raiz de 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 AWS, AWS e CodeCommit AWS. CodeBuild CodePipeline Você gerencia os conjuntos de permissões e as atribuições nos modelos JSON que você armazena no CodeCommit repositório. Quando EventBridge as regras da Amazon detectam uma alteração no repositório ou detectam modificações nas contas na OU de destino, elas iniciam uma função do AWS Lambda. A função do Lambda inicia o pipeline de CI/CD que atualiza os conjuntos de permissões e as atribuições no contínuas Centro de Identidade do IAM.
Pré-requisitos e limitações
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.
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.
Você também pode optar por registrar uma conta de membro como administrador delegado do Centro de Identidade do IAM. Para obter instruções, consulte Registrar uma conta membro na documentação do Centro de identidade do IAM.
Permissões para implantar CloudFormation pilhas da AWS 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 na CloudFormation documentação.
Um bucket do Amazon Simple Storage Service (Amazon S3) no administrador delegado do Centro de Identidade para fazer upload do código do artefato. Para obter instruções, consulte Criar um bucket.
O ID da conta de gerenciamento da organização. Para obter instruções, consulte Como encontrar o ID da conta AWS.
Limitações
Esse 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, os IDs de associação e os tipos e IDs da entidade principal do Centro de Identidade do IAM não podem ser modificados após a implantação.
Esse padrão ajuda você a criar e gerenciar permissões personalizadas. Você não pode usar esse padrão para gerenciar ou atribuir permissões predefinidas.
Esse padrão não pode ser usado para gerenciar um conjunto de permissões para a conta de gerenciamento da organização.
Arquitetura
Pilha de tecnologia
AWS CodeBuild
AWS CodeCommit
AWS CodePipeline
Amazon EventBridge
Centro de Identidade do IAM
AWS Lambda
AWS Organizations
Arquitetura de destino
![Usando o pipeline de CI/CD e o CodeCommit repositório da AWS para gerenciar conjuntos de permissões no AWS IAM Identity Center.](images/pattern-img/419aaa80-1b97-402d-9c74-c1b8c1ddd1cb/images/3d671cf3-329b-4292-aa2d-1027886074f4.png)
O diagrama mostra o seguinte fluxo de trabalho:
Um usuário faz uma ou todas as alterações a seguir:
Confirma uma ou mais alterações no repositório CodeCommit
Modifica as contas na unidade organizacional (UO) no AWS Organizations
Se o usuário tiver confirmado uma alteração no CodeCommit repositório, a
CodeChange
EventBridge regra detectará a alteração e iniciará uma função Lambda na conta de administrador delegado do IAM Identity Center. A regra não reage às alterações em determinados arquivos no repositório, como o arquivoREADME.md
.Se o usuário modificou as contas na unidade organizacional, a
MoveAccount
EventBridge regra detectará a alteração e iniciará uma função Lambda na conta de gerenciamento da organização.A função Lambda iniciada inicia o pipeline de CI/CD em. CodePipeline
CodePipeline inicia o
CodebuildTemplateValidation
CodeBuild projeto.O
CodebuildTemplateValidation
CodeBuild projeto usa um script Python no CodeCommit repositório para validar os modelos do conjunto de permissões. CodeBuild valida o seguinte:Os nomes do conjunto de permissões que são exclusivos.
Os IDs da declaração de atribuição (
Sid
) que são exclusivos.As definições de política no parâmetro
CustomPolicy
e válidas. (Esta validação usa o AWS Identity and Access Management Access Analyzer).O nome do recurso da Amazon (ARN) das políticas gerenciadas que é válido.
O
CodebuildPermissionSet
CodeBuild projeto usa o AWS SDK for Python (Boto3) para excluir, criar ou atualizar os conjuntos de permissões no IAM Identity Center. Somente os conjuntos de permissões com a tagSSOPipeline:true
são afetados. Todos os conjuntos de permissões gerenciados por meio desse pipeline têm essa tag.O
CodebuildAssignments
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 S3 na mesma conta.CodeBuild assume uma função
lookup
do IAM na conta de gerenciamento da organização. Ele chama as APIs de organizações e identitystorepara listar os recursos necessários para conceder ou revogar permissões. 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 transferidas para uma unidade organizacional específica no 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
Serviços da AWS
CloudFormationA AWS ajuda você a configurar recursos da AWS, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em todas as contas e regiões da AWS.
CodeBuildA AWS é um serviço de criação totalmente gerenciado que ajuda você a compilar o código-fonte, executar testes unitários e produzir artefatos prontos para implantação.
CodeCommitA AWS é um serviço de controle de versão que ajuda você a armazenar e gerenciar repositórios Git de forma privada, sem precisar gerenciar seu próprio sistema de controle de origem.
CodePipelineA AWS ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software e automatizar as etapas necessárias para liberar alterações de software continuamente.
EventBridgeA Amazon é 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, funções do Lambda, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outras contas da AWS.
O Centro de Identidade do AWS IAM ajuda você a gerenciar centralmente o acesso à autenticação única (SSO) a todas as suas contas e aplicativos na nuvem da AWS.
O AWS Organizations é um serviço de gerenciamento de contas que ajuda a consolidar várias contas da AWS em uma organização que você cria e gerencia de maneira centralizada.
O AWS SDK para Python (Boto3)
é um kit de desenvolvimento de software que ajuda você a integrar seu aplicativo, biblioteca ou script do Python aos serviços da AWS. O Amazon Simple Storage Service (Amazon S3) é 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
Práticas recomendadas
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 UOs o conjunto de permissões deve ser aplicado e quais entidades principais do Centro de Identidade do IAM (usuários ou grupos) devem ser afetados pelo conjunto de permissões. Os nomes dos conjuntos de permissões, os IDs de associação e os tipos e IDs da entidade principal do Centro de Identidade do IAM 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 Concessão de privilégio mínimo e Práticas recomendadas de segurança na documentação do IAM.
Épicos
Tarefa | Descrição | 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
| DevOps engenheiro |
Defina os conjuntos de permissões. |
| DevOps engenheiro |
Defina as atribuições. |
| DevOps engenheiro |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Faça upload dos arquivos para um bucket do S3. |
| DevOps engenheiro |
Faça login na conta de administrador delegado do Centro de Identidade do IAM. |
| DevOps engenheiro |
Implante recursos na conta de gerenciamento da AWS Organization. |
| DevOps engenheiro |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Atualize os conjuntos de permissões e as atribuições. | Quando a EventBridge regra da Se você quiser modificar os conjuntos de permissões e as atribuições implantados, atualize os arquivos JSON e, em seguida, confirme-os no CodeCommit repositório na conta de administrador delegado do IAM Identity Center. Para obter instruções, consulte Criar um commit na CodeCommit documentação. Observe o seguinte ao usar o pipeline de CI/CD para gerenciar conjuntos de permissões e associações implantados anteriormente:
| DevOps engenheiro |
Solução de problemas
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 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.
|
Recursos relacionados
Permission sets (documentação do Centro de Identidade do IAM)