

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Créer le cluster
<a name="tutorials_05_multi-user-ad-step3"></a>

Si vous n'avez pas quitté l'instance Amazon EC2, faites-le maintenant.

L'environnement est configuré pour créer un cluster capable d'authentifier les utilisateurs par rapport à Active Directory (AD).

Créez une configuration de cluster simple et fournissez les paramètres nécessaires à la connexion à l'AD. Pour plus d’informations, consultez la section [`DirectoryService`](DirectoryService-v3.md).

Choisissez l'une des configurations de cluster suivantes et copiez-la dans un fichier nommé `ldaps_config.yaml``ldaps_nocert_config.yaml`, ou`ldap_config.yaml`.

Nous vous recommandons de choisir la configuration LDAPS avec vérification des certificats. Si vous choisissez cette configuration, vous devez également copier le script d'amorçage dans un fichier nommé`active-directory.head.post.sh`. De plus, vous devez le stocker dans un compartiment Amazon S3 comme indiqué dans le fichier de configuration.

## LDAPS avec configuration de vérification des certificats (recommandé)
<a name="tutorials_05_multi-user-ad-step3-ldaps"></a>

**Note**  
`KeyName`: l'une de vos paires de clés Amazon EC2.
`SubnetId / SubnetIds`: l'un des identifiants de sous-réseau fournis dans la sortie de la pile de création CloudFormation rapide (didacticiel automatique) ou du script python (didacticiel manuel).
`Region`: la région dans laquelle vous avez créé l'infrastructure AD.
`DomainAddr`: Cette adresse IP est l'une des adresses DNS de votre service AD.
`PasswordSecretArn`: le nom de ressource Amazon (ARN) du secret qui contient le mot de passe du`DomainReadOnlyUser`.
`BucketName`: nom du compartiment contenant le script d'amorçage.
`AdditionalPolicies`/`Policy`: Le nom de ressource Amazon (ARN) de la politique de certification du domaine de lecture ReadCertExample.
`CustomActions`/`OnNodeConfigured`/`Args`: Le nom de ressource Amazon (ARN) du secret qui contient la politique de certification du domaine.
Pour une meilleure sécurité, nous vous suggérons d'utiliser la `AllowedIps` configuration `HeadNode``Ssh`//pour limiter l'accès SSH au nœud principal.  
Notez que le certificat spécifié dans `LdapTlsCaCert` doit être accessible à tous les nœuds du cluster.

**Des exigences strictes**  
Le certificat spécifié dans `LdapTlsCaCert` doit être accessible à tous les nœuds du cluster.  
Un nœud qui n'a pas accès au certificat ne sera pas en mesure de résoudre les problèmes liés aux utilisateurs depuis l'annuaire.

```
Region: {{region-id}}
Image:
  Os: alinux2023
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
```

**script Bootstrap **

Après avoir créé le fichier bootstrap et avant de le télécharger dans votre compartiment S3, exécutez `chmod +x active-directory.head.post.sh` pour accorder l'autorisation d' AWS ParallelCluster exécution.

```
#!/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
```

## Configuration LDAPS sans vérification de certificat
<a name="tutorials_05_multi-user-ad-step3-ldaps-no-cert"></a>

**Note**  
`KeyName`: l'une de vos paires de clés Amazon EC2.
`SubnetId / SubnetIds`: l'un des ID de sous-réseau figurant dans la sortie de la pile de création CloudFormation rapide (didacticiel automatique) ou du script Python (didacticiel manuel).
`Region`: la région dans laquelle vous avez créé l'infrastructure AD.
`DomainAddr`: Cette adresse IP est l'une des adresses DNS de votre service AD.
`PasswordSecretArn`: le nom de ressource Amazon (ARN) du secret qui contient le mot de passe du`DomainReadOnlyUser`.
Pour une meilleure sécurité, nous vous suggérons d'utiliser la HeadNode/Ssh/AllowedIps configuration pour limiter l'accès SSH au nœud principal.

```
Region: {{region-id}}
Image:
  Os: alinux2023
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
```

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

**Note**  
`KeyName`: l'une de vos paires de clés Amazon EC2.
`SubnetId / SubnetIds`: l'un des identifiants de sous-réseau fournis dans la sortie de la pile de création CloudFormation rapide (didacticiel automatique) ou du script python (didacticiel manuel).
`Region`: la région dans laquelle vous avez créé l'infrastructure AD.
`DomainAddr`: Cette adresse IP est l'une des adresses DNS de votre service AD.
`PasswordSecretArn`: le nom de ressource Amazon (ARN) du secret qui contient le mot de passe du`DomainReadOnlyUser`.
Pour une meilleure sécurité, nous vous suggérons d'utiliser la HeadNode/Ssh/AllowedIps configuration pour limiter l'accès SSH au nœud principal.

```
Region: {{region-id}}
Image:
  Os: alinux2023
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
```

Créez votre cluster à l'aide de la commande suivante.

```
$ 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.16.1,
    "clusterStatus": "CREATE_IN_PROGRESS"
  }
}
```