Acceso de varios usuarios a los clústeres - AWS ParallelCluster

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.

Acceso de varios usuarios a los clústeres

Aprenda a implementar y administrar el acceso de varios usuarios a un solo clúster.

En este tema, un usuario de AWS ParallelCluster hace referencia a un usuario del sistema para las instancias de computación. Un ejemplo es un ec2-user de una instancia de EC2 de AWS.

La compatibilidad del acceso multiusuario de AWS ParallelCluster está disponible en todas las Regiones de AWS en las que AWS ParallelCluster está disponible actualmente. Funciona con otros Servicios de AWS, como Amazon FSx for Lustre y Amazon Elastic File System.

Puede usar un AWS Directory Service for Microsoft Active Directory o Simple AD para administrar el acceso al clúster. Asegúrese de comprobar la disponibilidad de Región de AWS para estos servicios. Para configurar un clúster, especifique una AWS ParallelCluster DirectoryServiceconfiguración. AWS Directory Servicelos directorios se pueden conectar a varios clústeres. Esto permite una administración centralizada de las identidades en varios entornos y una experiencia de inicio de sesión unificada.

Si utiliza AWS Directory Service para el acceso de varios usuarios de AWS ParallelCluster, puede iniciar sesión en el clúster con las credenciales de usuario definidas en el directorio. Estas credenciales constan de un nombre de usuario y una contraseña. Tras iniciar sesión en el clúster por primera vez, se genera automáticamente una clave SSH de usuario. Puede utilizarla para iniciar sesión sin contraseña.

Puede crear, eliminar y modificar los usuarios o grupos de un clúster después de implementar el servicio de directorio. Con AWS Directory Service, puede hacerlo en la AWS Management Console o mediante la herramienta Usuarios y equipos de Active Directory. Se puede acceder a esta herramienta desde cualquier instancia de EC2 que esté unida a su Active Directory. Para obtener más información, consulte Instalar las herramientas de administración de Active Directory.

Si piensa utilizar AWS ParallelCluster en una sola subred sin acceso a Internet, consulte AWS ParallelCluster en una subred individual sin acceso a Internet para conocer los requisitos adicionales.

Creación de un Active Directory

Asegúrese de crear un Active Directory (AD) antes de crear el clúster. Para obtener información sobre cómo elegir el tipo de Active Directory para el clúster, consulte Cuál elegir en la Guía de administración de AWS Directory Service.

Si el directorio está vacío, añada usuarios con nombres de usuario y contraseñas. Para obtener más información, consulte la documentación específica de AWS Directory Service for Microsoft Active Directory o Simple AD.

nota

AWS ParallelCluster requiere que todos los directorios de usuarios de Active Directory estén en el directorio /home/$user.

Creación de un clúster con un dominio de AD

aviso

En esta sección introductoria se describe cómo configurar AWS ParallelCluster un servidor Active Directory (AD) administrado mediante el Protocolo ligero de acceso a directorios (LDAP). El LDAP no es un protocolo seguro. Para los sistemas de producción, recomendamos encarecidamente el uso de certificados TLS (LDAPS), tal y como se describe en la siguiente sección Ejemplo de configuraciones de clústeres de AWS Managed Microsoft AD sobre LDAP(S).

Configure el clúster para que se integre con un directorio especificando la información pertinente en la sección DirectoryService del archivo de configuración del clúster. Para obtener más información, consulte la sección de configuración de DirectoryService.

Puede usar el siguiente ejemplo para integrar el clúster con un AWS Managed Microsoft AD en el Protocolo ligero de acceso a directorios (LDAP).

Definiciones específicas que se requieren para una configuración de AWS Managed Microsoft AD basada en LDAP:

Obtenga los datos de configuración de 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" ] } } ] }

Configuración de clúster para un 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

