Tutorial: configurar uma relação de confiança entre realms com um controlador de domínio do Active Directory - Amazon EMR

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á.

Tutorial: configurar uma relação de confiança entre realms com um controlador de domínio do Active Directory

Ao configurar uma relação de confiança entre regiões, você permite que os principais (geralmente usuários) de um realm Kerberos diferente se autentiquem nos componentes do aplicativo no cluster. EMR O centro de distribuição de chaves dedicado ao cluster (KDC) estabelece uma relação de confiança com outro KDC usando um princípio entre domínios que existe em ambos. KDCs O nome do principal e a senha coincidem precisamente.

Uma relação de confiança entre domínios exige que eles KDCs possam entrar em contato uns com os outros pela rede e resolver os nomes de domínio uns dos outros. As etapas para estabelecer uma relação de confiança entre regiões com um controlador de domínio do Microsoft AD em execução como uma EC2 instância são fornecidas abaixo, junto com um exemplo de configuração de rede que fornece a conectividade necessária e a resolução do nome de domínio. Qualquer configuração de rede que permita o tráfego de rede necessário KDCs é aceitável.

Opcionalmente, depois de estabelecer uma relação de confiança entre regiões com o Active Directory usando um cluster KDC em um, você pode criar outro cluster usando uma configuração de segurança diferente para referenciar o KDC primeiro cluster como externo. KDC Para obter um exemplo de configuração de segurança e a configuração do cluster, consulte Cluster externo KDC com confiança entre regiões do Active Directory.

Para obter mais informações sobre o EMR suporte da Amazon para Kerberos eKDC, além de links para a documentação do MIT Kerberos, consulte. Use o Kerberos para autenticação com a Amazon EMR

Importante

A Amazon EMR não oferece suporte a relações de confiança entre reinos com. AWS Directory Service for Microsoft Active Directory

Etapa 1: configurar a VPC sub-rede e

Etapa 2: iniciar e instalar o controlador de domínio do Active Directory

Etapa 3: Adicionar contas ao domínio para o EMR cluster

Etapa 4: configurar uma relação de confiança recebida no controlador de domínio do Active Directory

Etapa 5: Usar um conjunto de DHCP opções para especificar o controlador de domínio do Active Directory como VPC DNS servidor

Etapa 6: iniciar um cluster kerberizado EMR

Etapa 7: criar HDFS usuários e definir permissões no cluster para contas do Active Directory

Etapa 1: configurar a VPC sub-rede e

As etapas a seguir demonstram a criação de uma sub-rede VPC e para que o cluster dedicado KDC possa acessar o controlador de domínio do Active Directory e resolver seu nome de domínio. Nessas etapas, a resolução do nome de domínio é fornecida referenciando o controlador de domínio do Active Directory como o servidor de nomes de domínio no conjunto de opções. DHCP Para obter mais informações, consulte Etapa 5: Usar um conjunto de DHCP opções para especificar o controlador de domínio do Active Directory como VPC DNS servidor.

O KDC e o controlador de domínio do Active Directory devem ser capazes de resolver os nomes de domínio uns dos outros. Isso permite que EMR a Amazon associe computadores ao domínio e configure automaticamente contas e SSH parâmetros Linux correspondentes em instâncias de cluster.

Se a Amazon não EMR conseguir resolver o nome de domínio, você poderá referenciar a confiança usando o endereço IP do controlador de domínio do Active Directory. No entanto, você deve adicionar manualmente contas Linux, adicionar os principais correspondentes ao cluster dedicado e configurarKDC. SSH

