

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

# Usar servidores Active Directory ou LDAP para autenticação com o Amazon EMR
<a name="ldap"></a>

Com o Amazon EMR 6.12.0 e versões posteriores, você pode usar o protocolo LDAP sobre SSL (LDAPS) para iniciar um cluster que se integra de forma nativa ao servidor de identidade corporativo. O Lightweight Directory Access Protocol (LDAP) é um protocolo de aplicação aberto e independente de fornecedor que acessa e mantém dados. O LDAP é bastante usado para autenticação de usuários em servidores de identidade corporativa hospedados em aplicações como o Active Directory (AD) e o OpenLDAP. Com essa integração nativa, você pode usar o servidor LDAP para autenticar usuários no Amazon EMR.

Os destaques da integração do LDAP do Amazon EMR incluem:
+ O Amazon EMR configura as aplicações compatíveis para se autenticarem com a autenticação LDAP em seu nome.
+ O Amazon EMR configura e mantém a segurança das aplicações compatíveis com o protocolo Kerberos. Não é necessário inserir nenhum comando ou script.
+ Você recebe controle de acesso refinado (FGAC) por meio da autorização do Apache Ranger para bancos de dados e tabelas do Hive Metastore. Consulte [Integrar o Amazon EMR com o Apache Ranger](emr-ranger.md) para obter mais informações.
+ Ao necessitar de credenciais LDAP para acessar um cluster, você recebe controle de acesso refinado (FGAC) sobre quem pode acessar seus clusters do EMR por meio de SSH.

As páginas a seguir fornecem uma visão geral conceitual, os pré-requisitos e as etapas para iniciar um cluster do EMR com a integração LDAP do Amazon EMR.

**Topics**
+ [Visão geral do LDAP com o Amazon EMR](ldap-overview.md)
+ [Componentes LDAP para Amazon EMR](ldap-components.md)
+ [Suporte de aplicações e considerações com o LDAP para Amazon EMR](ldap-considerations.md)
+ [Configurar e iniciar um cluster do EMR com LDAP](ldap-setup.md)
+ [Exemplos usando o LDAP com Amazon EMR](ldap-examples.md)

# Visão geral do LDAP com o Amazon EMR
<a name="ldap-overview"></a>

