

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# クラスターを作成する
<a name="tutorials_05_multi-user-ad-step3"></a>

Amazon EC2 インスタンスを終了していない場合は、ここで終了します。

Active Directory (AD) に対してユーザーを認証できるクラスターを作成するように環境が設定されます。

簡単なクラスター設定を作成し、AD への接続に関連する設定を行います。詳細については「[`DirectoryService`](DirectoryService-v3.md)」セクションを参照してください。

次のクラスター設定のいずれかを選択し、`ldaps_config.yaml`、`ldaps_nocert_config.yaml`、または `ldap_config.yaml` という名前のファイルにコピーします。

証明書検証付きの LDAPS 設定を選択することをお勧めします。この設定を選択した場合は、ブートストラップスクリプトを `active-directory.head.post.sh` という名前のファイルにコピーする必要もあります。また、設定ファイルに示しているように Amazon S3 バケットに保存する必要があります。

## 証明書検証設定のある LDAPS (推奨)
<a name="tutorials_05_multi-user-ad-step3-ldaps"></a>

**注記**  
`KeyName`: Amazon EC2 キーペアのいずれか。
`SubnetId / SubnetIds`: CloudFormation スタックのクイック作成 (自動チュートリアル) または Python スクリプト (手動チュートリアル) の出力で提供されるサブネット ID のいずれか。
`Region`: AD インフラストラクチャを作成したリージョン。
`DomainAddr`: この IP アドレスは AD サービスの DNS アドレスの 1 つ。
`PasswordSecretArn`: `DomainReadOnlyUser` のパスワードが含まれているシークレットの Amazon リソースネーム (ARN)。
`BucketName`: ブートストラップスクリプトを保持するバケットの名前。
`AdditionalPolicies`/`Policy`: 読み取りドメイン認証ポリシー ReadCertExampl の Amazon リソースネーム (ARN)。
`CustomActions`/`OnNodeConfigured`/`Args`: ドメイン認定ポリシーを保持するシークレットの Amazon リソースネーム (ARN)。
セキュリティ体制を強化するために、`HeadNode`/`Ssh`/`AllowedIps` 設定を使用してヘッドノードへの SSH アクセスを制限することをお勧めします。  
で指定された証明書には、すべてのクラスターノードがアクセスできる`LdapTlsCaCert`必要があります。

**ハード要件**  
で指定された証明書は、すべてのクラスターノードからアクセスできる`LdapTlsCaCert`必要があります。  
証明書にアクセスできないノードは、 ディレクトリからユーザーを解決できません。

```
Region: region-id
Image:
  Os: alinux2
HeadNode: 
  InstanceType: t2.micro
  Networking:
    SubnetId: subnet-abcdef01234567890
  Ssh:
    KeyName: keypair
  Iam:
    AdditionalIamPolicies:
      - Policy: arn:aws:iam::123456789012:policy/ReadCertExample
    S3Access:
      - BucketName: amzn-s3-demo-bucket
        EnableWriteAccess: false
        KeyName: bootstrap/active-directory/active-directory.head.post.sh
  CustomActions:
    OnNodeConfigured:
      Script: s3://amzn-s3-demo-bucket/bootstrap/active-directory/active-directory.head.post.sh
      Args:
        - arn:aws:secretsmanager:region-id:123456789012:secret:example-cert-123abc
        - /opt/parallelcluster/shared/directory_service/domain-certificate.crt
Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - Name: queue0
      ComputeResources:
        - Name: queue0-t2-micro
          InstanceType: t2.micro
          MinCount: 1
          MaxCount: 10         
      Networking:
        SubnetIds:
          - subnet-abcdef01234567890
DirectoryService:
  DomainName: corp.example.com
  DomainAddr: ldaps://corp.example.com
  PasswordSecretArn: arn:aws:secretsmanager:region-id:123456789012:secret:ADSecretPassword-1234
  DomainReadOnlyUser: cn=ReadOnlyUser,ou=Users,ou=CORP,dc=corp,dc=example,dc=com
  LdapTlsCaCert: /opt/parallelcluster/shared/directory_service/domain-certificate.crt
  LdapTlsReqCert: hard
```

**ブートストラップスクリプト**

ブートストラップファイルを作成し、S3 バケットにアップロードする前に、 `chmod +x active-directory.head.post.sh`を実行して AWS ParallelCluster 実行アクセス許可を付与します。

