O blog da AWS

Como conectar seu Active Directory on-premises com a AWS utilizando o AD Connector

Por Jeremy Cowan
O AD Connector foi projetado para oferecer uma maneira fácil de estabelecer uma relação de confiança entre o Active Directory e a AWS. Quando o AD Connector é configurado, é possível:
  • Realizar login em aplicativos da AWS como Amazon WorkSpaces, Amazon WorkDocs e Amazon WorkMail através do uso de suas credenciais do Active Directory.
  • Ingressar facilmente instâncias do Windows ao seu domínio do Active Directory por meio do Amazon EC2 Launch Wizard ou programaticamente por meio da API do EC2 Simple System Manager (SSM).
  • Fornecer sign-in federado ao Console de Gerenciamento da AWS mapeando identidades do Active Directory para roles (funções) do AWS Identity and Access Management (IAM).

O AD Connector não pode ser utilizado com seus aplicativos customizados, pois é usado apenas para integração segura da AWS para os três casos de uso mencionados acima. Os aplicativos customizados que dependem do Active Directory on-premises devem se comunicar diretamente com os controladores de domínio.

Com o AD Connector, você pode simplificar o gerenciamento de identidades fornecendo e gerenciando todas as suas identidades de usuário do Active Directory. Ele também permite que você reutilize suas políticas de segurança existentes do Active Directory como expiração de senhas, histórico de senhas e políticas de bloqueio de conta. Além disso, seus usuários não precisarão mais se lembrar de outra combinação de nome de usuário e senha. E como o AD Connector não depende de tecnologias complexas de sincronização de diretórios ou Active Directory Federation Services (AD FS), você pode abrir mão do custo adicional e da complexidade de hospedar uma infraestrutura de federação baseada em SAML. De maneira resumida, o AD Connector ajuda a promover um ambiente híbrido, permitindo que você aproveite seus investimentos on-premises existentes para controlar diferentes aspectos da AWS.

Esse post mostrará como o AD Connector funciona, além de explicar como habilitar o acesso federado ao console, atribuir usuários a roles e ingressar facilmente uma instância EC2 a um domínio do Active Directory.

AD Connector – por debaixo dos panos

O AD Connector é um serviço de proxy com zona de disponibilidade dupla que conecta aplicativos da AWS ao seu diretório on-premises. O AD Connector encaminha solicitações de login para seus controladores de domínio do Active Directory para autenticação e fornece a capacidade dos aplicativos consultarem o diretório em busca de dados. Ao configurar o AD Connector, você fornece credenciais de conta de serviço que são armazenadas com segurança pela AWS. Essa conta é usada pela AWS para habilitar a funcionalidade de ingresso facilitado no domínio, login único (SSO) e aplicativos da AWS (WorkSpaces, WorkDocs e WorkMail). Como o AD Connector funciona como um proxy, ele não armazena ou faz cache das credenciais do usuário. Ao invés vez disso, todas as solicitações de autenticação, pesquisa e gerenciamento são tratadas pelo seu Active Directory.

Para criar um AD Connector, você também deve fornecer um par de endereços IP de DNS durante a configuração. Eles são utilizados pelo AD Connector para recuperar registros de serviço (SRV) de DNS para localizar os controladores de domínio mais próximos para rotear solicitações. As instâncias de proxy do AD Connector usam um algoritmo semelhante ao processo localizador do controlador de domínio do Active Directory para decidir a quais controladores de domínio se conectar para todas as solicitações LDAP e de Kerberos.

Para autenticação em aplicativos da AWS e no Console da AWS, você pode configurar uma URL de acesso no console do AWS Directory Service. Essa URL de acesso está no formato https://<alias>.awsapps.com e fornece uma página de login publicamente acessível. Você pode visitar https://<alias>.awsapps.com/workdocs para fazer login no WorkDocs e https://<alias>.awsapps.com/console para fazer login no Console de Gerenciamento da AWS. A imagem a seguir mostra a página de login do Console de Gerenciamento da AWS.