O Lightweight Directory Access Protocol (LDAP) é um protocolo de software que os administradores de rede usam para gerenciar e controlar o acesso aos dados por meio da autenticação de usuários na rede de uma empresa. O protocolo LDAP armazena informações em uma estrutura hierárquica de diretórios em árvore. Para obter mais informações, consulte [Basic LDAP Concepts](https://ldap.com/basic-ldap-concepts/) no *LDAP.com*.

Na rede de uma empresa, muitas aplicações podem usar o protocolo LDAP para autenticar usuários. Com a integração LDAP do Amazon EMR, os clusters do EMR podem usar o mesmo protocolo LDAP de maneira nativa com uma configuração de segurança adicionada.

Há duas implementações principais do protocolo LDAP compatíveis com o Amazon EMR: **Active Directory** e **OpenLDAP**. Há outras implementações possíveis, mas a maioria se encaixa nos mesmos protocolos de autenticação do Active Directory ou do OpenLDAP.

## Active Directory (AD)
<a name="ldap-ad"></a>

O Active Directory (AD) é um serviço de diretório da Microsoft para redes de domínio Windows. O AD está incluído na maioria dos sistemas operacionais Windows Server e pode se comunicar com clientes pelos protocolos LDAP e LDAPS. Para autenticação, o Amazon EMR tenta usar a associação do usuário com a instância do AD com o nome da entidade principal do usuário (UPN) como nome e senha distintos. O UPN usa o formato padrão `username@domain_name`.

## OpenLDAP
<a name="ldap-openldap"></a>

O OpenLDAP é uma implementação gratuita e de código aberto do protocolo LDAP. Para autenticação, o Amazon EMR tenta usar a associação do usuário com a instância do OpenLDAP com o nome de domínio totalmente qualificado (FQDN) como nome distinto e senha. O FQDN usa o formato padrão `username_attribute=username,LDAP_user_search_base`. Normalmente, o valor de `username_attribute` é `uid`, e o valor de `LDAP_user_search_base` contém os atributos da árvore que leva ao usuário. Por exemplo, .`ou=People,dc=example,dc=com`

Outras implementações gratuitas e de código aberto do protocolo LDAP normalmente seguem um FQDN semelhante ao OpenLDAP para os nomes distintos dos respectivos usuários. 

# Componentes LDAP para Amazon EMR
<a name="ldap-components"></a>

Você pode usar seu servidor LDAP para se autenticar no Amazon EMR e em qualquer aplicação que o usuário utilize diretamente no cluster do EMR por meio dos componentes a seguir. 

**Agente secreto**  
O *agente secreto* é um processo no cluster que autentica todas as solicitações do usuário. O agente secreto cria a associação do usuário para o servidor LDAP em nome das aplicações compatíveis com o cluster do EMR. O agente secreto é executado como o usuário `emrsecretagent` e grava logs no diretório `/emr/secretagent/log`. Esses logs fornecem detalhes sobre o estado da solicitação de autenticação de cada usuário e os erros que possam surgir durante a autenticação do usuário.

**System Security Services Daemon (SSSD)**  
O *SSSD* é um daemon executado em cada nó de um cluster do EMR habilitado para LDAP. O SSSD cria e gerencia um usuário UNIX para sincronizar sua identidade corporativa remota com cada nó. Aplicações baseadas em YARN, como o Hive e o Spark, exigem que haja um usuário UNIX local em cada nó que executa uma consulta para um usuário.

# Suporte de aplicações e considerações com o LDAP para Amazon EMR
<a name="ldap-considerations"></a>

Este tópico lista aplicações compatíveis, recursos compatíveis e recursos não compatíveis.

## Aplicações compatíveis com LDAP para Amazon EMR
<a name="ldap-considerations-apps"></a>

**Importante**  
As aplicações listadas nesta página são as únicas com suporte do Amazon EMR para LDAP. Para garantir a segurança do cluster, só é possível incluir aplicações compatíveis com LDAP ao criar um cluster do EMR com o LDAP habilitado. Se você tentar instalar outras aplicações sem suporte, o Amazon EMR rejeitará a solicitação de um novo cluster.

O Amazon EMR 6.12 e versões posteriores oferece suporte à integração LDAP com as seguintes aplicações:
+ Apache Livy
+ Apache Hive até HiveServer 2 () HS2
+ Trino
+ Presto
+ Hue

Também é possível instalar as seguintes aplicações em um cluster do EMR e configurá-las para atender a suas necessidades de segurança:
+ Apache Spark
+ Apache Hadoop

## Atributos compatíveis com LDAP para Amazon EMR
<a name="ldap-considerations-features"></a>

É possível usar os seguintes recursos do Amazon EMR com a integração do LDAP:

**nota**  
Para manter as credenciais LDAP seguras, é necessário usar criptografia em trânsito para proteger o fluxo de dados dentro e fora do cluster. Para obter mais informações sobre criptografia em trânsito, consulte [Criptografia de dados em repouso e em trânsito com o Amazon EMR](emr-data-encryption.md).
+ Criptografia em trânsito (obrigatório) e em repouso
+ Grupos de instâncias, frotas de instâncias e instâncias spot
+ Reconfiguração de aplicações em um cluster em execução
+ Criptografia do lado do servidor (SSE) do EMRFS

## Atributos não compatíveis
<a name="ldap-considerations-limitations"></a>

Considere as seguintes limitações ao usar a integração do LDAP com Amazon EMR:
+ O Amazon EMR desabilita etapas para clusters com o LDAP habilitado.
+ O Amazon EMR não oferece suporte a funções e AWS Lake Formation integrações de tempo de execução para clusters com LDAP habilitado.
+ O Amazon EMR não oferece suporte a LDAP com StartTLS.
+ O Amazon EMR não oferece suporte ao modo de alta disponibilidade (clusters com múltiplos nós primários) para clusters com LDAP habilitado.
+ Não é possível alternar credenciais ou certificados de vinculação para clusters com LDAP habilitado. Se algum desses campos tiver sido alternado, é recomendável iniciar um novo cluster com as credenciais ou certificados de vinculação atualizados.
+ Você deve usar bases de pesquisa exatas com o LDAP. A base de pesquisa de usuários e grupos do LDAP não oferece suporte aos filtros de pesquisa do LDAP.

# Configurar e iniciar um cluster do EMR com LDAP
<a name="ldap-setup"></a>

Esta seção aborda como configurar o Amazon EMR para uso com autenticação LDAP.

**Topics**
+ [Adicione AWS Secrets Manager permissões à função de instância do Amazon EMR](ldap-setup-asm.md)
+ [Criar a configuração de segurança do Amazon EMR para integração com LDAP](ldap-setup-security.md)
+ [Iniciar um cluster do EMR que se autentique com LDAP](ldap-setup-launch.md)

# Adicione AWS Secrets Manager permissões à função de instância do Amazon EMR
<a name="ldap-setup-asm"></a>

O Amazon EMR usa um perfil de serviço do IAM para realizar ações a seu favor a fim de provisionar e gerenciar clusters. O perfil de serviço para instâncias do EC2 do cluster, também chamada de *perfil de instância do EC2 para Amazon EMR*, é um tipo especial de perfil de serviço que o Amazon EMR atribui ao iniciar cada instância do EC2 do cluster.

Para definir permissões para que um cluster do EMR interaja com dados do Amazon S3 e outros serviços da AWS , defina um perfil de instância personalizado do Amazon EC2 no lugar de `EMR_EC2_DefaultRole` ao executar o cluster. Para obter mais informações, consulte [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md) e [Personalização de perfis do IAM com o Amazon EMR](emr-iam-roles-custom.md).

Adicione as seguintes instruções ao perfil de instância padrão do EC2 para permitir que o Amazon EMR marque sessões e acesse AWS Secrets Manager aquelas que armazenam certificados LDAP.

```
    {
      "Sid": "AllowAssumeOfRolesAndTagging",
      "Effect": "Allow",
      "Action": ["sts:TagSession", "sts:AssumeRole"],
      "Resource": [
        "arn:aws:iam::111122223333:role/LDAP_DATA_ACCESS_ROLE_NAME",
        "arn:aws:iam::111122223333:role/LDAP_USER_ACCESS_ROLE_NAME"
      ]
    },
    {
        "Sid": "AllowSecretsRetrieval",
        "Effect": "Allow",
        "Action": "secretsmanager:GetSecretValue",
        "Resource": [
            "arn:aws:secretsmanager:us-east-1:111122223333:secret:LDAP_SECRET_NAME*",
            "arn:aws:secretsmanager:us-east-1:111122223333:secret:ADMIN_LDAP_SECRET_NAME*"
        ]
    }
```

**nota**  
Suas solicitações de cluster falharão se você esquecer o caractere curinga `*` no final do nome do segredo ao definir as permissões do Secrets Manager. O curinga representa as versões do segredo.  
Você também deve limitar o escopo da AWS Secrets Manager política somente aos certificados que seu cluster precisa para provisionar instâncias.

# Criar a configuração de segurança do Amazon EMR para integração com LDAP
<a name="ldap-setup-security"></a>

Antes de iniciar um cluster do EMR com integração com LDAP, use as etapas descritas em [Crie uma configuração de segurança com o console do Amazon EMR ou com o AWS CLI](emr-create-security-configuration.md) para criar uma configuração de segurança do Amazon EMR para o cluster. Complete as seguintes configurações no bloco de `LDAPConfiguration` em `AuthenticationConfiguration` ou nos campos correspondentes na seção **Configurações de segurança** do console do Amazon EMR:

**`EnableLDAPAuthentication`**  
Opção do console: **Protocolo de autenticação: LDAP**  
Para usar a integração com LDAP, defina essa opção como `true` ou selecione-a como protocolo de autenticação ao criar um cluster no console. Por padrão, `EnableLDAPAuthentication` é `true` ao criar uma configuração de segurança no console do Amazon EMR.

**`LDAPServerURL`**  
Opção do console: **local do servidor LDAP**  
A localização do servidor LDAP, incluindo o prefixo: `ldaps://location_of_server`.

**`BindCertificateARN`**  
Opção do console: **certificado SSL LDAP**  
O AWS Secrets Manager ARN que contém o certificado para assinar o certificado SSL que o servidor LDAP usa. Se seu servidor LDAP for assinado por uma Autoridade Certificadora (CA) pública, você poderá fornecer um AWS Secrets Manager ARN com um arquivo em branco. Para obter mais informações sobre como armazenar seu certificado no Secrets Manager, consulte [Armazene certificados TLS em AWS Secrets Manager](emr-ranger-tls-certificates.md).

**`BindCredentialsARN`**  
Opção do console: **credenciais de vinculação do servidor LDAP**  
Um AWS Secrets Manager ARN que contém as credenciais de associação do usuário administrador do LDAP. As credenciais são armazenadas como objeto JSON. Há somente um par de chave-valor nesse segredo; a chave no par é o nome de usuário e o valor é a senha. Por exemplo, .`{"uid=admin,cn=People,dc=example,dc=com": "AdminPassword1"}` Esse é um campo opcional, a menos que você habilite o login SSH para o cluster do EMR. Em muitas configurações, as instâncias do Active Directory exigem credenciais de vinculação para permitir que o SSSD sincronize usuários.

**`LDAPAccessFilter`**  
Opção do console: **filtro de acesso LDAP**  
Especifica o subconjunto de objetos no servidor LDAP que podem ser autenticados. Por exemplo, para conceder acesso a todos os usuários com a classe de objeto `posixAccount` no servidor LDAP, defina o filtro de acesso como `(objectClass=posixAccount)`.

**`LDAPUserSearchBase`**  
Opção do console: **base de pesquisa de usuários LDAP**  
A base de pesquisa à qual seus usuários pertencem no servidor LDAP. Por exemplo, .`cn=People,dc=example,dc=com`

**`LDAPGroupSearchBase`**  
Opção de console: **base de pesquisa de grupos LDAP**  
A base de pesquisa à qual seus grupos pertencem no servidor LDAP. Por exemplo, .`cn=Groups,dc=example,dc=com`

**`EnableSSHLogin`**  
Opção do console: **login SSH**  
Especifica se a autenticação por senha com credenciais LDAP deverá ou não ser permitida. Não é recomendável habilitar essa opção. Os pares de chaves são uma rota mais segura para permitir o acesso aos clusters do EMR. Esse campo é opcional e usa o padrão `false`. 

**`LDAPServerType`**  
Opção de console: **tipo de servidor LDAP**  
Especifica o tipo de servidor LDAP ao qual o Amazon EMR se conectará. As opções compatíveis são Active Directory e OpenLDAP. Outros tipos de servidor LDAP podem funcionar, mas o Amazon EMR não é oficialmente compatível com outros tipos de servidor. Para obter mais informações, consulte [Componentes LDAP para Amazon EMR](ldap-components.md).

**`ActiveDirectoryConfigurations`**  
Um sub-bloco necessário para configurações de segurança que utilizam o tipo de servidor Active Directory.

**`ADDomain`**  
Opção do console: **domínio do Active Directory**  
O nome de domínio usado para criar o nome da entidade principal do usuário (UPN) para autenticação do usuário com configurações de segurança que usam o tipo de servidor Active Directory.

## Considerações sobre configurações de segurança com LDAP e Amazon EMR
<a name="ldap-setup-security-considerations"></a>
+ Para criar uma configuração de segurança com a integração LDAP do Amazon EMR, é necessário usar criptografia em trânsito. Para obter informações sobre criptografia em trânsito, consulte [Criptografia de dados em repouso e em trânsito com o Amazon EMR](emr-data-encryption.md).
+ Não é possível definir a configuração do Kerberos na mesma configuração de segurança. O Amazon EMR provisiona um KDC que é dedicado automaticamente e gerencia a senha de administrador para o KDC. Os usuários não poderão acessar essa senha de administrador.
+ Você não pode definir funções de tempo de execução do IAM e AWS Lake Formation na mesma configuração de segurança.
+ `LDAPServerURL` deve ter o protocolo `ldaps://` em seu valor.
+ `LDAPAccessFilter` não pode estar vazio. 

## Usar o LDAP com a integração do Apache Ranger para Amazon EMR
<a name="ldap-setup-ranger"></a>

Com a integração LDAP para Amazon EMR, é possível se integrar ainda mais com o Apache Ranger. Ao inserir seus usuários LDAP no Ranger, você pode associar esses usuários a um servidor de políticas Apache Ranger para integração com o Amazon EMR e outras aplicações. Para isso, defina o campo `RangerConfiguration` em `AuthorizationConfiguration` na configuração de segurança que você usa com o cluster do LDAP. Para obter mais informações sobre como definir a configuração de segurança, consulte [Criar a configuração de segurança do EMR](emr-ranger-security-config.md).

Ao usar o LDAP com o Amazon EMR, não é necessário fornecer uma `KerberosConfiguration` com a integração com o Amazon EMR para Apache Ranger. 

# Iniciar um cluster do EMR que se autentique com LDAP
<a name="ldap-setup-launch"></a>

Realize as etapas a seguir para iniciar um cluster do EMR com LDAP ou Active Directory. 

1. Configure o ambiente:
   + Certifique-se de que os nós em seu cluster do EMR possam se comunicar com o Amazon S3 e. AWS Secrets Manager Para obter mais informações sobre como modificar seu perfil do perfil de instância do EC2 para se comunicar com esses serviços, consulte [Adicione AWS Secrets Manager permissões à função de instância do Amazon EMR](ldap-setup-asm.md).
   + Se você planeja executar seu cluster do EMR em uma sub-rede privada, você deve usar endpoints da AWS PrivateLink Amazon VPC ou usar a tradução de endereços de rede (NAT) para configurar a VPC para se comunicar com o S3 e o Secrets Manager. Para obter mais informações, consulte [AWS PrivateLink and VPC endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html) e [NAT instances](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_NAT_Instance.html) no *Amazon VPC Getting Started Guide*.
   + Verifique se há conectividade de rede entre o cluster do EMR e o servidor LDAP. Seus clusters do EMR devem acessar o servidor LDAP pela rede. Os nós primário, central e de tarefa do cluster se comunicam com o servidor LDAP para sincronizar os dados do usuário. Se o servidor LDAP for executado no Amazon EC2, atualize o grupo de segurança do EC2 para aceitar o tráfego do cluster do EMR. Para obter mais informações, consulte [Adicione AWS Secrets Manager permissões à função de instância do Amazon EMR](ldap-setup-asm.md).

1. Criar uma configuração de segurança do Amazon EMR para integração com LDAP. Para obter mais informações, consulte [Criar a configuração de segurança do Amazon EMR para integração com LDAP](ldap-setup-security.md).

1. Agora que você está configurado, use as etapas descritas em [Inicialização de um cluster do Amazon EMR](emr-gs.md#emr-getting-started-launch-sample-cluster) para iniciar o cluster com as seguintes configurações:
   + Selecione Amazon EMR versão 6.12 ou posterior. É recomendável usar a versão mais recente do Amazon EMR.
   + Especifique ou selecione somente aplicações para o cluster compatíveis com LDAP. Para obter uma lista de aplicações compatíveis com LDAP com o Amazon EMR, consulte [Suporte de aplicações e considerações com o LDAP para Amazon EMR](ldap-considerations.md).
   + Aplique a configuração de segurança criada na etapa anterior.

# Exemplos usando o LDAP com Amazon EMR
<a name="ldap-examples"></a>

Depois de [provisionar um cluster do EMR que usa a integração com LDAP](ldap-setup-launch.md), você pode fornecer suas credenciais LDAP para qualquer [aplicação compatível](ldap-considerations.md#ldap-considerations-apps) por meio de seu mecanismo de autenticação de nome de usuário e senha incorporado. Esta página mostra alguns exemplos.

## Usar a autenticação LDAP com o Apache Hive
<a name="ldap-examples-"></a>

**Example - Apache Hive**  
O comando de exemplo a seguir inicia uma sessão do Apache Hive por meio de HiveServer 2 e Beeline:  

```
beeline -u "jdbc:hive2://$HOSTNAME:10000/default;ssl=true;sslTrustStore=$TRUSTSTORE_PATH;trustStorePassword=$TRUSTSTORE_PASS"  -n LDAP_USERNAME -p LDAP_PASSWORD
```

## Usar a autenticação LDAP com o Apache Livy
<a name="ldap-examples-livy"></a>

**Example - Apache Livy**  
O comando de exemplo a seguir inicia uma sessão do Livy por cURL. Substitua `ENCODED-KEYPAIR` com uma string codificada em Base64 por `username:password`.  

```
curl -X POST --data '{"proxyUser":"LDAP_USERNAME","kind": "pyspark"}' -H "Content-Type: application/json" -H "Authorization: Basic ENCODED-KEYPAIR" DNS_OF_PRIMARY_NODE:8998/sessions
```

## Usar autenticação do LDAP com o Presto
<a name="ldap-examples-presto"></a>

**Example - Presto**  
O comando de exemplo a seguir inicia uma sessão do Presto pela CLI do Presto:  

```
presto-cli --user "LDAP_USERNAME" --password --catalog hive
```
Após executar esse comando, digite a senha do LDAP no prompt.

## Usar a autenticação LDAP com o Trino
<a name="ldap-examples-trino"></a>

**Example - Trino**  
O comando de exemplo a seguir inicia uma sessão do Trino pela CLI do Trino:  

```
trino-cli --user "LDAP_USERNAME" --password --catalog hive
```
Após executar esse comando, digite a senha do LDAP no prompt.

## Usar a autenticação LDAP com o Hue
<a name="ldap-examples-hue"></a>

Você pode acessar a interface do usuário do Hue por um túnel SSH criado no cluster ou pode configurar um servidor proxy para transmitir publicamente a conexão com o Hue. Como o Hue não é executado no modo HTTPS por padrão, é recomendável usar uma camada de criptografia adicional para garantir que a comunicação entre os clientes e a interface do usuário do Hue seja criptografada com HTTPS. Isso reduz a chance de expor acidentalmente as credenciais do usuário em texto sem formatação.

Para usar a interface do usuário do Hue, abra a interface do usuário do Hue no navegador e digite a senha do nome de usuário LDAP para fazer login. Se as credenciais estiverem corretas, o Hue fará login e usará sua identidade para autenticar você em todas as aplicações compatíveis.

## Usar SSH para autenticação por senha e tíquetes do Kerberos para outras aplicações
<a name="ldap-examples-ssh"></a>

**Importante**  
Não é recomendável usar a autenticação por senha com um cluster do EMR.

Você pode usar suas credenciais LDAP para fazer SSH em um cluster do EMR. Para isso, defina a configuração `EnableSSHLogin` como `true` na configuração de segurança do Amazon EMR usada para iniciar o cluster. Depois, use o comando a seguir para SSH no cluster depois que ele for iniciado:

```
ssh username@EMR_PRIMARY_DNS_NAME
```

Após executar esse comando, digite a senha do LDAP no prompt.

O Amazon EMR inclui um script no cluster que permite aos usuários gerar um arquivo keytab e um tíquete do Kerberos para usar com aplicações compatíveis que não aceitam credenciais LDAP diretamente. Alguns desses aplicativos incluem `spark-submit` Spark SQL e. PySpark

Execute `ldap-kinit` e siga as instruções. Se a autenticação tiver êxito, o arquivo keytab do Kerberos será exibido no diretório inicial com um tíquete do Kerberos válido. Use o tíquete do Kerberos para executar aplicações como você faria em qualquer ambiente kerberizado.