Para usar esta configuración para un Simple AD, cambie el valor de la propiedad DomainReadOnlyUser en la sección DirectoryService:

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
Consideraciones:
  • Le recomendamos que utilice LDAP sobre TLS/SSL (o LDAPS) en lugar de utilizar LDAP únicamente. El TLS/SSL garantiza que la conexión esté cifrada.

  • El valor de la propiedad DirectoryService/DomainAddr coincide con las entradas de la lista DnsIpAddrs de la salida describe-directories.

  • Se recomienda que el clúster utilice subredes que estén ubicadas en la misma zona de disponibilidad a la que apunte DirectoryService/DomainAddr. Si utiliza una configuración personalizada del Protocolo de configuración dinámica de host (DHCP) que se recomienda para las VPC de directorio, y sus subredes no están ubicadas en la zona de disponibilidad de DirectoryService/DomainAddr, es posible que se produzca tráfico cruzado entre las zonas de disponibilidad. No es necesario usar configuraciones de DHCP personalizadas para usar la característica de integración de AD multiusuario.

  • El valor de la propiedad DirectoryService/DomainReadOnlyUser especifica un usuario que debe crearse en el directorio. Este usuario no se crea de forma predeterminada. Le recomendamos que no dé permiso a este usuario para modificar los datos del directorio.

  • El valor de la propiedad DirectoryService/PasswordSecretArn apunta a un secreto de AWS Secrets Manager que contiene la contraseña del usuario que especificó para la propiedad DirectoryService/DomainReadOnlyUser. Si la contraseña de este usuario cambia, actualice el valor secreto y actualice el clúster. Para actualizar el clúster al nuevo valor secreto, debe detener la flota de procesamiento con el comando pcluster update-compute-fleet. Si ha configurado el clúster para usar LoginNodes, detenga LoginNodes/Pools y actualice el clúster después de establecer LoginNodes/Pools/Count en 0. A continuación, ejecute el siguiente comando desde el nodo principal del clúster.

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

Para ver otro ejemplo, consulte también Integración de Active Directory.

Inicio de sesión en un clúster integrado con un dominio de AD

Si ha activado la característica de integración de dominios de Active Delivery (AD), la autenticación mediante contraseña se habilita en el nodo principal del clúster. El directorio principal de un usuario de AD se crea la primera vez que un usuario inicia sesión en el nodo principal o la primera vez que un sudo-user cambia al usuario de AD en el nodo principal.

La autenticación por contraseña no está habilitada para los nodos de computación del clúster. Los usuarios de AD deben iniciar sesión en los nodos de computación con claves SSH.

De forma predeterminada, las claves SSH se configuran en el directorio de usuarios de AD /${HOME}/.ssh al iniciar sesión por SSH por primera vez en el nodo principal. Este comportamiento se puede deshabilitar configurando la propiedad booleana DirectoryService/GenerateSshKeysForUsers como false en la configuración del clúster. De forma predeterminada, DirectoryService/GenerateSshKeysForUsers está establecido en true.

Si una aplicación de AWS ParallelCluster requiere SSH sin contraseña entre los nodos del clúster, asegúrese de que las claves SSH estén configuradas correctamente en el directorio principal del usuario.

Las contraseñas de AWS Managed Microsoft AD caducarán al cabo de 42 días. Para obtener más información, consulte Administración de las políticas de contraseñas de AWS Managed Microsoft AD en la Guía de administración de AWS Directory Service. Si su contraseña caduca, debe restablecerla para restaurar el acceso al clúster. Para más información, consulte Cómo restablecer una contraseña de usuario y contraseñas caducadas.

nota

Si la característica de integración de AD no funciona como se esperaba, los registros del SSSD pueden proporcionar información de diagnóstico útil para solucionar el problema. Estos registros se encuentran en el directorio /var/log/sssd de los nodos del clúster. De forma predeterminada, también se almacenan en el grupo de CloudWatch registros de Amazon de un clúster.

Para más información, consulte Solución de problemas de integración multiusuario con Active Directory.

Ejecución de trabajos de MPI

Como se sugiere en SchedMD, arranque los trabajos de MPI utilizando Slurm como método de arranque de MPI. Para obtener más información, consulte la documentación oficial de Slurm o la documentación oficial de su biblioteca MPI.

Por ejemplo, en la documentación oficial de IntelMPI, aprenderá que, al ejecutar un trabajo de StarCCM, debe configurar Slurm como orquestador de procesos exportando la variable de entorno I_MPI_HYDRA_BOOTSTRAP=slurm.

nota

Problema conocido

En el caso de que su aplicación MPI utilice SSH como mecanismo para generar trabajos de MPI, es posible que se produzca un error conocido en Slurm que provoque una resolución incorrecta del nombre de usuario del directorio como “nadie”.

Configure su aplicación para que utilice Slurm como método de arranque de MPI o consulte Problemas conocidos relacionados con la resolución del nombre de usuario en la sección de solución de problemas para obtener más detalles y posibles soluciones alternativas.

Ejemplo de configuraciones de clústeres de AWS Managed Microsoft AD sobre LDAP(S)

AWS ParallelCluster admite el acceso de varios usuarios mediante la integración con un AWS Directory Service sobre un Protocolo ligero de acceso a directorios (LDAP) o LDAP sobre TLS/SSL (LDAPS).