Para maior segurança, você pode ativar a autenticação multifator (MFA – Multi-factor Authentication, em inglês) para o AD Connector, mas precisará ter uma infraestrutura RADIUS existente em sua rede on-premises configurada para aproveitar esse recurso. Consulte  Pré-requisitos do AD Connector para obter mais informações sobre requisitos e configuração. Com o MFA ativado com AD Connector, a página de login hospedada em sua URL de acesso solicitará aos usuários um código MFA além de suas credenciais de login padrão. O AD Connector possui dois tamanhos: pequeno e grande. Um AD Connector grande é executado em recursos de computação mais poderosos e é mais caro do que um AD Connector pequeno. Dependendo do volume de tráfego de proxy do AD Connector, você desejará selecionar o tamanho apropriado conforme suas necessidades. O AD Connector é altamente disponível, o que significa que os hosts da infraestrutura por debaixo dos panos são executados em várias zonas de disponibilidade na região que você implantar. No caso de falha a nível do host, o AWS Directory Service substituirá os hosts com falha. O AWS Directory Service também aplica atualizações de desempenho e segurança automaticamente no AD Connector.

O diagrama a seguir ilustra o fluxo de autenticação e o caminho de rede quando você habilita o acesso ao Console da AWS:

  1. Um usuário abre a página de login personalizada segura e fornece seu nome de usuário e senha do Active Directory..
  2. A solicitação de autenticação é enviada por SSL para o AD Connector.
  3. O AD Connector executa a autenticação LDAP no Active Directory.

Observação: o AD Connector localiza os controladores de domínio mais próximos consultando os registros de serviço (SRV) de DNS do domínio.

  1. Após a autenticação do usuário, o AD Connector chama o método STS AssumeRole para obter credenciais de segurança temporárias para esse usuário. Utilizando essas credenciais de segurança temporárias, o AD Connector constrói uma URL de entrada que os usuários usam para acessar o console.

Observação: se um usuário estiver mapeado para várias funções, o usuário poderá escolher no momento do login qual role deseja assumir. Por padrão, a sessão do usuário é válida por 1 hora. Você pode utilizar este procedimento para alterar a duração para até 12 horas por sessão.

Antes de começar a configurar o AD Connector para acesso federado ao Console da AWS, certifique-se de ler e entender os pré-requisitos do AD Connector. Por exemplo, deve existir uma conexão de VPN ou Direct Connect instalado entre sua VPC e seu ambiente on-premises. Seu domínio também deve estar executando no nível funcional do Windows 2003 ou posterior. Além disso, várias portas precisam estar abertas entre sua VPC e seu ambiente on-premises para permitir que o AD Connector se comunique com seu diretório on-premises.

Configurando o AD Connector para acesso federado ao Console da AWS

Habilitar acesso ao console

Para permitir que os usuários entrem com suas credenciais do Active Directory, você precisa habilitar explicitamente o acesso ao console. Você pode fazer isso abrindo o console do AWS Directory Service e clicar no ID do diretório.

Isso abre a página de detalhes do diretório, onde você encontrará um botão de Actions dentro da aba  Application management para habilitar o diretório para acesso ao Console da AWS: Para fazer isso, clique em Actions > Enable na seção  AWS Management Console:

Depois de habilitar o acesso ao console, você está pronto para começar a configurar funções e associar usuários e grupos do Active Directory às funções.

Siga estas etapas para criar uma nova função do IAM para uso com o AWS Directory Service. O exemplo de código a seguir mostra a política de confiança do IAM para a role, depois que um role é criado.

{
   "Version": "2012-10-17",
   "Statement": [
     {
       "Sid": "",
       "Effect": "Allow",
       "Principal": {
         "Service": "ds.amazonaws.com"
       },
       "Action": "sts:AssumeRole",
       "Condition": {
         "StringEquals": {
           "sts:externalid": "482242153642"
	  }
	}
     }
   ]
}

Atribuir usuários a funções

