DirectoryService 部分 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

DirectoryService 部分

注意

在 Amazon ParallelCluster 版本 3.1.1 中添加了对 DirectoryService 的支持。

(可选)支持多用户访问的集群的目录服务设置。

Amazon ParallelCluster 使用基于系统安全服务进程守护程序 (SSSD)支持的轻型目录访问协议 (LDAP) 的 Active Directory (AD) 来管理支持集群多用户访问的权限。有关更多信息,请参阅《Amazon Directory Service 管理员指南》中的什么是 Amazon Directory Service?

我们建议您使用基于 TLS/SSL 的 LDAP(简称 LDAPS),以确保通过加密通道传输所有潜在敏感信息。

DirectoryService: DomainName: string DomainAddr: string PasswordSecretArn: string DomainReadOnlyUser: string LdapTlsCaCert: string LdapTlsReqCert: string LdapAccessFilter: string GenerateSshKeysForUsers: boolean AdditionalSssdConfigs: dict

更新策略:必须停止计算实例集才能更改此设置以进行更新。

DirectoryService 属性

注意

如果您计划在没有互联网访问权限的单个子网中使用 Amazon ParallelCluster,请参阅无互联网访问权限的单个子网中的 Amazon ParallelCluster 以了解更多要求。

DomainName必需String

用于指示身份信息的 Active Directory (AD) 域。

DomainName 同时接受完全限定域名 (FQDN) 和 LDAP 可分辨名称 (DN) 格式。

  • FQDN 示例:corp.example.com

  • LDAP DN 示例:DC=corp,DC=example,DC=com

此属性对应于名为 ldap_search_base 的 sssd-ldap 参数。

更新策略:必须停止计算实例集才能更改此设置以进行更新。

DomainAddr必需String

指向用作 LDAP 服务器的 AD 域控制器的一个或多个 URI。该 URI 对应于名为 ldap_uri 的 SSSD-LDAP 参数。该值可以是逗号分隔的 URI 字符串。要使用 LDAP,必须在每个 URI 的开头添加 ldap://

示例值:

ldap://192.0.2.0,ldap://203.0.113.0 # LDAP ldaps://192.0.2.0,ldaps://203.0.113.0 # LDAPS without support for certificate verification ldaps://abcdef01234567890.corp.example.com # LDAPS with support for certificate verification 192.0.2.0,203.0.113.0 # Amazon ParallelCluster uses LDAPS by default

如果使用具有证书验证功能的 LDAPS,则 URI 必须是主机名。

如果使用没有证书验证功能或 LDAP 的 LDAPS,则 URI 可以是主机名或 IP 地址。

请使用基于 TLS/SSL 的 LDAP (LDAPS),以避免通过未加密的通道传输密码和其他敏感信息。如果 Amazon ParallelCluster 找不到协议,它会在每个 URI 或主机名的开头添加 ldaps://

更新策略:必须停止计算实例集才能更改此设置以进行更新。

PasswordSecretArn必需String

包含 DomainReadOnlyUser 纯文本密码的 Amazon Secrets Manager 密钥的 Amazon 资源名称 (ARN)。密钥的内容对应于名为 ldap_default_authtok 的 SSSD-LDAP 参数。

注意

使用Amazon Secrets Manager控制台创建密钥时,请务必选择 “其他类型的密钥”,选择纯文本,并且仅在密钥中包含密码文本。

有关如何使用Amazon Secrets Manager创建密钥的更多信息,请参阅创建Amazon Secrets Manager密钥

在请求身份信息时,LDAP 客户端以 DomainReadOnlyUser 身份使用密码对 AD 域进行身份验证。

如果用户拥有 DescribeSecret 的权限,则会验证 PasswordSecretArn。如果指定的密钥存在,则 PasswordSecretArn 有效。如果用户 IAM 策略不包括 DescribeSecret,则不验证 PasswordSecretArn 并显示警告消息。有关更多信息,请参阅基本 Amazon ParallelCluster pcluster 用户策略

当密钥的值发生变化时,不会 自动更新集群。要针对新密钥值更新集群,必须使用 pcluster update-compute-fleet 命令停止计算实例集,然后从头节点内运行以下命令。

$ sudo /opt/parallelcluster/scripts/directory_service/update_directory_service_password.sh

更新策略:必须停止计算实例集才能更改此设置以进行更新。

DomainReadOnlyUser必需String

在对集群用户登录进行身份验证时,用于查询 AD 域以获取身份信息的身份。它对应于名为 ldap_default_bind_dn 的 SSSD-LDAP 参数。对此值使用您的 AD 身份信息。

以节点上特定 LDAP 客户端要求的格式指定身份:

  • MicrosoftAD:

    cn=ReadOnlyUser,ou=Users,ou=CORP,dc=corp,dc=example,dc=com
  • SimpleAD:

    cn=ReadOnlyUser,cn=Users,dc=corp,dc=example,dc=com

更新策略:必须停止计算实例集才能更改此设置以进行更新。

