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á.
Usando a LDAP autenticação para o Presto na Amazon EMR
Siga as etapas nesta seção para configurarLDAP. Consulte cada etapa para obter exemplos e links para mais informações.
Etapas para configurar a LDAP autenticação
- Etapa 1: Colete informações sobre seu LDAP servidor e copie o certificado do servidor para o Amazon S3
- Etapa 2: definir uma configuração de segurança
- Etapa 3: criar uma configuração JSON com as propriedades do Presto para LDAP
- Etapa 4: Crie o script para copiar o certificado LDAP do servidor e carregá-lo no Amazon S3
- Etapa 5: criar um cluster
Etapa 1: Colete informações sobre seu LDAP servidor e copie o certificado do servidor para o Amazon S3
Você precisará das informações e dos itens do seu LDAP servidor na seção a seguir para configurar a LDAP autenticação.
O endereço IP ou nome do host do LDAP servidor
O coordenador do Presto no nó EMR principal da Amazon deve ser capaz de acessar o LDAP servidor no endereço IP ou nome do host especificado. Por padrão, o Presto se comunica com o LDAP servidor usando a porta LDAPS 636. Se sua LDAP implementação exigir uma porta personalizada, você pode especificá-la usando a ldap.url
propriedade com o Amazon EMR 5.16.0 ou posterior, ou usando authentication.ldap.url
com versões anteriores. Substitua a porta personalizada em 636
, conforme mostrado nos exemplos da classificação de configuração presto-config
em Etapa 3: criar uma configuração JSON com as propriedades do Presto para LDAP. Verifique se todos os firewalls e grupos de segurança permitem o tráfego de entrada e saída na porta 636 (ou na porta personalizada) e também na porta 8446 (ou na porta personalizada), que é usada para comunicações do cluster interno.
O certificado LDAP do servidor
Você deve carregar o arquivo do certificado em um local seguro no Amazon S3. Para obter mais informações, consulte Como carregar arquivos e pastas em um bucket do S3 no Guia do usuário do Amazon Simple Storage Service. Crie uma ação de bootstrap que copie esse certificado do Amazon S3 em cada nó do cluster quando esse cluster é iniciado. Em Etapa 4: Crie o script para copiar o certificado LDAP do servidor e carregá-lo no Amazon S3. O certificado de exemplo é s3://amzn-s3-demo-bucket/ldap_server.crt
.
As configurações LDAP do servidor para vinculação anônima
Se a vinculação anônima estiver desativada no PrestoDB, você precisará do ID de usuário UID () e da senha de uma conta com permissões para se vincular ao servidor para que LDAP o servidor PrestoDB possa estabelecer uma conexão. Você especifica a senha UID e usando as internal-communication.authentication.ldap.password
propriedades internal-communication.authentication.ldap.user
e na classificação presto-config
de configuração. O Amazon EMR 5.10.0 não oferece suporte a essas configurações, portanto, a vinculação anônima deve ser suportada no LDAP servidor quando você usa esta versão de lançamento.
Observe que o Trino não exige a configuração de vinculação anônima.
Para obter o status de vinculação anônima no LDAP servidor
-
Use o comando ldapwhoami
do cliente Linux, conforme mostrado no exemplo a seguir: ldapwhoami -x -H ldaps://
LDAPServerHostNameOrIPAddress
Se a associação anônima não for permitida, o comando retornará o seguinte:
ldap_bind: Inappropriate authentication (48) additional info: anonymous bind disallowed
Para verificar se uma conta tem permissões para um LDAP servidor que usa autenticação simples
-
Use o comando ldapwhoami
do cliente Linux, conforme mostrado no exemplo a seguir. O exemplo usa um usuário fictício, presto
, armazenado em um LDAP servidor Open executado em uma EC2 instância com o nome de host fictícioip-xxx-xxx-xxx-xxx.ec2.internal
. O usuário está associado à unidade organizacional (OU)admins
e com a senha123456
:ldapwhoami -x -w "
123456
" -D uid=presto
,ou=admins
,dc=ec2,dc=internal -H ldaps://ip-xxx-xxx-xxx-xxx.ec2.internal
Se a conta for válida e tiver as permissões adequadas, o comando retornará:
dn:uid=presto,ou=admins,dc=ec2,dc=internal
As configurações de exemplo em Etapa 3: criar uma configuração JSON com as propriedades do Presto para LDAP incluem essa conta para maior clareza, com exceção do exemplo de 5.10.0, em que ela não é compatível. Se o LDAP servidor usar associação anônima, remova os internal-communication.authentication.ldap.user
pares internal-communication.authentication.ldap.password
nome/valor e.
O nome LDAP distinto (DN) para usuários do Presto
Ao especificar a LDAP configuração do Presto, você especifica um padrão de vinculação que consiste ${USER}
em uma unidade organizacional (OU) e componentes de domínio adicionais (DCs). O Presto ${USER}
substitui pelo ID de usuário (UID) real de cada usuário durante a autenticação por senha para corresponder ao nome distinto (DN) que esse padrão de associação especifica. Você precisa do OUs que os usuários qualificados pertencem e delesDCs. Por exemplo, para permitir que os usuários da OU admins
no domínio corp.example.com
autentiquem para o Presto, especifique ${USER},ou=admins,dc=corp,dc=example,dc=com
como o padrão de associação do usuário.
nota
Ao usar AWS CloudFormation, você precisa usar a função Fn: :Sub para substituí-la pela ID ${USER}
de usuário real (). UID Para obter mais informações, consulte o tópico Fn::Sub no Guia do usuário do AWS CloudFormation .
Ao usar o Amazon EMR 5.10.0, você pode especificar somente um desses padrões. Usando o Amazon EMR 5.11.0 ou posterior, você pode especificar vários padrões separados por dois pontos (:). Os usuários que tentam autenticar para o Presto são comparados com o primeiro padrão, o segundo, e assim por diante. Para ver um exemplo, consulte Etapa 3: criar uma configuração JSON com as propriedades do Presto para LDAP.
Etapa 2: definir uma configuração de segurança
Crie uma configuração de segurança com a criptografia em trânsito habilitada. Para obter mais informações, consulte Criar uma configuração de segurança no Amazon EMR Management Guide. Os artefatos de criptografia que você fornece ao configurar a criptografia em trânsito são usados para criptografar a comunicação interna entre os nós Presto. Para obter mais informações, consulte Fornecer certificados para criptografia de dados em trânsito. O certificado LDAP do servidor é usado para autenticar as conexões do cliente com o servidor Presto.
Etapa 3: criar uma configuração JSON com as propriedades do Presto para LDAP
Você usa a classificação presto-config
de configuração para definir as propriedades do Presto paraLDAP. O formato e o conteúdo do presto-config
são ligeiramente diferentes dependendo da versão de EMR lançamento da Amazon e da instalação do Presto (PrestoDB ou Trino). Exemplos de diferenças de configuração serão fornecidos posteriormente nesta seção. Para obter mais informações, consulte Configurar aplicações.
As etapas a seguir pressupõem que você salve os JSON dados em um arquivo, MyPrestoConfig.json
. Se você usar o console, faça o upload do arquivo em um local seguro no Amazon S3 para que você possa referenciá-lo ao criar o cluster. Se você usar o AWS CLI, poderá referenciar o arquivo localmente.
exemplo Amazon EMR 6.1.0 e versões posteriores com Presto SQL (Trino)
O exemplo a seguir usa o nome do LDAP host de Etapa 1: Colete informações sobre seu LDAP servidor e copie o certificado do servidor para o Amazon S3 para se autenticar no LDAP servidor para vinculação. Dois padrões de associação de usuário são especificados, o que indica que os usuários dentro da admins
datascientists
OU e da OU no LDAP servidor estão qualificados para autenticação no servidor Trino como usuários. Os padrões de associação são separados com uma vírgula (:
).
EMRAs versões 6.4.0 e posteriores da Amazon usam o novo nome Trino em vez de Presto. SQL Se você usa Trino, substitua
na seguinte classificação de configuração com configuração prestosql
trino-config
e
comprestosql-password-authenticator
trino-password-authenticator
.
[ { "Classification":"
prestosql-config
", "Properties":{ "http-server.authentication.type":"PASSWORD" } }, { "Classification":"prestosql-password-authenticator
", "Properties":{ "password-authenticator.name":"ldap", "ldap.url":"ldaps://ip-xxx-xxx-xxx-xxx.ec2.internal:636", "ldap.user-bind-pattern": "uid=${USER},ou=admins,dc=ec2,dc=internal:uid=${USER},ou=datascientists,dc=ec2,dc=internal" } } ]
exemplo Amazon EMR 5.16.0 e versões posteriores
O exemplo a seguir usa o ID LDAP do usuário e a senha e o nome do LDAP host Etapa 1: Colete informações sobre seu LDAP servidor e copie o certificado do servidor para o Amazon S3 para autenticação no LDAP servidor para vinculação. Dois padrões de associação de usuário são especificados, o que indica que os usuários dentro da admins
datascientists
OU e da OU no LDAP servidor estão qualificados para autenticação no servidor Presto como usuários. Os padrões de associação são separados com uma vírgula (:
).
[{ "Classification": "presto-config", "Properties": { "http-server.authentication.type": "PASSWORD" } }, { "Classification": "presto-password-authenticator", "Properties": { "password-authenticator.name": "ldap", "ldap.url": "ldaps://
ip-xxx-xxx-xxx-xxx.ec2.internal
:636", "ldap.user-bind-pattern": "uid=${USER},ou=admins
,dc=ec2,dc=internal:uid=${USER},ou=datascientists
,dc=ec2,dc=internal", "internal-communication.authentication.ldap.user": "presto
", "internal-communication.authentication.ldap.password": "123456
" } }]
exemplo Amazon EMR 5.11.0 a 5.15.0
O formato da classificação de configuração presto-config
é um pouco diferente para essas versões. O exemplo a seguir especifica os mesmos parâmetros que o exemplo anterior.
[{ "Classification": "presto-config", "Properties": { "http-server.authentication.type": "LDAP", "authentication.ldap.url": "ldaps://
ip-xxx-xxx-xxx-xxx.ec2.internal
:636", "authentication.ldap.user-bind-pattern": "uid=${USER},ou=admins
,dc=ec2,dc=internal:uid=${USER},ou=datascientists
,dc=ec2,dc=internal", "internal-communication.authentication.ldap.user": "presto
", "internal-communication.authentication.ldap.password": "123456
" } }]
exemplo Amazon EMR 5.10.0
O Amazon EMR 5.10.0 oferece suporte somente à vinculação anônima, portanto, essas entradas são omitidas. Além disso, apenas um único padrão de associação pode ser especificado.
[{ "Classification": "presto-config", "Properties": { "http-server.authentication.type": "LDAP", "authentication.ldap.url": "ldaps://
ip-xxx-xxx-xxx-xxx.ec2.internal
:636", "ldap.user-bind-pattern": "uid=${USER},ou=prestousers
,dc=ec2,dc=internal" } }]
Etapa 4: Crie o script para copiar o certificado LDAP do servidor e carregá-lo no Amazon S3
Crie um script que copie o arquivo do certificado em cada dó no cluster e o adicione ao repositório de chaves. Crie o script usando um editor de texto, salve-o e carregue-o no Amazon S3. EmEtapa 5: criar um cluster, o arquivo de script é referenciado como s3://amzn-s3-demo-bucket/LoadLDAPCert.sh
.
O script de exemplo a seguir usa a senha padrão do keystore, changeit
. Recomendamos que você se conecte ao nó principal depois de criar o cluster e alterar a senha do keystore usando o comando keytool.
#!/bin/bash aws s3 cp s3://amzn-s3-demo-bucket/ldap_server.crt . sudo keytool -import -keystore /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/lib/security/cacerts -trustcacerts -alias ldap_server -file ./ldap_server.crt -storepass
changeit
-noprompt
Etapa 5: criar um cluster
Ao criar o cluster, você especifica o Presto e outros aplicativos que deseja que EMR a Amazon instale. Os exemplos a seguir também fazem referência às propriedades de classificação de configuração em umJSON, mas você também pode especificar a classificação de configuração em linha.
Para criar um cluster Presto com LDAP autenticação usando o console da Amazon EMR
Navegue até o novo EMR console da Amazon e selecione Alternar para o console antigo na navegação lateral. Para obter mais informações sobre o que esperar ao alternar para o console antigo, consulte Usar o console antigo.
-
Escolha Create cluster (Criar cluster), Go to advanced options (Ir para opções avançadas).
-
Escolha o Presto junto com outros aplicativos para EMR a Amazon instalar e, em Configuração de software, selecione a versão da Amazon EMR a ser usada. LDAPa autenticação é suportada somente com o Amazon EMR 5.10.0 e versões posteriores.
-
Em Editar configurações de software, escolha Carregar JSON do S3, insira a localização no Amazon S3 JSON do arquivo de configuração que você criou e, Etapa 3: criar uma configuração JSON com as propriedades do Presto para LDAP em seguida, escolha Avançar.
-
Configure os recursos de hardware e rede do cluster e, em seguida, selecione Next (Próximo).
-
Selecione Bootstrap Actions (Ações de bootstrap). Em Add bootstrap action (Adicionar ação de bootstrap), selecione Custom action (Personalizar ação) e, em seguida, selecione Configure and add (Configurar e adicionar).
-
Insira um nome para a ação de bootstrap, insira a localização do script que você criouEtapa 4: Crie o script para copiar o certificado LDAP do servidor e carregá-lo no Amazon S3, por exemplo, s3://amzn-s3-demo-bucket/L oadLDAPCert .sh, e escolha Adicionar.
-
Em General Options (Opções gerais), Tags e Additional Options (Opções adicionais), selecione as configurações adequadas para o seu aplicativo e, em seguida, selecione Next (Próximo).
-
Selecione Authentication and encryption (Autenticação e criptografia) e, em seguida, selecione a Security configuration (Configuração de segurança) que você criou em Etapa 2: definir uma configuração de segurança.
-
Selecione outras opções de segurança conforme adequado para o seu aplicativo e, em seguida, selecione Create cluster (Criar cluster).
Para criar um cluster Presto com LDAP autenticação usando o AWS CLI
-
Use o comando
aws emr create-cluster
. No mínimo, especifique o aplicativo do Presto e também a classificação de configuração, o script de bootstrap e a configuração de segurança do Presto que você criou nas etapas anteriores. O exemplo a seguir faz referência ao arquivo de configuração como um JSON arquivo salvo no mesmo diretório em que você executa o comando. Por outro lado, o script de bootstrap deve ser salvo no Amazon S3. O exemplo a seguir usas3://amzn-s3-demo-bucket/LoadLDAPCert.sh
.nota
Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).
aws emr create-cluster --applications Name=presto --release-label emr-5.16.0 \ --use-default-roles --ec2-attributes KeyName=
MyKeyPair
,SubnetId=subnet-1234ab5
\ --instance-count 3 --instance-type m5.xlarge --region us-west-2 --name "MyPrestoWithLDAPAuth" \ --bootstrap-actions Name="Distribute LDAP server cert",Path="s3://amzn-s3-demo-bucket/LoadLDAPCert.sh" \ --security-configuration MyPrestoLDAPSecCfg --configurations file://MyPrestoConfig.json