Agora que o AD Connector está configurado e você criou uma função, sua próxima tarefa é atribuir usuários ou grupos a essas funções do IAM. O mapeamento de funções é o que controla os recursos aos quais um usuário tem acesso na AWS. Para fazer isso, você precisará:

  1. Abrir o console do AWS Directory Service e clicar na aba Application management:
  2. Na seção AWS Management Console, clique no IAM role (que foi criada anteriormente nessas etapas) para adicionar usuários:
  3. Na seção Manage users and groups for this role, clique em Add:
  1. Digite o nome de um usuário ou grupo do Active Directory no campo de pesquisa.
  2. Selecione o usuário ou grupo e clique em Add.

Quando concluir, você verá o nome do usuário ou grupo junto com o ID correspondente a esse objeto, conforme mostrado na imagem anterior.

Na próxima vez que o usuário fizer login no Console da AWS a partir da página de login personalizada, ele será conectado com a role de segurança DS_Admins.

Ingresse facilmente uma instância em um domínio do Active Directory

Outra vantagem de usar o AD Connector é a capacidade de ingressar instâncias do Windows (EC2) diretamente ao seu domínio do Active Directory. Isso permite que você junte um Windows Server ao domínio enquanto a instância está sendo provisionada, ao invés de utilizar um script ou fazê-lo manualmente. Esta seção deste post explicará as etapas necessárias para habilitar esse recurso em seu ambiente e também como o serviço funciona.

Etapa 1: Criar uma função

Anteriormente, você tinha que criar manualmente uma política IAM para permitir que uma instância do EC2 se comunicasse com o SSM (um serviço da AWS que permite configurar instâncias do Windows enquanto elas estão em execução e na primeira inicialização). Agora, há duas políticas gerenciadas pela AWS: AmazonSSMManagedInstanceCore e AmazonSSMDirectoryServiceAccess que você pode utilizar. A role que você vai criar será atribuída a uma instância EC2 quando for provisionada, onde a role AmazonSSMManagedInstanceCore contém as permissões mínimas para acessar o serviço SSM e a AmazonSSMDirectoryServiceAccess terá permissões necessárias para associar instâncias a um Active Directory gerenciado pelo AWS Directory Service.

