在 Amazon EMR 上使用 LDAP 的示例 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon EMR 上使用 LDAP 的示例

预置使用 LDAP 集成的 EMR 集群后,您可以通过其内置的用户名和密码身份验证机制向任何支持的应用程序提供 LDAP 凭证。本页显示一些示例。

在 Apache Hive 上使用 LDAP 身份验证

例 – Apache Hive

以下示例命令通过 HiveServer 2 和 Beeline 启动 Apache Hive 会话:

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

在 Apache Livy 上使用 LDAP 身份验证

例 – Apache Livy

以下示例命令通过 cURL 启动 Livy 会话。将 ENCODED-KEYPAIR 替换为 username:password 的 Base64 编码字符串。

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

在 Presto 上使用 LDAP 身份验证

例 – Presto

以下示例命令通过 Presto CLI 启动 Presto 会话:

presto-cli --user "LDAP_USERNAME" --password --catalog hive

运行此命令后,在系统提示时输入 LDAP 密码。

在 Trino 上使用 LDAP 身份验证

例 Trino

以下示例命令通过 Trino CLI 启动 Trino 会话:

trino-cli --user "LDAP_USERNAME" --password --catalog hive

运行此命令后,在系统提示时输入 LDAP 密码。

在 Hue 上使用 LDAP 身份验证

您可以通过在集群上创建的 SSH 隧道访问 Hue 用户界面,也可以将代理服务器设置为公开广播与 Hue 的连接。由于 Hue 默认不在 HTTPS 模式下运行,因此我们建议您使用额外的加密层,以确保客户端与 Hue 用户界面之间的通信使用 HTTPS 加密。这样可以减少您意外以纯文本形式公开用户凭证的可能性。

要使用 Hue 用户界面,请在浏览器中打开 Hue 用户界面,然后输入您的 LDAP 用户名密码进行登录。如果凭证正确,Hue 会将您登录并使用您的身份在所有支持的应用程序中对您进行身份验证。

使用 SSH 进行密码身份验证,对其他应用程序使用 Kerberos 票证

重要

我们不建议您使用密码身份验证来通过 SSH 访问 EMR 集群。

您可以使用您的 LDAP 凭证通过 SSH 访问 EMR 集群。为此,请在用于启动集群的 Amazon EMR 安全配置中将 EnableSSHLogin 配置设置为 true。然后,在集群启动后,使用以下命令通过 SSH 连接到集群:

ssh username@EMR_PRIMARY_DNS_NAME

运行此命令后,在系统提示时输入 LDAP 密码。

Amazon EMR 包含一个集群脚本,允许用户生成 Kerberos keytab 文件和票证,用于不直接接受 LDAP 凭证的受支持应用程序。其中一些应用程序包括 spark-submit Spark SQL 和 PySpark。

运行 ldap-kinit 并按照提示操作。如果身份验证成功,Kerberos keytab 文件将与有效的 Kerberos 票证一起出现在您的主目录中。使用 Kerberos 票证像在任何使用 Kerberos 的环境中一样运行应用程序。