기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
PAM인증 사용
JupyterHub EMRAmazon에서 PAM 사용자를 생성하는 과정은 2단계로 이루어집니다. 첫 번째 단계는 마스터 노드의 jupyterhub
컨테이너에서 실행 중인 운영 체제에 사용자를 추가하는 것과 해당 사용자를 각 사용자의 홈 디렉터리에 추가하는 것입니다. 두 번째 단계는 이러한 운영 체제 사용자를 사용자로 추가하는 것인데 JupyterHub, 이를 화이트리스트에 추가한다고 합니다. JupyterHub JupyterHub 사용자가 추가되면 해당 사용자는 에 접속하여 액세스를 위한 운영 체제 자격 증명을 제공할 수 있습니다. JupyterHub URL
사용자가 로그인하면 해당 사용자의 노트북 서버 인스턴스가 JupyterHub 열립니다. 이 인스턴스는 마스터 노드의 사용자 홈 디렉토리, 즉, 에 저장됩니다/var/lib/jupyter/home/
. 노트북 서버 인스턴스가 없는 경우, 사용자의 홈 디렉터리에 노트북 인스턴스를 JupyterHub 생성합니다. 다음 섹션에서는 운영 체제와 운영 체제에 사용자를 개별적으로 추가하는 방법과 여러 사용자를 추가하는 기초적인 bash 스크립트를 보여줍니다. JupyterHub username
컨테이너에 운영 체제 사용자 추가
다음 예제에서는 먼저 컨테이너 내에서 useradd
sudo docker exec jupyterhub useradd -m -s /bin/bash -N diego sudo docker exec jupyterhub bash -c "echo diego:diego | chpasswd"
JupyterHub 사용자 추가
JupyterHub 또는 에서 관리자 패널을 사용하여 사용자와 관리자를 추가하거나 사용자만 추가할 수 있습니다. REST API
의 관리자 패널을 사용하여 사용자와 관리자를 추가하려면 JupyterHub
https://를 사용하여 마스터 노드에 SSH 연결하고 로그인합니다.
MasterNodeDNS
:9443 (관리자 권한이 있는 ID 포함)제어판, Admin을 선택합니다.
사용자, 사용자 추가를 선택하거나 Admin, Add Admins(Admin 추가)를 선택합니다.
를 사용하여 사용자를 추가하려면 REST API
마스터 노드에서 다음 명령을 사용하여 SSH 마스터 노드에 연결하거나 명령을 단계적으로 실행합니다.
관리 토큰을 획득하여 API 요청하고 교체하십시오.
AdminToken
다음 단계에서 해당 토큰을 사용하세요.다음 명령을 사용하여 바꾸십시오.
UserName
컨테이너 내에 생성된 운영 체제 사용자와 함께curl -XPOST -H "Authorization: token
AdminToken
" "https://$(hostname):9443/hub/api/users/UserName
참고
JupyterHub웹 인터페이스에 처음 로그인하면 자동으로 JupyterHub 비관리자 사용자로 추가됩니다.
예제: 여러 사용자를 추가하는 Bash 스크립트
다음 샘플 bash 스크립트는 이 섹션의 이전 단계를 결합하여 여러 JupyterHub 사용자를 생성합니다. 이 스크립트는 프라이머리 노드에서 직접 실행할 수도 있고, Amazon S3에 업로드한 다음 하나의 단계로 실행할 수도 있습니다.
스크립트는 먼저 사용자 이름 배열을 설정하고 jupyterhub token
명령을 사용하여 기본 관리자인 jovyan의 API 토큰을 만듭니다. 그런 다음 해당 사용자용 jupyterhub
컨테이너에 운영 체제 사용자를 생성합니다. 이때 최초 암호는 각 사용자 이름과 동일하게 지정됩니다. 마지막으로 각 사용자를 생성하는 REST API 작업을 호출합니다. JupyterHub 스크립트에서 이전에 생성된 토큰을 전달하고 REST 응답을 파이프하여 보기 쉽도록 jq
합니다.
# 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
이 스크립트를 Amazon S3의 위치(예: s3://mybucket/createjupyterusers.sh
)에 저장합니다. 그런 다음 script-runner.jar
을 사용하여 이를 하나의 단계로 실행하면 됩니다.
예제: 클러스터 생성 시 스크립트 실행(AWS CLI)
참고
가독성을 위해 Linux 줄 연속 문자(\)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.
aws emr create-cluster --name="
MyJupyterHubCluster
" --release-label emr-5.36.2 \ --applications Name=JupyterHub --log-uris3://MyBucket/MyJupyterClusterLogs
\ --use-default-roles --instance-type m5.xlarge --instance-count2
--ec2-attributes KeyName=MyKeyPair
\ --steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,\ Jar=s3://region
.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://mybucket/createjupyterusers.sh"]
기존 클러스터에서 스크립트 실행(AWS CLI)
참고
가독성을 위해 Linux 줄 연속 문자(\)가 포함됩니다. Linux 명령에 사용하거나 제외할 수 있습니다. Windows에서는 제외시키거나 캐럿(^)으로 바꿉니다.
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://mybucket/createjupyterusers.sh"]