Para criar a função:

  1. Abra o console do IAM.
  2. No painel de navegação do lado esquerdo, em Access management clique em Roles.
  3. Clique em Create role.
  4. Em Select trusted entity selecione AWS Service e em seguida selecione Amazon EC2 em Use Case e clique em Next.
  5. Na página Add permissions, selecione as políticas gerenciadas AmazonSSMManagedInstanceCore e AmazonSSMDirectoryServiceAccess. (Para filtrar na lista, digite SSM no campo de filtro.
  6. Digite um nome para sua nova role no campo Role Name.
  7. Para finalizar clique em Create role.

Ao clicar na função que criou, você verá uma política de confiança (Trusted entity) para EC2, que se parece com o exemplo do código a seguir.

Política de confiança default do AmazonEC2RoleforSSM:

{
     "Version": "2012-10-17",
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "ec2.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
}

Etapa 2: criar uma nova instância do Windows no console do Amazon EC2

Com a role definida, agora você pode ingressar em uma instância do Windows em seu domínio por meio do Amazon EC2 launch wizard. Para obter uma explicação detalhada sobre como fazer isso, consulte Joining a Domain Using the Amazon EC2 Launch Wizard.

No entanto, se você estiver instanciando uma nova instância da API, precisará criar um documento de configuração SSM e carregá-lo no serviço SSM com antecedência. Passaremos por esse processo a seguir.

Observação: a instância exigirá acesso à Internet para se comunicar com o serviço SSM.

Quando você cria uma nova instância do Windows a partir do launch wizard do EC2, o assistente cria automaticamente o documento de configuração do SSM a partir das informações armazenadas no AD Connector. Atualmente, o assistente de inicialização do EC2 não permite especificar em qual unidade organizacional (OU – Organizational Unit) você deseja implantar o servidor membro.

Etapa 3: Crie um documento SSM (para o ingresso simplificado de um servidor no domínio por meio da API da AWS)

Se você deseja provisionar novas instâncias do Windows a partir da AWS CLI ou API ou deseja especificar a OU de destino para suas instâncias, precisará criar um documento de configuração do SSM. Esse documento é um arquivo JSON que contém vários parâmetros usados para configurar suas instâncias. O exemplo de código a seguir é um documento de configuração para ingressar em um domínio.

{
	"schemaVersion": "1.0",
	"description": "Exemplo de configuração para ingressar uma instância em um domínio",
	"runtimeConfig": {
	   "aws:domainJoin": {
	       "properties": {
	          "directoryId": "d-1234567890",
                  "directoryName": "teste.exemplo.com.br",
                  "directoryOU": "OU=teste,DC=exemplo,DC=com,DC=br",
                  "dnsIpAddresses": [
                     "198.51.100.1",
                     "198.51.100.2"
               ]
            }
        }
    }
 }

Neste documento de configuração:

  • directoryId é o ID do AD Connector que você criou anteriormente.
  • directoryName é o nome do domínio (por exemplo, exemplo.com.br).
  • directoryOU é a OU do domínio.
  • dnsIpAddresses são os endereços IP dos servidores DNS que você especificou quando criou o AD Connector.

Para obter informações adicionais, consulte aws:domainJoin. Quando terminar de criar o arquivo, salve-o como um arquivo JSON.
Observação: O nome do arquivo deve ter no mínimo 1 caractere e no máximo 64 caracteres.

Etapa 4: Carregar o documento de configuração no SSM

Esta etapa requer que o usuário tenha permissão para usar o SSM para configurar uma instância. Se você não tiver uma política que inclua esses direitos, crie uma nova política usando o JSON a seguir e atribua-a a um usuário ou grupo do IAM.

{
   "Version": "2012-10-17",
   "Statement": [
     {
       "Effect": "Allow",
       "Action": "ssm:*",
       "Resource": "*"
     }
   ]
}

Depois de fazer login com um usuário associado à política SSM IAM que você criou, execute o seguinte comando na AWS CLI.

aws ssm create-document --content file://path/to/myconfigfile.json --name "My_Custom_Config_File"

Observação: Em sistemas Linux/Mac, você precisa adicionar um “/” no início do caminho (por exemplo, file:///Users/usuario/temp).

Este comando carrega o documento de configuração que você criou para o serviço SSM, permitindo que você faça referência a ele ao criar uma nova instância do Windows a partir da AWS CLI ou do assistente de inicialização do EC2.

Conclusão

Este post mostrou como você pode simplificar o gerenciamento de contas utilizando seu Active Directory para acesso federado ao Console da AWS. E também explorou como você pode habilitar a TI híbrida usando o AD Connector para ingressar facilmente em instâncias do Windows em seu domínio do Active Directory. De posse com essas informações, você pode criar uma relação de confiança entre seu Active Directory e a AWS. Além disso, agora você tem uma maneira rápida e fácil de ativar o single sign-on sem precisar replicar identidades ou implantar infraestrutura adicional on-premises.

 

Este artigo foi traduzido do Blog Post da AWS em inglês.


Revisores

Breno Silva é Arquiteto de Soluções na AWS, trabalhando para o setor Enterprise. Atuou com clientes de CPG, varejo, indústria e automotivo. Faz parte de comunidades de Cyber-Security e de IoT. No tempo livre gosta de automatizar sua casa, tocar guitarra e praticar esportes ao ar livre.

 

 

 

 

Eduardo Inoue atua como Technical Account Manager na AWS empoderando clientes em sua jornada de nuvem. Possui mais de 13 anos de experiência em tecnologias de infraestrutura, como computação, rede e armazenamento. Apaixonado por tecnologia está sempre em busca de aprender novas soluções.

 

 

 

 

Liz Menichetti é Technical Account Manager na AWS. Desde 2019 auxilia os clientes da AWS com arquitetura e projetos de destaque nas mais variadas verticais da indústria, não só dando suporte aos clientes, mas também trazendo valor ao negócio com boas práticas de segurança, escalabilidade, resiliência, performance e excelência operacional.