En los siguientes ejemplos se muestra cómo crear configuraciones de clúster para integrarlas con un AWS Managed Microsoft AD sobre LDAP(S).

Puede usar este ejemplo para integrar su clúster con un AWS Managed Microsoft AD sobre LDAPS, con verificación de certificados.

Definiciones específicas para una configuración de AWS Managed Microsoft AD sobre LDAPS con certificados:
  • DirectoryService/LdapTlsReqCert debe establecerse en hard (predeterminado) para LDAPS con verificación de certificados.

  • DirectoryService/LdapTlsCaCert debe especificar la ruta de acceso a su certificado de autoridad (CA).

    El certificado de CA es un paquete de certificados que contiene los certificados de toda la cadena de CA que emitió los certificados para los controladores de dominio de AD.

    Los certificados y el certificado de CA deben estar instalados en los nodos del clúster.

  • Los nombres de host de los controladores deben especificarse para DirectoryService/DomainAddr, no para las direcciones IP.

  • La sintaxis DirectoryService/DomainReadOnlyUser debe ser la siguiente:

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

Ejemplo de archivo de configuración de clúster para usar AD sobre LDAPS:

Region: region-id Image: Os: alinux2 HeadNode: InstanceType: t2.micro Networking: SubnetId: subnet-1234567890abcdef0 Ssh: KeyName: pcluster Iam: AdditionalIamPolicies: - Policy: arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess CustomActions: OnNodeConfigured: Script: s3://aws-parallelcluster/scripts/pcluster-dub-msad-ldaps.post.sh Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ComputeResources: - Name: t2micro InstanceType: t2.micro MinCount: 1 MaxCount: 10 Networking: SubnetIds: - subnet-abcdef01234567890 Iam: AdditionalIamPolicies: - Policy: arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess CustomActions: OnNodeConfigured: Script: s3://aws-parallelcluster-pcluster/scripts/pcluster-dub-msad-ldaps.post.sh DirectoryService: DomainName: dc=corp,dc=example,dc=com DomainAddr: ldaps://win-abcdef01234567890.corp.example.com,ldaps://win-abcdef01234567890.corp.example.com 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 LdapTlsCaCert: /etc/openldap/cacerts/corp.example.com.bundleca.cer LdapTlsReqCert: hard

Agregue certificados y configure los controladores de dominio en el script posterior a la instalación:

*#!/bin/bash* set -e AD_CERTIFICATE_S3_URI="s3://corp.example.com/bundle/corp.example.com.bundleca.cer" AD_CERTIFICATE_LOCAL="/etc/openldap/cacerts/corp.example.com.bundleca.cer" AD_HOSTNAME_1="win-abcdef01234567890.corp.example.com" AD_IP_1="192.0.2.254" AD_HOSTNAME_2="win-abcdef01234567890.corp.example.com" AD_IP_2="203.0.113.225" # Download CA certificate mkdir -p $(dirname "${AD_CERTIFICATE_LOCAL}") aws s3 cp "${AD_CERTIFICATE_S3_URI}" "${AD_CERTIFICATE_LOCAL}" chmod 644 "${AD_CERTIFICATE_LOCAL}" # Configure domain controllers reachability echo "${AD_IP_1} ${AD_HOSTNAME_1}" >> /etc/hosts echo "${AD_IP_2} ${AD_HOSTNAME_2}" >> /etc/hosts

Puede recuperar los nombres de host de los controladores de dominio de las instancias unidas al dominio, como se muestra en los siguientes ejemplos.

Desde una instancia de Windows

$ nslookup 192.0.2.254
Server: corp.example.com Address: 192.0.2.254 Name: win-abcdef01234567890.corp.example.com Address: 192.0.2.254

Desde una instancia de Linux

$ nslookup 192.0.2.254
192.0.2.254.in-addr.arpa name = corp.example.com 192.0.2.254.in-addr.arpa name = win-abcdef01234567890.corp.example.com

Puede usar este ejemplo para integrar su clúster con un AWS Managed Microsoft AD sobre LDAPS, sin verificación de certificados.

Definiciones específicas para una configuración de AWS Managed Microsoft AD sobre LDAPS sin verificación de certificados:

Ejemplo de archivo de configuración de clúster para usar AWS Managed Microsoft AD sobre LDAPS sin verificación de certificados:

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: ldaps://203.0.113.225,ldaps://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 LdapTlsReqCert: never