```
#!/bin/bash
set -e

CERTIFICATE_SECRET_ARN="$1"
CERTIFICATE_PATH="$2"

[[ -z $CERTIFICATE_SECRET_ARN ]] && echo "[ERROR] Missing CERTIFICATE_SECRET_ARN" && exit 1
[[ -z $CERTIFICATE_PATH ]] && echo "[ERROR] Missing CERTIFICATE_PATH" && exit 1

source /etc/parallelcluster/cfnconfig
REGION="${cfn_region:?}"

mkdir -p $(dirname $CERTIFICATE_PATH)
aws secretsmanager get-secret-value --region $REGION --secret-id $CERTIFICATE_SECRET_ARN --query SecretString --output text > $CERTIFICATE_PATH
```

## 証明書検証設定なしの LDAPS
<a name="tutorials_05_multi-user-ad-step3-ldaps-no-cert"></a>

**注記**  
`KeyName`: Amazon EC2 キーペアのいずれか。
`SubnetId / SubnetIds`: CloudFormation スタックのクイック作成 (自動チュートリアル) または Python スクリプト (手動チュートリアル) の出力にあるサブネット ID の 1 つ。
`Region`: AD インフラストラクチャを作成したリージョン。
`DomainAddr`: この IP アドレスは AD サービスの DNS アドレスの 1 つ。
`PasswordSecretArn`: `DomainReadOnlyUser` のパスワードが含まれているシークレットの Amazon リソースネーム (ARN)。
セキュリティ体制を強化するために、HeadNode/Ssh/AllowedIps 設定を使用して、ヘッドノードへの SSH アクセスを制限することをお勧めします。

```
Region: region-id
Image:
  Os: alinux2
HeadNode: 
  InstanceType: t2.micro
  Networking:
    SubnetId: subnet-abcdef01234567890
  Ssh:
    KeyName: keypair
Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - Name: queue0
      ComputeResources:
        - Name: queue0-t2-micro
          InstanceType: t2.micro
          MinCount: 1
          MaxCount: 10         
      Networking:
        SubnetIds:
          - subnet-abcdef01234567890
DirectoryService:
  DomainName: corp.example.com
  DomainAddr: ldaps://corp.example.com
  PasswordSecretArn: arn:aws:secretsmanager:region-id:123456789012:secret:ADSecretPassword-1234
  DomainReadOnlyUser: cn=ReadOnlyUser,ou=Users,ou=CORP,dc=corp,dc=example,dc=com
  LdapTlsReqCert: never
```

## LDAP 設定
<a name="tutorials_05_multi-user-ad-step3-ldap"></a>

**注記**  
`KeyName`: Amazon EC2 キーペアのいずれか。
`SubnetId / SubnetIds`: CloudFormation スタックのクイック作成 (自動チュートリアル) または Python スクリプト (手動チュートリアル) の出力で提供されるサブネット ID のいずれか。
`Region`: AD インフラストラクチャを作成したリージョン。
`DomainAddr`: この IP アドレスは AD サービスの DNS アドレスの 1 つ。
`PasswordSecretArn`: `DomainReadOnlyUser` のパスワードが含まれているシークレットの Amazon リソースネーム (ARN)。
セキュリティ体制を強化するために、HeadNode/Ssh/AllowedIps 設定を使用して、ヘッドノードへの SSH アクセスを制限することをお勧めします。

```
Region: region-id
Image:
  Os: alinux2
HeadNode: 
  InstanceType: t2.micro
  Networking:
    SubnetId: subnet-abcdef01234567890
  Ssh:
    KeyName: keypair
Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - Name: queue0
      ComputeResources:
        - Name: queue0-t2-micro
          InstanceType: t2.micro
          MinCount: 1
          MaxCount: 10         
      Networking:
        SubnetIds:
          - subnet-abcdef01234567890
DirectoryService:
  DomainName: dc=corp,dc=example,dc=com
  DomainAddr: ldap://192.0.2.254,ldap://203.0.113.237
  PasswordSecretArn: arn:aws:secretsmanager:region-id:123456789012:secret:ADSecretPassword-1234
  DomainReadOnlyUser: cn=ReadOnlyUser,ou=Users,ou=CORP,dc=corp,dc=example,dc=com
  AdditionalSssdConfigs:
    ldap_auth_disable_tls_never_use_in_production: True
```

以下のコマンドを使用して、クラスターを作成します。

```
$ pcluster create-cluster --cluster-name "ad-cluster" --cluster-configuration "./ldaps_config.yaml"
{
  "cluster": {
    "clusterName": "pcluster",
    "cloudformationStackStatus": "CREATE_IN_PROGRESS",
    "cloudformationStackArn": "arn:aws:cloudformation:region-id:123456789012:stack/ad-cluster/1234567-abcd-0123-def0-abcdef0123456",
    "region": "region-id",
    "version": 3.15.0,
    "clusterStatus": "CREATE_IN_PROGRESS"
  }
}
```