Zugriff mehrerer Benutzer auf Cluster - AWS ParallelCluster

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Zugriff mehrerer Benutzer auf Cluster

Erfahren Sie, wie Sie den Zugriff mehrerer Benutzer auf einen einzelnen Cluster implementieren und verwalten.

In diesem Thema bezieht sich ein AWS ParallelCluster Benutzer auf einen Systembenutzer für Recheninstanzen. Ein Beispiel ist eine ec2-user für eine AWS EC2-Instance.

AWS ParallelClusterUnterstützung für den Mehrbenutzerzugriff ist überall verfügbar, AWS-Regionen wo sie derzeit verfügbar AWS ParallelCluster ist. Es funktioniert mit anderenAWS-Services, einschließlich Amazon FSx for Lustre und Amazon Elastic File System.

Sie können ein AWS Directory Service for Microsoft Active Directoryoder Simple AD verwenden, um den Clusterzugriff zu verwalten. Stellen Sie sicher, dass Sie die AWS-RegionVerfügbarkeit dieser Dienste überprüfen. Um einen Cluster einzurichten, geben Sie eine AWS ParallelCluster DirectoryServiceKonfiguration an. AWS Directory ServiceVerzeichnisse können mit mehreren Clustern verbunden werden. Dies ermöglicht eine zentrale Verwaltung von Identitäten in mehreren Umgebungen und ein einheitliches Anmeldeerlebnis.

Wenn Sie den Zugriff AWS Directory Service für AWS ParallelCluster mehrere Benutzer verwenden, können Sie sich mit den im Verzeichnis definierten Benutzeranmeldedaten beim Cluster anmelden. Diese Anmeldeinformationen bestehen aus einem Benutzernamen und einem Passwort. Nachdem Sie sich zum ersten Mal beim Cluster angemeldet haben, wird automatisch ein Benutzer-SSH-Schlüssel generiert. Sie können ihn verwenden, um sich ohne Passwort anzumelden.

Sie können die Benutzer oder Gruppen eines Clusters erstellen, löschen und ändern, nachdem Ihr Verzeichnisdienst bereitgestellt wurde. Mit AWS Directory Service können Sie dies im AWS Management Console oder mithilfe des Tools Active Directory-Benutzer und -Computer tun. Auf dieses Tool kann von jeder EC2-Instance aus zugegriffen werden, die mit Ihrem Active Directory verknüpft ist. Weitere Informationen finden Sie unter Installieren der Active-Directory-Verwaltungstools.

Wenn Sie die Verwendung AWS ParallelCluster in einem einzelnen Subnetz ohne Internetzugang planen, finden Sie AWS ParallelClusterin einem einzelnen Subnetz ohne Internetzugang ohne Internetzugang ohne Internetzugang ohne Internetzugang. weitere Anforderungen unter.

Erstellen Sie ein Active Directory

Stellen Sie sicher, dass Sie ein Active Directory (AD) erstellen, bevor Sie Ihren Cluster erstellen. Informationen zur Auswahl des Active Directory-Typs für Ihren Cluster finden Sie im AWS Directory ServiceAdministratorhandbuch unter Welche Variante soll ausgewählt werden.

Wenn das Verzeichnis leer ist, fügen Sie Benutzer mit Benutzernamen und Kennwörtern hinzu. Weitere Informationen finden Sie in der Dokumentation, die sich speziell auf AWS Directory Service for Microsoft Active DirectorySimple AD bezieht.

Anmerkung

AWS ParallelClustererfordert, dass sich jedes Active Directory-Benutzerverzeichnis im /home/$user Verzeichnis befindet.

Erstellen Sie einen Cluster mit einer AD-Domäne

Warnung

In diesem einführenden Abschnitt wird die Einrichtung AWS ParallelCluster mit einem verwalteten Active Directory-Server (AD) über das Lightweight Directory Access Protocol (LDAP) beschrieben. LDAP ist ein unsicheres Protokoll. Für Produktionssysteme empfehlen wir dringend die Verwendung von TLS-Zertifikaten (LDAPS), wie im folgenden Beispiel für LDAP (S) AWS Managed Microsoft AD -Clusterkonfigurationen Abschnitt beschrieben.

Konfigurieren Sie Ihren Cluster für die Integration in ein Verzeichnis, indem Sie die entsprechenden Informationen im DirectoryService Abschnitt der Cluster-Konfigurationsdatei angeben. Weitere Informationen finden Sie im Abschnitt DirectoryServiceKonfiguration.

Sie können das folgende Beispiel verwenden, um Ihren Cluster AWS Managed Microsoft AD über das Lightweight Directory Access Protocol (LDAP) zu integrieren.

