

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cree el clúster
<a name="tutorials_05_multi-user-ad-step3"></a>

Si no ha salido de la instancia de Amazon EC2, hágalo ahora.

El entorno está configurado para crear un clúster que pueda autenticar a los usuarios en Active Directory (AD).

Cree una configuración de clúster sencilla y proporcione los ajustes pertinentes para conectarse al AD. Para obtener más información, consulte la sección [`DirectoryService`](DirectoryService-v3.md).

Elija una de las siguientes configuraciones de clúster y cópiela en un archivo con el nombre `ldaps_config.yaml``ldaps_nocert_config.yaml`, o`ldap_config.yaml`.

Se recomienda elegir la configuración de LDAPS con verificación de certificado. Si elige esta configuración, también debe copiar el script de arranque en un archivo que lleve el nombre. `active-directory.head.post.sh` Además, debe almacenarlo en un bucket de Amazon S3, tal y como se indica en el archivo de configuración.

## LDAPS con configuración de verificación de certificados (recomendado)
<a name="tutorials_05_multi-user-ad-step3-ldaps"></a>

**nota**  
`KeyName`: uno de sus pares de claves de Amazon EC2.
`SubnetId / SubnetIds`: Una de las subredes que IDs se proporcionan en el resultado de la pila de creación CloudFormation rápida (tutorial automatizado) o en el script de Python (tutorial manual).
`Region`: La región en la que creó la infraestructura de AD.
`DomainAddr`: Esta dirección IP es una de las direcciones DNS de su servicio de AD.
`PasswordSecretArn`: el nombre de recurso de Amazon (ARN) del secreto que contiene la contraseña del `DomainReadOnlyUser`.
`BucketName`: el nombre del bucket que contiene el script de arranque.
`AdditionalPolicies`/`Policy`: El nombre de recurso de Amazon (ARN) de la política de certificación de dominio de lectura. ReadCertExample
`CustomActions`/`OnNodeConfigured`/`Args`: el nombre de recurso de Amazon (ARN) secreto que contiene la política de certificación de dominios.
Para una mejor postura de seguridad, sugerimos utilizar la configuración `HeadNode` / `Ssh` / `AllowedIps` para limitar el acceso SSH al nodo principal.  
Tenga en cuenta que todos los nodos del clúster `LdapTlsCaCert` deben poder acceder al certificado especificado en.

**Requisitos estrictos**  
El certificado especificado en `LdapTlsCaCert` debe estar accesible para todos los nodos del clúster.  
Un nodo sin acceso al certificado no podrá resolver los usuarios del directorio.

```
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
```

**Secuencia de comandos de arranque**

Tras crear el archivo de arranque y antes de subirlo a su bucket de S3, ejecute `chmod +x active-directory.head.post.sh` para conceder el permiso de AWS ParallelCluster ejecución.

```
#!/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 sin configuración de verificación de certificados
<a name="tutorials_05_multi-user-ad-step3-ldaps-no-cert"></a>

**nota**  
`KeyName`: uno de sus pares de claves de Amazon EC2.
`SubnetId / SubnetIds`: Una de las subredes IDs que se encuentran en el resultado de la pila de creación CloudFormation rápida (tutorial automatizado) o del script de Python (tutorial manual).
`Region`: La región en la que creó la infraestructura de AD.
`DomainAddr`: Esta dirección IP es una de las direcciones DNS de su servicio de AD.
`PasswordSecretArn`: el nombre de recurso de Amazon (ARN) del secreto que contiene la contraseña del `DomainReadOnlyUser`.
Para mejorar la seguridad, sugerimos usar la AllowedIps configuración HeadNode /Ssh/ para limitar el acceso SSH al nodo principal.

```
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
```

## Configuraciones de PHP
<a name="tutorials_05_multi-user-ad-step3-ldap"></a>

**nota**  
`KeyName`: uno de sus pares de claves de Amazon EC2.
`SubnetId / SubnetIds`: Una de las subredes que IDs se proporcionan en el resultado de la pila de creación CloudFormation rápida (tutorial automatizado) o en el script de Python (tutorial manual).
`Region`: La región en la que creó la infraestructura de AD.
`DomainAddr`: Esta dirección IP es una de las direcciones DNS de su servicio de AD.
`PasswordSecretArn`: el nombre de recurso de Amazon (ARN) del secreto que contiene la contraseña del `DomainReadOnlyUser`.
Para mejorar la seguridad, sugerimos usar la AllowedIps configuración HeadNode /Ssh/ para limitar el acceso SSH al nodo principal.

```
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
```

Cree el clúster con el comando siguiente.

```
$ 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"
  }
}
```