PAM 인증 예제¶
다음 섹션에서는 Driverless AI에서 Pluggable Authentication Modules (PAM) 을 활성화하는 방법에 관해 설명합니다. Docker 이미지에서 환경 변수를 지정하거나 config.toml 파일을 업데이트하여 활성화할 수 있습니다.
Note: 이것은 사용자가 PAM의 작동을 위해 스스로의 환경에서 권한을 부여하는 방법을 이해하고 있다고 가정합니다. 특히 Driverless AI의 경우, Driverless AI 프로세스 소유자가 /etc/shadow 에 액세스(루트 없이)할 수 있는지 확인하십시오. 그렇지 않으면 인증이 실패합니다.
Note: 다음 지침은 CentOS 7 호스트에만 적용됩니다.
해당 예제에서 호스트 Linux 시스템은 인증을 위해 PAM이 활성화되고 해당 Linux 시스템에서 실행되는 Docker를 가지고 있습니다. 목표는 Linux 시스템이 사용자 정보를 호스팅하는 동안 Driverless AI 인증을 위해 PAM을 활성화하는 것입니다.
사용자 이름(이 경우는 《eric》)이 Linux 시스템에 정의되어 있는지 확인하십시오.
[root@Linux-Server]# cat /etc/shadow | grep eric eric:$6$inOv3GsQuRanR1H4$kYgys3oc2dQ3u9it02WTvAYqiGiQgQ/yqOiOs.g4F9DM1UJGpruUVoGl5G6OD3MrX/3uy4gWflYJnbJofaAni/::0:99999:7:::
Linux 서버에서 Docker를 시작하고 Driverless AI에서 PAM을 활성화하십시오.
[root@Linux-Server]# docker run \ --rm \ --shm-size=256m \ -u `id -u`:`id -g` \ -p 12345:12345 \ -v `pwd`/config:/config \ -v `pwd`/data:/data \ -v `pwd`/log:/log \ -v `pwd`/license:/license \ -v `pwd`/tmp:/tmp \ -v /etc/passwd:/etc/passwd \ -v /etc/shadow:/etc/shadow \ -v /etc/pam.d/:/etc/pam.d/ \ -e DRIVERLESS_AI_AUTHENTICATION_METHOD="pam" \ h2oai/dai-centos7-x86_64:1.10.1-cuda11.2.2.xx
Driverless AI 컨테이너 ID를 획득하십시오. 이 ID는 다음 단계에 필요하며 Driverless AI가 시작 시마다 달라집니다.
[root@Linux-Server]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e333475ffd8 opsh2oai/h2oai-runtime "./run.sh" 36 seconds ago Up 35 seconds 192.168.0.1:9090->9090/tcp, 192.168.0.1:12345->12345/tcp, 192.168.0.1:12348->12348/tcp clever_swirles
Linux 서버에서 Docker Driverless AI 인스턴스가 shadow 파일을 볼 수 있는지 확인하십시오. 밑의 예제는 이전 단계에서 획득한 컨테이너 ID인
8e333475ffd8
을 참조합니다.
[root@Linux-Server]# docker exec 8e333475ffd8 cat /etc/shadow|grep eric eric:$6$inOv3GsQuRanR1H4$kYgys3oc2dQ3u9it02WTvAYqiGiQgQ/yqOiOs.g4F9DM1UJGpruUVoGl5G6OD3MrX/3uy4gWflYJnbJofaAni/::0:99999:7:::
웹 브라우저를 열고 Driverless AI Docker 이미지를 실행하는 Linux 시스템에서 포트 12345로 이동하십시오. Linux 시스템에 알려진 자격 증명을 통해 로그인하십시오. 이제 로그인 정보는 PAM을 통해 확인됩니다.
해당 예제에서 호스트 Linux 시스템에는 인증을 위해 활성화된 PAM이 있습니다. 목표는 Linux 시스템이 사용자 정보를 호스팅하는 동안 Driverless AI 인증을 위해 PAM을 활성화하는 것입니다.
이 예제는 PAM의 활성화를 위해 config.toml 파일을 편집하는 방법을 보여줍니다. config.toml 파일은 RPM 또는 DEB가 설치된 후, etc/dai 폴더에서 사용이 가능합니다. 해당 파일에서 authentication_method 변수를 편집하여 PAM 인증을 활성화한 후, Driverless AI를 재시작합니다.
사용자 이름(이 경우는 《eric》)이 Linux 시스템에 정의되어 있는지 확인하십시오.
[root@Linux-Server]# cat /etc/shadow | grep eric eric:$6$inOv3GsQuRanR1H4$kYgys3oc2dQ3u9it02WTvAYqiGiQgQ/yqOiOs.g4F9DM1UJGpruUVoGl5G6OD3MrX/3uy4gWflYJnbJofaAni/::0:99999:7:::
Driverless AI config.toml 파일을 내보내거나 ~/.bashrc에 추가합니다. 아래 예를 참조하십시오.
# DEB and RPM export DRIVERLESS_AI_CONFIG_FILE="/etc/dai/config.toml" # TAR SH export DRIVERLESS_AI_CONFIG_FILE="/path/to/your/unpacked/dai/directory/config.toml"
PAM이 활성화되도록 config.toml 파일의
authentication_method
변수를 편집하십시오.
# authentication_method # unvalidated : Accepts user id and password, does not validate password # none : Does not ask for user id or password, authenticated as admin # pam : Accepts user id and password, Validates user with operating system # ldap : Accepts user id and password, Validates against an ldap server, look # local: Accepts a user id and password, Validated against a htpasswd file provided in local_htpasswd_file # for additional settings under LDAP settings authentication_method = "pam"
Driverless AI를 시작하십시오. Driverless AI를 시작하는 데 사용되는 명령은 설치 유형에 따라 다릅니다.
# Linux RPM or DEB with systemd [root@Linux-Server]# sudo systemctl start dai # Linux RPM or DEB without systemd [root@Linux-Server]# sudo -H -u dai /opt/h2oai/dai/run-dai.sh # Linux TAR SH [root@Linux-Server]# ./run-dai.sh
웹 브라우저를 열고 Driverless AI 실행하는 Linux 시스템에서 포트 12345로 이동하십시오. Linux 시스템에 알려진 자격 증명을 통해 로그인하십시오(첫 번째 단계에서 확인). 이제 로그인 정보는 PAM을 통해 확인됩니다.