本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
DirectoryService
部分
注意
在 Amazon ParallelCluster 版本 3.1.1 中添加了对 DirectoryService
的支持。
(可选)支持多用户访问的集群的目录服务设置。
Amazon ParallelCluster 使用基于系统安全服务进程守护程序 (SSSD)
我们建议您使用基于 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 参数。有效值:
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 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 配置兼容。
-
id_provider
由 Amazon ParallelCluster 在内部设置为ldap
且不得修改。 -
当指定了 DirectoryService/LdapAccessFilter 时,
access_provider
由 Amazon ParallelCluster 在内部设置为ldap
,且此设置不得修改。如果省略 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
simple
access_provider
的配置。为EngineeringTeam
中的用户提供了目录访问权限。在这种情况下,不得设置 DirectoryService/LdapAccessFilter。DirectoryService: ... AdditionalSssdConfigs: access_provider: simple simple_allow_groups: EngineeringTeam
-