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á.
Remova EC2 as entradas Contas da AWS da Amazon em frente AWS Managed Microsoft AD usando a AWS Lambda automação
Dr. Rahul Sharad Gaikwad e Tamilselvan P, Amazon Web Services
Resumo
O Active Directory (AD) é uma ferramenta de script da Microsoft que gerencia as informações do domínio e as interações do usuário com os serviços de rede. É amplamente usado entre provedores de serviços gerenciados (MSPs) para gerenciar credenciais de funcionários e permissões de acesso. Como invasores do AD podem explorar contas inativas para tentar invadir uma organização, é essencial identificar essas contas e desativá-las usando um cronograma de manutenção regular. Com AWS Directory Service for Microsoft Active Directory, você pode executar o Microsoft Active Directory como um serviço gerenciado. Esse padrão pode ajudar você a configurar a AWS Lambda automação para encontrar e remover rapidamente contas inativas.
Se os cenários a seguir se aplicarem à sua organização, esse padrão poderá ajudar:
Gerenciamento centralizado do AD — Se sua organização tiver várias Contas da AWS, cada uma com sua própria implantação do AD, pode ser difícil gerenciar contas de usuário e permissões de acesso de forma consistente em todas as contas. Com uma solução de limpeza do AD entre contas, você pode desativar ou remover contas inativas de todas as instâncias do AD de forma centralizada.
Reestruturação ou migração do AD: se sua organização planeja reestruturar ou migrar sua implantação do AD, uma solução de limpeza do AD entre contas pode ajudá-lo a preparar o ambiente. A solução pode ajudar você a remover contas desnecessárias ou inativas, simplificar o processo de migração e reduzir possíveis conflitos ou problemas.
Quando você usa esse padrão, pode alcançar os seguintes benefícios:
Melhore a performance do banco de dados e dos servidores, além de corrigir vulnerabilidades de segurança causadas por contas inativas.
Se o seu servidor do AD estiver hospedado na nuvem, a remoção de contas inativas também pode reduzir custos de armazenamento enquanto otimiza a performance. Os custos mensais podem diminuir devido à redução tanto de taxas de largura de banda quanto de recursos de processamento.
Prevenção de atacantes em potencial com um Active Directory limpo.
Pré-requisitos e limitações
Pré-requisitos
Uma conta ativa para pais Conta da AWS e uma ou várias contas para crianças. Neste padrão, uma conta principal é onde o Active Directory é criado. As contas secundárias hospedam servidores Windows e são ingressadas por meio da conta principal do Active Directory.
Git instalado
e configurado em uma estação de trabalho local. Terraform instalado
e configurado em uma estação de trabalho local. AWS Managed Microsoft AD diretório configurado na conta principal e compartilhado com todas as contas secundárias. Para obter mais detalhes, consulte Tutorial: Compartilhando seu AWS Managed Microsoft AD diretório para uma EC2 associação perfeita ao domínio no Guia de Administração.AWS Directory Service
Uma conexão de emparelhamento de nuvem privada virtual (VPC) ou AWS Transit Gateway conexão disponível entre a VPC da AWS Directory Service (conta principal) e a VPC das instâncias do Amazon Elastic Compute Cloud (Amazon EC2) (contas secundárias). Para obter mais detalhes, consulte Configure a VPC peering connection between the directory owner and the directory consumer account no Guia de Administração do AWS Directory Service .
Uma máquina Windows configurada com o script
EC2WindowsUserdataem todas as contas principal e secundárias. O arquivo de script está disponível na raiz do repositório de códigodeste padrão. Uma função entre contas AWS Identity and Access Management (IAM) disponível em cada conta secundária configurada com uma política de confiança para permitir o uso de uma AWS Lambda função da conta principal. Para obter mais informações, consulte Enviar e receber eventos entre a Amazon Contas da AWS EventBridge no Guia do EventBridge usuário da Amazon.
Os seguintes valores secretos estão disponíveis no AWS Systems Manager Parameter Store da conta principal:
domainJoinUser: o nome de usuário do serviço de diretóriodomainJoinPassword: a senha do serviço de diretório
Para obter mais informações sobre segredos, consulte Criar um AWS Secrets Manager segredo no Guia do AWS Secrets Manager usuário.
Limitações
A criação de um recurso em uma conta secundária não é automatizada com o Terraform. Você deve criar os seguintes recursos manualmente usando o Console de gerenciamento da AWS:
EventBridge Regra da Amazon para enviar os eventos de EC2 rescisão da Amazon para a conta principal
Criação de função EC2 entre contas da Amazon na conta infantil com política de confiança
Emparelhamento de VPC ou conesão de gateway de trânsito
Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte Serviços da AWS by Region
. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.
Versões do produto
Arquitetura
O diagrama a seguir mostra a arquitetura de alto nível da solução.