Spezifische Definitionen, die für eine AWS Managed Microsoft AD Over-LDAP-Konfiguration erforderlich sind:

Holen Sie sich Ihre AWS Managed Microsoft AD Konfigurationsdaten:

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

Cluster-Konfiguration für einAWS 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

Um diese Konfiguration für ein Simple AD zu verwenden, ändern Sie den DomainReadOnlyUser Eigenschaftswert im DirectoryService Abschnitt:

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
Überlegungen:
  • Wir empfehlen, LDAP über TLS/SSL (oder LDAPS) und nicht nur LDAP zu verwenden. TLS/SSL stellt sicher, dass die Verbindung verschlüsselt ist.

  • Der Wert der DomainAddrEigenschaft DirectoryService/entspricht den Einträgen in der DnsIpAddrs Liste aus der describe-directories Ausgabe.

  • Wir empfehlen, dass Ihr Cluster Subnetze verwendet, die sich in derselben Availability Zone befinden, auf die DirectoryService/DomainAddrverweist. Wenn Sie eine benutzerdefinierte DHCP-Konfiguration (Dynamic Host Configuration Protocol) verwenden, die für Verzeichnis-VPCs empfohlen wird, und sich Ihre Subnetze nicht in der DirectoryService/DomainAddrAvailability Zone befinden, ist Querverkehr zwischen Availability Zones möglich. Die Verwendung benutzerdefinierter DHCP-Konfigurationen ist nicht erforderlich, um die AD-Integrationsfunktion für mehrere Benutzer zu verwenden.

  • Der DomainReadOnlyUserEigenschaftswert DirectoryService/gibt einen Benutzer an, der im Verzeichnis erstellt werden muss. Dieser Benutzer wird standardmäßig nicht erstellt. Wir empfehlen, diesem Benutzer keine Berechtigung zum Ändern von Verzeichnisdaten zu erteilen.

  • Der PasswordSecretArnEigenschaftswert DirectoryService/zeigt auf ein AWS Secrets Manager Geheimnis, das das Passwort des Benutzers enthält, den Sie für die DomainReadOnlyUserEigenschaft DirectoryService/angegeben haben. Wenn sich das Passwort dieses Benutzers ändert, aktualisieren Sie den geheimen Wert und aktualisieren Sie den Cluster. Um den Cluster für den neuen geheimen Wert zu aktualisieren, müssen Sie die Rechenflotte mit dem pcluster update-compute-fleet Befehl beenden. Wenn Sie Ihren Cluster für die Verwendung konfiguriert haben LoginNodes, beenden Sie LoginNodes/Poolsund aktualisieren Sie den Cluster, nachdem Sie LoginNodes/Pools/Countauf 0 gesetzt haben. Führen Sie dann den folgenden Befehl im Cluster-Kopfknoten aus.

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

Ein anderes Beispiel finden Sie unter auchIntegrieren von Active Directory.

Melden Sie sich bei einem Cluster an, der in eine AD-Domäne integriert ist

Wenn Sie die Active Delivery (AD) -Domänenintegrationsfunktion aktiviert haben, ist die Authentifizierung per Passwort auf dem Cluster-Hauptknoten aktiviert. Das Basisverzeichnis eines AD-Benutzers wird erstellt, wenn sich der erste Benutzer am Hauptknoten anmeldet oder wenn er zum ersten Mal zu dem AD-Benutzer auf dem Hauptknoten sudo-user wechselt.

Die Kennwortauthentifizierung ist für Cluster-Rechenknoten nicht aktiviert. AD-Benutzer müssen sich mit SSH-Schlüsseln bei Rechenknoten anmelden.

Standardmäßig werden SSH-Schlüssel bei der ersten SSH-Anmeldung am /${HOME}/.ssh Hauptknoten im AD-Benutzerverzeichnis eingerichtet. Dieses Verhalten kann deaktiviert werden, indem die GenerateSshKeysForUsersboolesche Eigenschaft DirectoryService/falsein der Clusterkonfiguration auf gesetzt wird. Standardmäßig GenerateSshKeysForUsersist DirectoryService/auf gesetzt. true

Wenn für eine AWS ParallelCluster Anwendung passwortloses SSH zwischen Clusterknoten erforderlich ist, stellen Sie sicher, dass die SSH-Schlüssel im Home-Verzeichnis des Benutzers korrekt eingerichtet sind.

AWS Managed Microsoft ADPasswörter laufen nach 42 Tagen ab. Weitere Informationen finden Sie AWS Managed Microsoft AD im AWS Directory ServiceAdministratorhandbuch unter Passwortrichtlinien verwalten für. Wenn Ihr Passwort abläuft, muss es zurückgesetzt werden, um den Clusterzugriff wiederherzustellen. Weitere Informationen finden Sie unter Wie setze ich ein Benutzerpasswort und abgelaufene Passwörter zurück.