LdapTlsCaCert可选String

包含认证链中为域控制器颁发证书的每个证书颁发机构的证书的证书捆绑包的绝对路径。它对应于名为 ldap_tls_cacert 的 SSSD-LDAP 参数。

证书捆绑包是一个由 PEM 格式(在 Windows 中也称为 DER Base64 格式)的不同证书串联组成的文件。它用于验证充当 LDAP 服务器的 AD 域控制器的身份。

Amazon ParallelCluster 不负责在初始阶段将证书放置到节点上。作为集群管理员,您可以在创建集群后在头节点中手动配置证书,也可以使用引导脚本。或者,您可以使用包含头节点上配置的证书的亚马逊机器映像 (AMI)。

Simple AD 不提供 LDAPS 支持。要了解如何将 Simple AD 目录与 Amazon ParallelCluster 集成,请参阅 Amazon 安全性博客 中的如何为 Simple AD 配置 LDAPS 端点

更新策略:必须停止计算实例集才能更改此设置以进行更新。

LdapTlsReqCert可选String

指定在 TLS 会话中对服务器证书执行哪些检查。它对应于名为 ldap_tls_reqcert 的 SSSD-LDAP 参数。

有效值:neverallowtrydemandhard

即使发现证书有问题,neverallowtry 也允许继续连接。

在未发现证书问题的情况下,demandhard 允许继续进行通信。

如果集群管理员使用的值不需要证书验证成功,则会向管理员返回一条警告消息。出于安全考虑,我们建议您不要禁用证书验证。

默认值为 hard

更新策略:必须停止计算实例集才能更改此设置以进行更新。

LdapAccessFilter可选String

指定用于将目录访问权限限制为一部分用户的筛选器。此属性对应于名为 ldap_access_filter 的 SSSD-LDAP 参数。您可以使用此属性将查询限制为支持大量用户的 AD。

此筛选器可阻止用户访问集群。但它不影响被阻止用户的可发现性。

如果设置了此属性,则 SSSD 参数 access_provider 将由 Amazon ParallelCluster 在内部设置为 ldap 且不得被 DirectoryService/AdditionalSssdConfigs 设置修改。

如果省略此属性且未在 DirectoryService/AdditionalSssdConfigs 中指定自定义用户访问权限,则目录中的所有用户都可以访问集群。

示例:

"!(cn=SomeUser*)" # denies access to every user with alias starting with "SomeUser" "(cn=SomeUser*)" # allows access to every user with alias starting with "SomeUser" "memberOf=cn=TeamOne,ou=Users,ou=CORP,dc=corp,dc=example,dc=com" # allows access only to users in group "TeamOne".

更新策略:必须停止计算实例集才能更改此设置以进行更新。

GenerateSshKeysForUsers可选Boolean

定义集群用户在头节点上进行初始身份验证后 Amazon ParallelCluster 是否立即为其生成 SSH 密钥。

如果设置为 true,则每个用户在头节点上进行首次身份验证后会为其生成一个 SSH 密钥并保存到 USER_HOME_DIRECTORY/.ssh/id_rsa(如果不存在)。

对于尚未在头节点上进行身份验证的用户,可能会在以下情况下进行首次身份验证:

  • 用户使用自己的密码首次登录头节点。

  • 在头节点中,sudoer 首次切换到用户:su USERNAME

  • 在头节点中,sudoer 首次以用户身份运行命令:su -u USERNAME COMMAND

之后,用户可以使用 SSH 密钥登录到集群头节点和计算节点。使用 Amazon ParallelCluster 时,有意禁用了集群计算节点的密码登录。如果用户未登录到头节点,则不会生成 SSH 密钥,用户将无法登录到计算节点。

默认值为 true

更新策略:必须停止计算实例集才能更改此设置以进行更新。

AdditionalSssdConfigs可选Dict

包含要写入集群实例上的 SSSD 配置文件的 SSSD 参数和值的键值对字典。有关 SSSD 配置文件的完整描述,请参阅 SSSD 的 on-instance man 页面和相关配置文件。

SSSD 参数和值必须与以下列表中所述的 Amazon ParallelCluster SSSD 配置兼容。

以下配置代码段是 AdditionalSssdConfigs 有效配置的示例。

此示例启用 SSSD 日志的调试级别,将搜索库限制为特定的组织部门,并禁用凭证缓存。

DirectoryService: ... AdditionalSssdConfigs: debug_level: "0xFFF0" ldap_search_base: OU=Users,OU=CORP,DC=corp,DC=example,DC=com cache_credentials: False

此示例指定 SSSD simple access_provider 的配置。为 EngineeringTeam 中的用户提供了目录访问权限。在这种情况下,不得设置 DirectoryService/LdapAccessFilter

DirectoryService: ... AdditionalSssdConfigs: access_provider: simple simple_allow_groups: EngineeringTeam

更新策略:必须停止计算实例集才能更改此设置以进行更新。