DirectoryService 部分 - AWS ParallelCluster

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

DirectoryService 部分

注意

中添加DirectoryService了对 Support 的支持 AWS ParallelCluster 版本 3.1.1。

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

AWS ParallelCluster 管理支持多用户通过系统安全服务守护程序 () 支持的轻型目录访问协议 () 访问具有 Active Directory (ADLDAP) 的集群的权限 (SSSD)。有关更多信息,请参阅什么是 AWS Directory Service? AWS Directory Service 管理指南

我们建议您使用 ov LDAP erTLS/SSL(简称缩写LDAPS),以确保任何潜在的敏感信息都通过加密通道传输。

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

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

DirectoryService 属性

注意

如果你打算使用 AWS ParallelCluster 在无法访问互联网的单个子网中,有关其他要求,AWS ParallelCluster 在无法访问互联网的单个子网中请参阅。

DomainName必需String

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

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

  • FQDN示例:corp.example.com

  • LDAPDN 示例:DC=corp,DC=example,DC=com

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

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

DomainAddr必需String

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

示例值:

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 # AWS ParallelCluster uses LDAPS by default

如果LDAPS与证书验证一起使用,则URIs必须是主机名。

如果您在LDAPS没有证书验证的情况下使用或LDAP,则URIs可以是主机名或 IP 地址。

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

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

PasswordSecretArn必需String

的亚马逊资源名称 (ARN) AWS Secrets Manager 包含DomainReadOnlyUser明文密码的密钥。密钥的内容对应于被调用的 SSSD-LDAP 参数ldap_default_authtok

注意

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

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

LDAP客户端使用密码向 AD 域进行身份验证,就像DomainReadOnlyUser请求身份信息一样。

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

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

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

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

DomainReadOnlyUser必需String

在对集群用户登录进行身份验证时,用于查询 AD 域以获取身份信息的身份。它对应于被调用的 SSSD-LDAP 参数ldap_default_bind_dn。对此值使用您的 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

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

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

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

S@@ imple AD 不提供LDAPS支持。学习如何将 Simple AD 目录与集成 AWS ParallelCluster,请参阅中的 “如何为 Simple AD 配置LDAPS终端节点AWS 安全博客

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

LdapTlsReqCert可选String

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

有效值:neverallowtrydemandhard

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

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

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

默认值为 hard

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

LdapAccessFilter可选String

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

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

如果设置了此属性,access_provider则该SSSD参数在ldap内部设置为 AWS ParallelCluster 且不得由 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

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

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

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

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

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

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

用户可以使用该SSH密钥进行后续登录集群头节点和计算节点。与 AWS ParallelCluster,集群计算节点的密码登录在设计上是禁用的。如果用户尚未登录头节点,则不会生成SSH密钥,用户将无法登录到计算节点。

默认为 true

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

AdditionalSssdConfigs可选Dict

键值对的字典,其中包含要写入集群实例SSSD配置文件的SSSD参数和值。有关SSSD配置文件的完整描述,请参阅实例手册页SSSD和相关配置文件。

SSSD参数和值必须兼容 AWS 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

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

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

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