O blog da AWS
Como conectar seu Active Directory on-premises com a AWS utilizando o AD Connector
- 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.
O diagrama a seguir ilustra o fluxo de autenticação e o caminho de rede quando você habilita o acesso ao Console da AWS:
- Um usuário abre a página de login personalizada segura e fornece seu nome de usuário e senha do Active Directory..
- A solicitação de autenticação é enviada por SSL para o AD Connector.
- 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.
- 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.
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á:
- Abrir o console do AWS Directory Service e clicar na aba Application management:
- Na seção AWS Management Console, clique no IAM role (que foi criada anteriormente nessas etapas) para adicionar usuários:
- Na seção Manage users and groups for this role, clique em Add:
- Digite o nome de um usuário ou grupo do Active Directory no campo de pesquisa.
- 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:
- Abra o console do IAM.
- No painel de navegação do lado esquerdo, em Access management clique em Roles.
- Clique em Create role.
- Em Select trusted entity selecione AWS Service e em seguida selecione Amazon EC2 em Use Case e clique em Next.
- Na página Add permissions, selecione as políticas gerenciadas AmazonSSMManagedInstanceCore e AmazonSSMDirectoryServiceAccess. (Para filtrar na lista, digite SSM no campo de filtro.
- Digite um nome para sua nova role no campo Role Name.
- 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.