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á.
Centralização do gerenciamento das chaves de acesso do IAM no AWS Organizations usando o Terraform
Aarti Rajput, Chintamani Aphale, T.V.R.L.Phani Kumar Dadi, Pratap Kumar Nanda, Pradip Kumar Pandey e Mayuri Shinde, Amazon Web Services
Resumo
Aplicar as regras de segurança para chaves e senhas é uma tarefa essencial para qualquer organização. Uma regra fundamental é rotacionar as chaves do AWS Identity and Access Management (IAM) periodicamente para garantir a segurança. As chaves de acesso da AWS geralmente são criadas e configuradas localmente sempre que equipes precisam acessar a AWS por meio da AWS Command Line Interface (AWS CLI) ou de aplicações externas à AWS. Para manter uma segurança robusta em toda a organização, as chaves de segurança antigas devem ser alteradas ou excluídas após o cumprimento da exigência ou periodicamente. O processo de gerenciar a rotação de chaves em várias contas de uma organização é demorado e trabalhoso. Esse padrão auxilia na automação do processo de rotação por meio do Account Factory for Terraform (AFT) e dos serviços da AWS.
O padrão fornece os seguintes benefícios:
Gerencia sua chave de acesso IDs e chaves de acesso secretas em todas as contas da sua organização a partir de um local central.
Rotação automática das variáveis de ambiente
AWS_ACCESS_KEY_IDeAWS_SECRET_ACCESS_KEY.Imposição da renovação se as credenciais do usuário forem comprometidas.
O padrão usa o Terraform para implantar funções do AWS Lambda, regras da EventBridge Amazon e funções do IAM. Uma EventBridge regra é executada em intervalos regulares e chama uma função Lambda que lista todas as chaves de acesso do usuário com base em quando elas foram criadas. As funções do Lambda adicionais criam um novo ID de chave de acesso e uma chave de acesso secreta, caso a chave anterior seja mais antiga do que o período de rotação definido (por exemplo, 45 dias), e notificam um administrador de segurança usando o Amazon Simple Notification Service (Amazon SNS) e o Amazon Simple Email Service (Amazon SES). Os segredos são criados no AWS Secrets Manager para o usuário, a chave de acesso secreta anterior é armazenada no Secrets Manager e as permissões para acessar a antiga chave são configuradas. Para garantir que a chave de acesso antiga não seja mais usada, ela é desativada após um período de inatividade (por exemplo, 60 dias, o que ocorreria 15 dias após a rotação das chaves no nosso exemplo). Após um período de buffer de inatividade (por exemplo, 90 dias, ou 45 dias após as chaves serem rotacionadas no nosso exemplo), as chaves de acesso antigas são excluídas do AWS Secrets Manager. Para obter uma arquitetura e um fluxo de trabalho detalhados, consulte a seção Arquitetura.
Pré-requisitos e limitações
Uma zona de pouso para sua organização criada com o AWS Control Tower (versão 3.1 ou versões posteriores)
O Account Factory for Terraform (AFT)
configurado para três contas: A conta gerencial da organização
administra toda a organização a partir de um único local. A conta gerencial do AFT
hospeda o pipeline do Terraform e implanta a infraestrutura na conta de implantação. A conta de implantação
é responsável por implantar a solução completa e gerenciar as chaves do IAM de um local centralizado.
O Terraform, na versão 0.15.0 ou em versões posteriores, para provisionar a infraestrutura na conta de implantação.
Um endereço de e-mail configurado no Amazon Simple Email Service (Amazon SES)
. (Recomendado) Para aumentar a segurança, implante essa solução em uma sub-rede privada (conta de implantação) em uma nuvem privada virtual (VPC)
. Você pode informar os detalhes da VPC e da sub-rede ao personalizar as variáveis (consulte Personalização de parâmetros para o pipeline de código na seção Épicos).
Arquitetura
Repositórios do AFT
Este padrão usa o Account Factory for Terraform (AFT) para criar todos os recursos da AWS necessários e o pipeline de código para implantar esses recursos em uma conta de implantação. O pipeline de código é executado em dois repositórios:
A personalização global contém código do Terraform que será executado em todas as contas registradas no AFT.
As personalizações da conta contêm código do Terraform que será executado na conta de implantação.
Detalhes do recurso
Os CodePipeline trabalhos da AWS criam os seguintes recursos na conta de implantação:
EventBridge Regra da AWS e regra configurada
Função do Lambda em
account-inventoryFunção do Lambda em
IAM-access-key-rotationFunção do Lambda em
NotificationBucket do Amazon Simple Storage Service (Amazon S3) que contém um modelo de e-mail
Política do IAM necessária
Arquitetura