Para configurar a VPC sub-rede e
  1. Crie uma Amazon VPC com uma única sub-rede pública. Para obter mais informações, consulte Etapa 1: Crie o VPC no Guia de conceitos VPC básicos da Amazon.

    Importante

    Ao usar um controlador de domínio do Microsoft Active Directory, escolha um CIDR bloco para o EMR cluster de forma que todos os IPv4 endereços tenham menos de nove caracteres (por exemplo, 10.0.0.0/16). Isso ocorre porque os DNS nomes dos computadores de cluster são usados quando os computadores ingressam no diretório do Active Directory. AWS atribui DNSnomes de host com base no IPv4 endereço de forma que endereços IP mais longos possam resultar em DNS nomes com mais de 15 caracteres. O Active Directory tem um limite de 15 caracteres para registrar nomes de computador adicionados e trunca nomes mais longos, o que pode causar erros imprevisíveis.

  2. Remova o conjunto de DHCP opções padrão atribuído aoVPC. Para obter mais informações, consulte Alterando a VPC para usar Nenhuma DHCP opção. Posteriormente, você adiciona um novo que especifica o controlador de domínio do Active Directory como DNS servidor.

  3. Confirme se o DNS suporte está habilitado para oVPC, ou seja, se DNS os nomes de host e a DNS resolução estão habilitados. Por padrão, as transições estão ativadas. Para obter mais informações, consulte Atualização do DNS suporte para seu VPC.

  4. Confirme se você VPC tem um gateway de internet conectado, que é o padrão. Para mais informações, consulte Criar e anexar um gateway da Internet.

    nota

    Um gateway de internet é usado neste exemplo porque você está estabelecendo um novo controlador de domínio para VPC o. O gateway da Internet talvez não seja necessário para o aplicativo. O único requisito é que o cluster dedicado KDC possa acessar o controlador de domínio do Active Directory.

  5. Crie uma tabela de rotas personalizada, adicione uma rota com o gateway da Internet como destino e a anexe à sub-rede. Para obter mais informações, consulte Criar uma tabela de rotas personalizada.

  6. Quando você executa a EC2 instância do controlador de domínio, ela deve ter um IPv4 endereço público estático para você se conectar a ela usandoRDP. A maneira mais fácil de fazer isso é configurar sua sub-rede para atribuir endereços públicos IPv4 automaticamente. Não se trata da configuração padrão quando uma sub-rede é criada. Para obter mais informações, consulte Modificação do atributo de IPv4 endereçamento público da sua sub-rede. Você também pode atribuir o endereço ao iniciar a instância. Para obter mais informações, consulte Atribuição de um IPv4 endereço público durante a execução da instância.

  7. Ao terminar, anote sua sub-rede VPC IDs e. Você os usará depois quando iniciar o controlador de domínio do Active Directory e o cluster.

Etapa 2: iniciar e instalar o controlador de domínio do Active Directory

  1. Execute uma EC2 instância com base no Microsoft Windows Server 2016 BaseAMI. Recomendamos um tipo de instância m4.xlarge ou melhor. Para obter mais informações, consulte Lançamento de uma AWS Marketplace instância no Guia EC2 do usuário da Amazon.

  2. Anote o ID do grupo de segurança associado à EC2 instância. Você precisa dele para o Etapa 6: iniciar um cluster kerberizado EMR. Nós usamos sg-012xrlmdomain345. Como alternativa, você pode especificar grupos de segurança diferentes para o EMR cluster e essa instância que permite o tráfego entre eles. Para obter mais informações, consulte Grupos EC2 de segurança da Amazon para instâncias Linux no Guia EC2 do usuário da Amazon.

  3. Conecte-se à EC2 instância usando RDP o. Para obter mais informações, consulte Conectando-se à sua instância do Windows no Guia EC2 do usuário da Amazon.

  4. Inicie o Server Manager para instalar e configurar o perfil Active Directory Domain Services no servidor. Promova o servidor para um controlador de domínio e atribua um nome de domínio (o exemplo que usamos aqui é ad.domain.com). Anote o nome do domínio porque você precisará dele posteriormente ao criar a configuração de EMR segurança e o cluster. Se estiver começando a configurar o Active Directory, você poderá seguir as instruções em How to setup Active Directory (AD) In Windows Server 2016.

    A instância será reiniciada quando você terminar.

Etapa 3: Adicionar contas ao domínio para o EMR cluster

RDPao controlador de domínio do Active Directory para criar contas em Usuários e Computadores do Active Directory para cada usuário do cluster. Para obter mais informações, consulte Create a User Account in Active Directory Users and Computers no site Microsoft Learn. Anote o User logon name (Nome de logon do usuário) de cada usuário. Você precisará dele mais tarde ao configurar o cluster.

