

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

# 使用 AD 域创建集群
<a name="create-addircluster-v3"></a>

**警告**  
本介绍性部分介绍如何 AWS ParallelCluster 通过轻型目录访问协议 (LDAP) 设置托管活动目录 (AD) 服务器。LDAP 是一种不安全的协议。对于生产系统，我们强烈建议使用 TLS 证书 (LDAPS)，如下文中的[LDAP (S) 集群配置示例 AWS Managed Microsoft AD](examples-addir-v3.md)一节所述。

通过在集群配置文件的 `DirectoryService` 部分指定相关信息，将您的集群配置为与目录集成。有关更多信息，请参阅 [`DirectoryService`](DirectoryService-v3.md) 配置部分。

您可以使用以下示例将您的集群与轻量级目录访问协议 (LDAP) 集成。 AWS Managed Microsoft AD 

**AWS Managed Microsoft AD 通过 LDAP 配置所需的特定定义：**
+ 必须在 [`DirectoryService`](DirectoryService-v3.md)/[`AdditionalSssdConfigs`](DirectoryService-v3.md#yaml-DirectoryService-AdditionalSssdConfigs) 下面将 `ldap_auth_disable_tls_never_use_in_production` 参数设置为 `True`。
+ 您可以为 [`DirectoryService`](DirectoryService-v3.md)/[`DomainAddr`](DirectoryService-v3.md#yaml-DirectoryService-DomainAddr) 指定控制器主机名或 IP 地址。
+ [`DirectoryService`](DirectoryService-v3.md)/[`DomainReadOnlyUser`](DirectoryService-v3.md#yaml-DirectoryService-DomainReadOnlyUser) 语法必须如下所示：

  ```
  cn=ReadOnly,ou=Users,ou=CORP,dc=corp,dc=example,dc=com
  ```

**获取您的 AWS Managed Microsoft AD 配置数据：**

```
$ aws ds describe-directories --directory-id "d-abcdef01234567890"
```

```
{
    "DirectoryDescriptions": [
        {
            "DirectoryId": "d-abcdef01234567890",
            "Name": "corp.example.com",
            "DnsIpAddrs": [
                "203.0.113.225",
                "192.0.2.254"
            ],
            "VpcSettings": {
                "VpcId": "vpc-021345abcdef6789",
                "SubnetIds": [
                    "subnet-1234567890abcdef0",
                    "subnet-abcdef01234567890"
                ],
                "AvailabilityZones": [
                    "region-idb",
                    "region-idd"
                ]
            }
        }
    ]
}
```

** AWS Managed Microsoft AD的集群配置：**

```
Region: region-id
Image:
  Os: alinux2
HeadNode:
  InstanceType: t2.micro
  Networking:
    SubnetId: subnet-1234567890abcdef0
  Ssh:
    KeyName: pcluster
Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - Name: queue1
      ComputeResources:
        - Name: t2micro
          InstanceType: t2.micro
          MinCount: 1
          MaxCount: 10
      Networking:
        SubnetIds:
          - subnet-abcdef01234567890
DirectoryService:
  DomainName: dc=corp,dc=example,dc=com
  DomainAddr: ldap://203.0.113.225,ldap://192.0.2.254
  PasswordSecretArn: arn:aws:secretsmanager:region-id:123456789012:secret:MicrosoftAD.Admin.Password-1234
  DomainReadOnlyUser: cn=ReadOnly,ou=Users,ou=CORP,dc=corp,dc=example,dc=com
  AdditionalSssdConfigs:
    ldap_auth_disable_tls_never_use_in_production: True
```

**要对 Simple AD 使用此配置，请在 `DirectoryService` 部分更改 `DomainReadOnlyUser` 属性值：**

```
DirectoryService:
  DomainName: dc=corp,dc=example,dc=com
  DomainAddr: ldap://203.0.113.225,ldap://192.0.2.254
  PasswordSecretArn: arn:aws:secretsmanager:region-id:123456789012:secret:SimpleAD.Admin.Password-1234
  DomainReadOnlyUser: cn=ReadOnlyUser,cn=Users,dc=corp,dc=example,dc=com
  AdditionalSssdConfigs:
    ldap_auth_disable_tls_never_use_in_production: True
```

**注意事项：**
+ 我们建议您使用 LDAP TLS/SSL （或 LDAPS），而不是单独使用 LDAP。TLS/SSL 可确保对连接加密。
+ [`DirectoryService`](DirectoryService-v3.md)/[`DomainAddr`](DirectoryService-v3.md#yaml-DirectoryService-DomainAddr) 属性值与 `describe-directories` 输出的 `DnsIpAddrs` 列表中的条目相匹配。
+ 我们建议集群使用的子网位于 [`DirectoryService`](DirectoryService-v3.md)/[`DomainAddr`](DirectoryService-v3.md#yaml-DirectoryService-DomainAddr) 指向的同一可用区内。如果您使用推荐用于目录的[自定义动态主机配置协议 (DHCP) 配置](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/dhcp_options_set.html)， VPCs 并且您的子网*不*在 [`DirectoryService`](DirectoryService-v3.md)/[`DomainAddr`](DirectoryService-v3.md#yaml-DirectoryService-DomainAddr)可用区内，则可用区之间可能会出现交叉流量。使用多用户 AD 集成功能*不* 需要使用自定义 DHCP 配置。
+ [`DirectoryService`](DirectoryService-v3.md)/[`DomainReadOnlyUser`](DirectoryService-v3.md#yaml-DirectoryService-DomainReadOnlyUser) 属性值指定必须在目录中创建的用户。默认情况下*不* 创建此用户。我们建议您*不要* 向此用户授予修改目录数据的权限。
+ [`DirectoryService`](DirectoryService-v3.md)/[`PasswordSecretArn`](DirectoryService-v3.md#yaml-DirectoryService-PasswordSecretArn)属性值指向一个 AWS Secrets Manager 密钥，其中包含您为 [`DirectoryService`](DirectoryService-v3.md)/[`DomainReadOnlyUser`](DirectoryService-v3.md#yaml-DirectoryService-DomainReadOnlyUser)属性指定的用户密码。如果此用户的密码发生更改，请更新密钥值并更新集群。要针对新密钥值更新集群，必须使用 `pcluster update-compute-fleet` 命令停止计算实例集。如果您将集群配置为使用 [`LoginNodes`](LoginNodes-v3.md)，请停止 [`LoginNodes`](LoginNodes-v3.md)/[`Pools`](LoginNodes-v3.md#LoginNodes-v3-Pools) 并在将 [`LoginNodes`](LoginNodes-v3.md)/[`Pools`](LoginNodes-v3.md#LoginNodes-v3-Pools)/[`Count`](LoginNodes-v3.md#yaml-LoginNodes-Pools-Count) 设置为 0 后更新集群。然后在集群头节点内运行以下命令。

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

有关其他示例，另请参阅[集成 Active Directory](tutorials_05_multi-user-ad.md)。