Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Utilisation de l'authentification PAM - Amazon EMR

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.

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.

Utilisation de l'authentification PAM

La création d'utilisateurs PAM JupyterHub sur Amazon EMR est un processus en deux étapes. La première étape consiste à ajouter des utilisateurs au système d'exploitation qui s'exécute dans le conteneur jupyterhub sur le nœud principal, et d'ajouter le répertoire de base correspondant pour chaque utilisateur. La deuxième étape consiste à ajouter ces utilisateurs du système d'exploitation en tant qu' JupyterHubutilisateurs, un processus connu sous le nom de liste blanche dans. JupyterHub Une fois qu'un JupyterHub utilisateur est ajouté, il peut se connecter à l' JupyterHub URL et fournir les informations d'identification de son système d'exploitation pour y accéder.

Lorsqu'un utilisateur se connecte, JupyterHub ouvre l'instance de serveur de bloc-notes pour cet utilisateur, qui est enregistrée dans le répertoire personnel de l'utilisateur sur le nœud principal, à savoir/var/lib/jupyter/home/username. Si aucune instance de serveur de bloc-notes n'existe, JupyterHub génère une instance de bloc-notes dans le répertoire personnel de l'utilisateur. Les sections suivantes montrent comment ajouter des utilisateurs individuellement au système d'exploitation et à JupyterHub, puis comment utiliser un script bash rudimentaire qui ajoute plusieurs utilisateurs.

Ajout d'un utilisateur du système d'exploitation au conteneur

L'exemple suivant utilise tout d'abord la commande useradd dans le conteneur pour ajouter un utilisateur unique, diego, et créer un répertoire de base pour cet utilisateur. La deuxième commande utilise chpasswd pour établir le mot de passe associé à diego pour cet utilisateur. Les commandes sont exécutées sur la ligne de commande du nœud principal lorsque vous êtes connecté à l'aide de SSH. Vous pouvez également exécuter ces commandes à l'aide d'une étape, comme décrit précédemment dans Administration par soumission d'étapes.

sudo docker exec jupyterhub useradd -m -s /bin/bash -N diego sudo docker exec jupyterhub bash -c "echo diego:diego | chpasswd"

Ajouter un JupyterHub utilisateur

Vous pouvez utiliser le panneau d'administration JupyterHub ou l'API REST pour ajouter des utilisateurs et des administrateurs, ou simplement des utilisateurs.

Pour ajouter des utilisateurs et des administrateurs à l'aide du panneau d'administration dans JupyterHub
  1. Connectez-vous au nœud principal via SSH et connectez-vous à https : //:9443 MasterNodeDNS avec une identité dotée d'autorisations d'administrateur.

  2. Choisissez Control Panel (Panneau de configuration), Admin.

  3. Choisissez User (Utilisateur), Add Users (Ajouter des utilisateurs), ou choisissez Admin, Add Admins (Ajouter des administrateurs).

Pour ajouter un utilisateur à l'aide de l'API REST
  1. Connectez-vous au nœud principal à l'aide de SSH et utilisez la commande suivante sur le nœud principal, ou exécutez la commande en tant qu'étape.

  2. Procurez-vous un jeton administratif pour effectuer des demandes d'API et remplacez-le AdminToken à l'étape suivante par ce jeton.

  3. Utilisez la commande suivante en UserName remplaçant par un utilisateur du système d'exploitation créé dans le conteneur.

    curl -XPOST -H "Authorization: token AdminToken" "https://$(hostname):9443/hub/api/users/UserName
Note

Vous êtes automatiquement ajouté en tant qu'utilisateur JupyterHub non administrateur lorsque vous vous connectez à l'interface JupyterHub Web pour la première fois.

Exemple : script bash pour ajouter plusieurs utilisateurs

L'exemple de script bash suivant associe les étapes précédentes de cette section pour créer plusieurs JupyterHub utilisateurs. Le script peut être exécuté directement sur le nœud principal, ou chargé sur Amazon S3 et exécuté en tant qu'étape.

Le script établit tout d'abord une liste des noms d'utilisateur, puis utilise la commande jupyterhub token pour créer un jeton d'API pour l'administrateur par défaut jovyan. Ensuite, il crée un utilisateur du système d'exploitation dans le conteneur jupyterhub pour chaque utilisateur, et lui affecte un mot de passe initial équivalent à son nom d'utilisateur. Enfin, il appelle l'opération de l'API REST pour créer chaque utilisateur dans JupyterHub. Il transmet le jeton généré précédemment dans le script et transfère la réponse REST à jq pour faciliter l'affichage.

# Bulk add users to container and JupyterHub with temp password of username set -x USERS=(shirley diego ana richard li john mary anaya) TOKEN=$(sudo docker exec jupyterhub /opt/conda/bin/jupyterhub token jovyan | tail -1) for i in "${USERS[@]}"; do sudo docker exec jupyterhub useradd -m -s /bin/bash -N $i sudo docker exec jupyterhub bash -c "echo $i:$i | chpasswd" curl -XPOST --silent -k https://$(hostname):9443/hub/api/users/$i \ -H "Authorization: token $TOKEN" | jq done

Enregistrez le script dans un emplacement Amazon S3 tel que s3://amzn-s3-demo-bucket/createjupyterusers.sh. Vous pouvez ensuite utiliser script-runner.jar pour l'exécuter en tant qu'étape.

Exemple : exécution du script lors de la création d'un cluster (AWS CLI)

Note

Les caractères de continuation de ligne Linux (\) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

aws emr create-cluster --name="MyJupyterHubCluster" --release-label emr-5.36.2 \ --applications Name=JupyterHub --log-uri s3://amzn-s3-demo-bucket/MyJupyterClusterLogs \ --use-default-roles --instance-type m5.xlarge --instance-count 2 --ec2-attributes KeyName=MyKeyPair \ --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket/createjupyterusers.sh"]

Exécution du script sur un cluster existant (AWS CLI)

Note

Les caractères de continuation de ligne Linux (\) sont inclus pour des raisons de lisibilité. Ils peuvent être supprimés ou utilisés dans les commandes Linux. Pour Windows, supprimez-les ou remplacez-les par un caret (^).

aws emr add-steps --cluster-id j-XXXXXXXX --steps Type=CUSTOM_JAR,\ Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://region.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://amzn-s3-demo-bucket/createjupyterusers.sh"]
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.