Além disso, crie uma conta com privilégios suficientes para integrar computadores ao domínio. Você especifica essa conta ao criar um cluster. A Amazon o EMR usa para unir instâncias de cluster ao domínio. Você especifica essa conta e a senha em Etapa 6: iniciar um cluster kerberizado EMR. Para delegar privilégios de integração do computador à conta, recomendamos criar um grupo com privilégios de junção e, em seguida, atribuir o usuário ao grupo. Para obter instruções, consulte Delegating directory join privileges no Guia de administração AWS Directory Service .

Etapa 4: configurar uma relação de confiança recebida no controlador de domínio do Active Directory

Os comandos de exemplo abaixo criam uma relação de confiança no Active Directory, que é uma relação de confiança de região unidirecional, de entrada e não transitiva com o cluster dedicado. KDC O exemplo que usamos para no realm do cluster é EC2.INTERNAL. Substitua o KDC-FQDN com o DNS nome público listado para o nó EMR primário da Amazon que hospeda KDC o. O parâmetro passwordt especifica a cross-realm principal password (senha da entidade principal entre realms), determinada por você com o realm do cluster ao criar um cluster. O nome do realm deriva do nome de domínio padrão em us-east-1 para o cluster. O Domain é o domínio do Active Directory no qual você está criando a confiança, que é em minúscula por convenção. O exemplo usa ad.domain.com

Abra o prompt de comando do Windows com privilégios de administrador e digite os seguintes comandos para criar a relação de confiança no controlador de domínio do Active Directory:

C:\Users\Administrator> ksetup /addkdc EC2.INTERNAL KDC-FQDN C:\Users\Administrator> netdom trust EC2.INTERNAL /Domain:ad.domain.com /add /realm /passwordt:MyVeryStrongPassword C:\Users\Administrator> ksetup /SetEncTypeAttr EC2.INTERNAL AES256-CTS-HMAC-SHA1-96

Etapa 5: Usar um conjunto de DHCP opções para especificar o controlador de domínio do Active Directory como VPC DNS servidor

Agora que o controlador de domínio do Active Directory está configurado, você deve configurá-lo VPC para usá-lo como um servidor de nome de domínio para resolução de nomes em seuVPC. Para fazer isso, anexe um conjunto DHCP de opções. Especifique o Nome do domínio como o nome de domínio do cluster. Por exemplo, ec2.internal caso o cluster esteja em us-east-1 ou region.compute.internal para outras regiões. Para servidores de nomes de domínio, você deve especificar o endereço IP do controlador de domínio do Active Directory (que deve ser acessível a partir do cluster) como a primeira entrada, seguido por AmazonProvidedDNS(por exemplo, xx.xx.xx.xx, AmazonProvided DNS). Para obter mais informações, consulte Alteração dos conjuntos de DHCP opções.