O diagrama ilustra o seguinte:
Uma EventBridge regra chama a função
account-inventoryLambda a cada 24 horas.A função
account-inventoryLambda consulta o AWS Organizations para obter uma lista de todas as contas IDs, nomes de contas e e-mails de contas da AWS.A função do Lambda
account-inventoryinicia a função do LambdaIAM-access-key-auto-rotationpara cada conta da AWS e transfere os metadados para processamento adicional.A função do Lambda
IAM-access-key-auto-rotationusa um perfil do IAM assumido para acessar a conta da AWS. O script do Lambda executa uma auditoria em todos os usuários e suas chaves de acesso do IAM na conta.O limite de rotação da chave do IAM (período de rotação) é configurado como uma variável de ambiente quando a função do Lambda
IAM-access-key-auto-rotationé implantada. Se o período de rotação for modificado, a função do LambdaIAM-access-key-auto-rotationé implantada novamente com a variável de ambiente atualizada. Você pode configurar parâmetros para definir o período de rotação, o período de inatividade das chaves antigas e o buffer de inatividade após o qual as chaves antigas serão excluídas (consulte Personalização de parâmetros para o pipeline de código na seção Épicos).A função do Lambda
IAM-access-key-auto-rotationvalida a data de criação da chave de acesso com base em sua configuração. Se a data de criação da chave de acesso do IAM não ultrapassou o período de rotação definido, a função do Lambda não executa nenhuma ação adicional.Se a data de criação da chave de acesso do IAM exceder o período de rotação definido, a função do Lambda
IAM-access-key-auto-rotationcria uma nova chave e rotaciona a chave existente.A função do Lambda armazena a chave antiga no Secrets Manager e limita as permissões ao usuário cujas chaves de acesso não estão em conformidade com os padrões de segurança. A função do Lambda também cria uma política baseada em recursos que permite que somente a entidade principal especificada do IAM acesse e recupere o segredo.
A função do Lambda
IAM-access-key-rotationchama a função do LambdaNotification.A função do Lambda
Notificationconsulta o bucket do S3 em busca de um modelo de e-mail e gera dinamicamente mensagens de e-mail com os metadados de atividade relevantes.A função do Lambda
Notificationchama o Amazon SES para a execução de ações subsequentes.O Amazon SES envia um e-mail para o endereço de e-mail do proprietário da conta com as informações relevantes.
Ferramentas
Serviços da AWS
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. Este padrão requer perfis IAM e permissões.
O AWS Lambda é um serviço de computação que ajuda você a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
O AWS Secrets Manager ajuda você a substituir credenciais codificadas em seu código, incluindo senhas, por uma chamada de API ao Secrets Manager para recuperar o segredo programaticamente.
Amazon Simple Email Service (Amazon SES): ajuda você a enviar e receber e-mails usando seus próprios endereços de e-mail e domínios.
Outras ferramentas
O Terraform
é uma ferramenta de infraestrutura como código (IaC) HashiCorp que ajuda você a criar e gerenciar recursos na nuvem e no local.
Repositório de código
As instruções e o código desse padrão estão disponíveis no repositório de rotação de chaves de acesso GitHub do IAM
Práticas recomendadas
Para o IAM, consulte as práticas recomendadas de segurança na documentação do IAM.
Para rotação de chaves, consulte as diretrizes para atualizar as chaves de acesso na documentação do IAM.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Clonar o repositório. |
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Configure a conta de inicialização. | Como parte do processo de inicialização do AFT
| DevOps engenheiro |
Configure as personalizações globais. | Como parte da configuração da pasta do AFT
| DevOps engenheiro |
Configure as personalizações da conta. | Como parte da configuração da pasta do AFT
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Personalize os parâmetros do pipeline de código que não são do Terraform para todas as contas. | Crie um arquivo chamado | DevOps engenheiro |
Personalize os parâmetros do pipeline de código para a conta de implantação. | Crie um arquivo chamado Especifique os valores dos parâmetros com base nos requisitos da sua organização, incluindo os seguintes itens (consulte o arquivo no repositório do GitHub
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Valide a solução. |
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Personalize a data da notificação por e-mail. | Se você deseja enviar notificações por e-mail em um dia específico antes de desabilitar a chave de acesso, pode atualizar a função do Lambda
| DevOps engenheiro |
Solução de problemas
| Problema | Solução |
|---|---|
A execução da função do Lambda | Se você encontrar esse problema, é necessário validar as permissões:
|
Recursos relacionados
Terraform Recommended Practices
(documentação do Terraform) Práticas recomendadas de segurança no IAM (documentação do IAM)
Práticas recomendadas para a rotação de chaves (documentação do IAM)