Anmerkung

Wenn die AD-Integrationsfunktion nicht wie erwartet funktioniert, können die SSSD-Protokolle nützliche Diagnoseinformationen zur Behebung des Problems liefern. Diese Protokolle befinden sich im /var/log/sssd Verzeichnis auf den Clusterknoten. Standardmäßig werden sie auch in der CloudWatch Amazon-Protokollgruppe eines Clusters gespeichert.

Weitere Informationen finden Sie unter Problembehandlung bei der Mehrbenutzerintegration mit Active Directory.

MPI-Jobs werden ausgeführt

Wie in SchedMD vorgeschlagen, starten Sie MPI-Jobs Slurm als MPI-Bootstrapping-Methode. Weitere Informationen finden Sie in der offiziellen Slurm-Dokumentation oder in der offiziellen Dokumentation Ihrer MPI-Bibliothek.

In der offiziellen Dokumentation von IntelMPI erfahren Sie beispielsweise, dass Sie bei der Ausführung eines StarCCM-Jobs die Einstellung Slurm als Prozesskoordinator vornehmen müssen, indem Sie die Umgebungsvariable exportieren. I_MPI_HYDRA_BOOTSTRAP=slurm

Anmerkung

Bekanntes Problem

Falls Ihre MPI-Anwendung auf SSH als Mechanismus zur Erzeugung von MPI-Jobs angewiesen ist, ist es möglich, dass in Slurm ein bekannter Bug auftritt, der dazu führt, dass der Verzeichnisbenutzername falsch auf „nobody“ aufgelöst wird.

Konfigurieren Sie entweder Ihre Anwendung so, dass sie Slurm als MPI-Bootstrapping-Methode verwendet wird, oder finden Sie Bekannte Probleme bei der Benutzernamenauflösung im Abschnitt zur Fehlerbehebung weitere Informationen und mögliche Problemumgehungen.

Beispiel für LDAP (S) AWS Managed Microsoft AD -Clusterkonfigurationen

AWS ParallelClusterunterstützt den Zugriff mehrerer Benutzer durch Integration mit einem AWS Directory Service über das Lightweight Directory Access Protocol (LDAP) oder LDAP over TLS/SSL (LDAPS).

Die folgenden Beispiele zeigen, wie Clusterkonfigurationen für die Integration AWS Managed Microsoft AD über LDAP (S) erstellt werden.

Sie können dieses Beispiel verwenden, um Ihren Cluster AWS Managed Microsoft AD über LDAPS mit Zertifikatsüberprüfung zu integrieren.

Spezifische Definitionen für eine Konfiguration AWS Managed Microsoft AD über LDAPS mit Zertifikaten:
  • DirectoryService/LdapTlsReqCertmuss für LDAPS mit Zertifikatsüberprüfung auf hard (Standard) gesetzt sein.

  • DirectoryService/LdapTlsCaCertmuss den Pfad zu Ihrem CA-Zertifikat (Certificate of Authority) angeben.

    Das CA-Zertifikat ist ein Zertifikatspaket, das die Zertifikate der gesamten CA-Kette enthält, die Zertifikate für die AD-Domänencontroller ausgestellt hat.

    Ihr CA-Zertifikat und Ihre Zertifikate müssen auf den Clusterknoten installiert sein.

  • Die Hostnamen der Controller müssen für DirectoryService/angegeben werden DomainAddr, nicht für IP-Adressen.

  • DirectoryServiceDie DomainReadOnlyUserSyntax von/muss wie folgt lauten:

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

Beispiel für eine Cluster-Konfigurationsdatei für die Verwendung von AD über 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

Fügen Sie Zertifikate hinzu und konfigurieren Sie Domänencontroller im Post-Installationsskript:

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

Sie können die Hostnamen der Domänencontroller von Instanzen abrufen, die der Domäne angehören, wie in den folgenden Beispielen gezeigt.

Aus einer Windows-Instanz

$ 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

Von der Linux-Instanz

$ 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

Sie können dieses Beispiel verwenden, um Ihren Cluster mit einem Over-LDAPS ohne AWS Managed Microsoft AD Zertifikatsüberprüfung zu integrieren.

Spezifische Definitionen für eine Konfiguration AWS Managed Microsoft AD über LDAPS ohne Zertifikatsverifizierung:

Beispiel für eine Cluster-Konfigurationsdatei zur Verwendung AWS Managed Microsoft AD über LDAPS ohne Zertifikatsüberprüfung:

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