本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
DirectoryService 部分
注意
在 3.1.1 Amazon ParallelCluster 版本中增加了对 Support 的支持。DirectoryService
(可选)支持多用户访问的集群的目录服务设置。
Amazon ParallelCluster 管理支持多用户通过系统安全服务守护程序 (SSSD) 支持的轻型目录访问协议 (LDAP) 使用活动目录 (AD
我们建议您使用 LDAP TLS/SSL (简称 LDAPS),以确保任何潜在的敏感信息都通过加密通道传输。
DirectoryService: DomainName:stringDomainAddr:stringPasswordSecretArn:stringDomainReadOnlyUser:stringLdapTlsCaCert:stringLdapTlsReqCert:stringLdapAccessFilter:stringGenerateSshKeysForUsers:booleanAdditionalSssdConfigs:dict
DirectoryService 属性
注意
如果您计划 Amazon ParallelCluster 在无法访问 Internet 的单个子网中使用,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)-
URI 或 URIs 指向用作 LDAP 服务器的 AD 域控制器。该 URI 对应于名为
ldap_uri的 SSSD-LDAP 参数。该值可以是逗号分隔的字符串。 URIs要使用 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 进行证书验证,则 URIs 必须是主机名。
如果您使用 LDAPS 而不进行证书验证或 LDAP,则 URIs 可以是主机名或 IP 地址。
使用 LDAP over TLS/SSL (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 客户端使用密码向 AD 域进行身份验证
DomainReadOnlyUser,就像请求身份信息一样。如果用户拥有
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 参数。有效值:
never、allow、try、demand和hard。即使发现证书有问题,
never、allow和try也允许继续连接。在未发现证书问题的情况下,
demand和hard允许继续进行通信。如果集群管理员使用的值不需要证书验证成功,则会向管理员返回一条警告消息。出于安全考虑,我们建议您不要禁用证书验证。
默认值为
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 an alias that starts with "SomeUser" "(cn=SomeUser*)" # allows access to every user with alias that starts 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 首次切换到用户:
suUSERNAME -
在头节点中,sudoer 首次以用户身份运行命令:
su -uUSERNAME COMMAND
之后,用户可以使用 SSH 密钥登录到集群头节点和计算节点。使用 Amazon ParallelCluster时,集群计算节点的密码登录在设计上是禁用的。如果用户未登录到头节点,则不会生成 SSH 密钥,用户将无法登录到计算节点。
默认值为
true。 -
AdditionalSssdConfigs(可选,Dict)-
键值对的字典,其中包含要写入集群实例上的 SSSD 配置文件的 SSSD 参数和值。有关 SSSD 配置文件的完整描述,请参阅
SSSD的 on-instance man 页面和相关配置文件。SSSD 参数和值必须与下表中所述 Amazon ParallelCluster的 SSSD 配置兼容。
-
id_provider由ldap内部设置为 Amazon ParallelCluster ,不得修改。 -
access_provider指定 DirectoryService/ Amazon ParallelCluster 时在ldap内部设置LdapAccessFilter为,且不得修改此设置。如果省略 DirectoryService/LdapAccessFilter,则也将省略其指定的
access_provider。例如,如果您在 AdditionalSssdConfigs 中将access_provider设置为simple,则不得指定 DirectoryService/LdapAccessFilter。
以下配置代码段是
AdditionalSssdConfigs有效配置的示例。此示例启用 SSSD 日志的调试级别,将搜索库限制为特定的组织部门,并禁用凭证缓存。
DirectoryService: ... AdditionalSssdConfigs: debug_level: "0xFFF0" ldap_search_base: OU=Users,OU=CORP,DC=corp,DC=example,DC=com cache_credentials: False此示例指定 SSSD
simpleaccess_provider的配置。为EngineeringTeam中的用户提供了目录访问权限。在这种情况下,不得设置 DirectoryService/LdapAccessFilter。DirectoryService: ... AdditionalSssdConfigs: access_provider: simple simple_allow_groups: EngineeringTeam -