O diagrama de arquitetura a seguir ilustra o seguinte processo:
Em contas infantis, a EventBridge regra coleta todos os eventos de EC2 rescisão da Amazon. A regra envia os eventos EventBridge que estão presentes na conta principal.
Da conta principal, EventBridge coleta todos os eventos e contém a regra para acionar a função
ADcleanup-LambdaLambda.A conta principal recebe todos os eventos de encerramento da conta principal ou secundária e aciona a função do Lambda.
A função Lambda faz a chamada para grupos do Amazon Auto EC2 Scaling usando o módulo boto do Python e obtém o ID aleatório da instância. O ID da instância é usado para executar comandos do Systems Manager.
A função Lambda faz outra chamada para a Amazon EC2 usando o módulo boto. A função do Lambda obtém os endereços IP privados dos servidores Windows em execução e armazena os endereços em uma variável temporária. Nas etapas 5.1 e 5.2, as EC2 instâncias do Windows em execução são coletadas de contas secundárias.
A função do Lambda faz outra chamada para o Systems Manager para obter as informações do computador ao está o AWS Directory Service qual conectado.
Um AWS Systems Manager documento ajuda a executar o PowerShell comando nos servidores Amazon EC2 Windows para obter os endereços IP privados dos computadores conectados ao AD. (O documento Systems Manager usa o ID da instância obtido na etapa 4.)
O nome de usuário e as senhas do domínio AD são armazenados no AWS Systems Manager Parameter Store. AWS Lambda e o Systems Manager fazem uma chamada para o Parameter Store e obtêm os valores de nome de usuário e senha a serem usados para se conectar ao AD.
Usando o documento Systems Manager, o PowerShell script é executado no servidor Amazon EC2 Windows usando o ID da instância obtido anteriormente na etapa 4.
A Amazon EC2 se conecta AWS Directory Service usando PowerShell comandos e remove os computadores que não estão em uso ou inativos.
Ferramentas
AWS serviços
AWS Directory Servicefornece várias maneiras de usar o Microsoft Active Directory (AD) com outros Serviços da AWS , como Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS) para SQL Server e FSx Amazon para Windows File Server.
AWS Directory Service for Microsoft Active Directorypermite que suas cargas de trabalho e AWS recursos com reconhecimento de diretório usem o Microsoft Active Directory no. Nuvem AWS
O Amazon Elastic Compute Cloud (Amazon EC2) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
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, AWS Lambda funções, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outros. Contas da AWS
AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los. Com o IAM, você pode especificar em quem ou o que pode acessar serviços e recursos AWS, gerenciar centralmente permissões refinadas e analisar o acesso para refinar as permissões. AWS
O AWS Lambda é um serviço de computação que ajuda 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 Systems Manager ajuda você a gerenciar suas aplicações e infraestrutura em execução na Nuvem AWS. Ele simplifica o gerenciamento de aplicativos e recursos, reduz o tempo para detectar e resolver problemas operacionais e ajuda você a gerenciar seus AWS recursos com segurança em grande escala.
AWS Systems Manager os documentos definem as ações que o Systems Manager executa em suas instâncias gerenciadas. O Systems Manager inclui mais de 100 documentos pré-configurados, que você pode usar especificando parâmetros no runtime.
AWS Systems Manager O Parameter Store é um recurso AWS Systems Manager e fornece armazenamento seguro e hierárquico para gerenciamento de dados de configuração e gerenciamento de segredos.
Outras ferramentas
O HashiCorp Terraform
é uma ferramenta de infraestrutura como código (IaC) que ajuda a provisionar e gerenciar recursos e infraestrutura de nuvem por meio de código. PowerShell
é um programa de gerenciamento de automação e configuração da Microsoft executado em Windows, Linux e macOS. Python
é uma linguagem de programação de computador de uso geral.
Repositório de código
O código desse padrão está disponível no repositório GitHub aws-lambda-ad-cleanup-terraform-samples
Práticas recomendadas
Ingressar em domínios automaticamente. Ao iniciar uma instância do Windows que fará parte de um Directory Service domínio, entre no domínio durante o processo de criação da instância, em vez de adicioná-la manualmente posteriormente. Para ingressar automaticamente em um domínio, selecione o diretório correto na lista suspensa Diretório de ingresso em domínio ao executar uma nova instância. Para obter mais detalhes, consulte Unir perfeitamente uma instância EC2 do Amazon Windows ao seu AWS Managed Microsoft AD Active Directory no Guia de Directory Service Administração.
Exclua contas que não são utilizadas. É comum encontrar contas no AD que nunca foram usadas. Assim como contas desabilitadas ou inativas que permanecem no sistema, contas que não estão sendo usadas e são negligenciadas podem diminuir a performance do seu sistema do AD ou tornar a organização vulnerável a vazamentos de dados.
Automatize as limpezas do Active Directory. Para ajudar a mitigar os riscos de segurança e evitar que contas obsoletas impactem a performance do AD, conduza limpezas do AD em intervalos regulares. É possível concluir a maioria das tarefas de gerenciamento e de limpeza do AD por meio da gravação de scripts. Exemplos de tarefas incluem remover contas desabilitadas e inativas, excluir grupos vazios e inativos, e localizar contas de usuário e senhas expiradas.
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Crie um perfil entre contas na conta secundária. | Para criar um perfil entre contas em uma conta secundária, faça o seguinte:
| DevOps engenheiro |
Crie uma regra de evento na conta secundária. | Para criar uma EventBridge regra para cada conta infantil, faça o seguinte:
Para obter mais detalhes, consulte Criação de regras que reagem a eventos na Amazon EventBridge no Guia EventBridge do usuário da Amazon. | DevOps engenheiro |
Crie uma EC2 instância e participe do AD. | Para criar uma EC2 instância para o Windows, faça o seguinte:
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Crie uma pasta para o projeto e adicione os arquivos. | Para clonar o repositório e criar uma pasta para o projeto, faça o seguinte:
| DevOps engenheiro |
Crie o arquivo | Para compactar o arquivo
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Forneça os valores para as variáveis do Terraform. | Para a conta secundária, forneça valores para as seguintes variáveis
| DevOps engenheiro |
Inicialize a configuração do Terraform. | Para inicializar seu diretório de trabalho que contém os arquivos do Terraform, execute o seguinte comando:
| DevOps engenheiro |
Pré-visualize as alterações. | É possível visualizar previamente as alterações que o Terraform fará na infraestrutura antes que ela seja implantada. Para validar que o Terraform aplicará as alterações conforme necessário, execute o seguinte comando:
| DevOps engenheiro |
Coloque em prática as ações propostas. | Para verificar se os resultados do comando
| DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Execute e teste a função do Lambda. | Para verificar se a implantação ocorreu com êxito, faça o seguinte:
Os resultados da execução mostram a saída da função. | DevOps engenheiro |
Veja os resultados da execução da EventBridge regra na conta principal. | Para ver os resultados da EventBridge regra baseada nos eventos de EC2 rescisão da Amazon na conta principal, faça o seguinte:
No CloudWatch console, a página Grupos de registros mostra os resultados da função Lambda. | DevOps engenheiro |
Veja os resultados da execução da EventBridge regra na conta secundária. | Para ver os resultados da EventBridge regra baseada nos eventos de EC2 rescisão da Amazon da conta da criança, faça o seguinte:
No CloudWatch console, a página Grupos de registros mostra os resultados da função Lambda. | DevOps engenheiro |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Limpe a infraestrutura. | Para limpar a infraestrutura que você criou, use o seguinte comando:
Para confirmar o comando | DevOps engenheiro |
Realize uma verificação após o procedimento de limpeza. | Verifique se os recursos foram removidos com êxito. | DevOps engenheiro |
Solução de problemas
| Problema | Solução |
|---|---|
Problema de conexão entre AWS Directory Service (conta principal) e EC2 instância da Amazon (conta secundária) — Você não consegue associar os computadores da conta secundária ao AD, mesmo que o emparelhamento de VPC esteja disponível. | Adicione roteamento no VPCs. Para obter instruções, consulte Configurar uma conexão de emparelhamento de VPC entre o proprietário do diretório e a conta do consumidor do diretório na documentação. AWS Directory Service |
Recursos relacionados
AWS documentação
Outros recursos
AWS Provedor
(documentação do Terraform) Backend Configuration
(documentação do Terraform) Install Terraform
(documentação do Terraform) Python boto module
(repositório Python Package Index) Terraform binary download
(documentação do Terraform)