Etapa 6: iniciar um cluster kerberizado EMR

  1. Na AmazonEMR, crie uma configuração de segurança que especifique o controlador de domínio do Active Directory que você criou nas etapas anteriores. Um comando de exemplo é mostrado abaixo. Substitua o domínio, ad.domain.com, pelo nome do domínio especificado por você em Etapa 2: iniciar e instalar o controlador de domínio do Active Directory.

    aws emr create-security-configuration --name MyKerberosConfig \ --security-configuration '{ "AuthenticationConfiguration": { "KerberosConfiguration": { "Provider": "ClusterDedicatedKdc", "ClusterDedicatedKdcConfiguration": { "TicketLifetimeInHours": 24, "CrossRealmTrustConfiguration": { "Realm": "AD.DOMAIN.COM", "Domain": "ad.domain.com", "AdminServer": "ad.domain.com", "KdcServer": "ad.domain.com" } } } } }'
  2. Crie o cluster com os seguintes atributos:

    • Use a opção --security-configuration para especificar a configuração de segurança que você criou. Nós usamos MyKerberosConfig no exemplo.

    • Use a propriedade SubnetId da --ec2-attributes option para especificar a sub-rede que você criou em Etapa 1: configurar a VPC sub-rede e. Nós usamos step1-subnet no exemplo.

    • Use AdditionalMasterSecurityGroups e AdditionalSlaveSecurityGroups da opção --ec2-attributes para especificar que o grupo de segurança associado ao controlador de domínio AD do Etapa 2: iniciar e instalar o controlador de domínio do Active Directory está associado ao nó primário do cluster, bem como aos nós centrais e de tarefa. Nós usamos sg-012xrlmdomain345 no exemplo.

    Use --kerberos-attributes para especificar os seguintes atributos Kerberos específicos ao cluster:

    O exemplo a seguir inicia um cluster kerberizado.

    aws emr create-cluster --name "MyKerberosCluster" \ --release-label emr-5.10.0 \ --instance-type m5.xlarge \ --instance-count 3 \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,KeyName=MyEC2KeyPair,\ SubnetId=step1-subnet, AdditionalMasterSecurityGroups=sg-012xrlmdomain345, AdditionalSlaveSecurityGroups=sg-012xrlmdomain345\ --service-role EMR_DefaultRole \ --security-configuration MyKerberosConfig \ --applications Name=Hadoop Name=Hive Name=Oozie Name=Hue Name=HCatalog Name=Spark \ --kerberos-attributes Realm=EC2.INTERNAL,\ KdcAdminPassword=MyClusterKDCAdminPwd,\ ADDomainJoinUser=ADUserLogonName,ADDomainJoinPassword=ADUserPassword,\ CrossRealmTrustPrincipalPassword=MatchADTrustPwd

Etapa 7: criar HDFS usuários e definir permissões no cluster para contas do Active Directory

Ao configurar uma relação de confiança com o Active Directory, a Amazon EMR cria usuários Linux no cluster para cada conta do Active Directory. Por exemplo, o nome de logon de usuário LiJuan no Active Directory tem uma conta do Linux de lijuan. Os nomes de usuário do Active Directory podem conter letras maiúsculas, mas o Linux não segue o uso de maiúsculas e minúsculas do Active Directory.

Para permitir que seus usuários façam login no cluster para executar trabalhos do Hadoop, você deve adicionar diretórios de HDFS usuários às contas Linux e conceder a cada usuário a propriedade do diretório. Para isso, recomendamos executar um script salvo no Amazon S3 como uma etapa de cluster. Você também pode executar os comandos no script abaixo da linha de comando no nó primário. Use o par de EC2 chaves que você especificou ao criar o cluster para se conectar ao nó primário SSH como usuário do Hadoop. Para obter mais informações, consulte Use um par de EC2 chaves para SSH credenciais.

Execute o comando a seguir para adicionar uma etapa ao cluster que executa um script, AddHDFSUsers.sh.

aws emr add-steps --cluster-id <j-2AL4XXXXXX5T9> \ --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://DOC-EXAMPLE-BUCKET/AddHDFSUsers.sh"]

O conteúdo do arquivo AddHDFSUsers.sh é o seguinte.

#!/bin/bash # AddHDFSUsers.sh script # Initialize an array of user names from AD or Linux users and KDC principals created manually on the cluster ADUSERS=("lijuan" "marymajor" "richardroe" "myusername") # For each user listed, create an HDFS user directory # and change ownership to the user for username in ${ADUSERS[@]}; do hdfs dfs -mkdir /user/$username hdfs dfs -chown $username:$username /user/$username done

Grupos do Active Directory mapeados para grupos do Hadoop

A Amazon EMR usa o System Security Services Daemon (SSD) para mapear grupos do Active Directory para grupos do Hadoop. Para confirmar mapeamentos de grupos, depois de fazer login no nó primário, conforme descrito em Usando SSH para se conectar a clusters Kerberizados, você poderá usar o comando hdfs groups para confirmar que os grupos do Active Directory aos quais sua conta do Active Directory pertence foram mapeados para os grupos do Hadoop para o usuário correspondente do Hadoop no cluster. Você também pode verificar mapeamentos de grupos de outros usuários especificando um ou mais nomes de usuário usando, por exemplo, o comando hdfs groups lijuan. Para obter mais informações, consulte grupos no Guia de HDFS Comandos do Apache.