MLflow 인증 설정

Mlflow Injeung Seoljeong



MLflow 서버의 실험, 모델 및 아티팩트에 대한 액세스를 보호하려면 인증을 구성해야 합니다. 일단 활성화되면 MLflow 서버에서 호스팅하는 리소스에 액세스하려는 모든 사용자는 로그인해야 합니다. MLflow에는 기본적으로 내장 인증이 포함되어 있지 않으므로 다른 서버에서 작동하도록 설정해야 합니다. 인증 기술.

서버에서 MLflow 인증을 활성화하는 방법

MLflow 인증을 활성화하려면 후속 명령을 사용하여 MLflow UI를 실행합니다.

mlflow 서버 --app-name 기본 인증

app-name 옵션 없이 서버를 다시 시작하면 MLflow 서버 관리자는 원할 때마다 이 기능을 비활성화하도록 선택할 수 있습니다. 다음은 Windows 운영 체제의 명령줄 터미널에 표시되는 명령의 스크린샷입니다(경고 무시).









MLflow 서버는 이제 다음을 입력하여 브라우저를 통해 액세스할 때 서버 실험 및 아티팩트에 액세스하려면 사용자 이름과 비밀번호가 필요합니다. http://127.0.0.1:5000 URL로.







MLflow에서 인증을 설정하는 방법

지침, 명령 및 구성 파일 이름을 약간 수정한 경우 Windows에서 MLflow 인증을 설정하는 것은 Linux에서 설정하는 것과 매우 유사합니다.

다음은 'htpasswd' 및 Nginx를 역방향 프록시로 사용하여 Windows에서 MLflow 인증을 구성하기 위한 자습서입니다. 이 구성을 사용하면 간단한 인증이 가능하며, 무단 액세스를 방지하기 위해 MLflow 및 Nginx를 실행하는 컴퓨터를 적절하게 보호하는 것이 중요합니다. 프로덕션 환경 또는 보다 엄격한 보안 요구 사항을 위해 OAuth를 사용하거나 MLflow를 외부 ID 공급자와 연결하는 것을 고려해보세요.



이 튜토리얼에서는 사용자/비밀번호 관리를 위해 'htpasswd'를 사용하고 역방향 프록시로 Nginx를 사용하여 기본 인증을 설정하는 방법을 살펴보겠습니다.

1단계: Htpasswd 설치

'htpasswd'는 기본 Windows 응용 프로그램은 아니지만 여기서는 Apache Lounge의 htpasswd 유틸리티로 알려진 타사 도구를 사용합니다. Apache Lounge 공식 웹사이트에서 다운로드하세요. 다음은 zip 파일을 다운로드하고 작업 디렉터리에 추출한 후 Apache의 bin 디렉터리에 'htpasswd.exe'가 있음을 보여주는 스크린샷입니다.

명령 프롬프트에서 'htpasswd.exe'를 사용하려면 지금 환경 변수의 시스템 PATH 위치에 복사하세요.

2단계: 비밀번호 파일 생성

비밀번호 파일을 생성하려면 명령 프롬프트를 열고 적절한 위치로 이동하세요. 새 비밀번호 파일을 생성 또는 설정하거나 현재 비밀번호 파일에 사용자를 추가하려면 'htpasswd'를 사용하십시오. 파일의 각 줄에는 암호화된 사용자 이름과 비밀번호가 있어야 합니다. 사용자에 대한 새 자격 증명을 추가하거나 기존 사용자의 비밀번호를 업데이트하려면 다음 명령을 사용합니다.

htpasswd -c /path/to/PASSWORD_FILE_NAME 사용자 이름

Python 폴더(이 경우 작업 디렉터리)로 이동하여 다음 코드 조각과 같이 터미널이나 프롬프트 창에 앞서 언급한 명령을 입력합니다. 암호 파일 mlflow-authfile이 생성됩니다.

'admin' 사용자 이름을 추가하고 'enter' 키를 누르면 시스템에서 비밀번호를 묻는 메시지가 나타납니다. 프롬프트에 동일한 비밀번호를 다시 입력하면 사용자가 성공적으로 생성되고 필요한 비밀번호로 사용자가 추가되었음을 표시합니다.

다음은 필요한 비밀번호 파일이 생성되는 디렉터리를 보여주는 스크린샷입니다.

'사용자 이름:비밀번호' 형식의 사용자 이름과 암호화된 비밀번호가 파일의 각 줄에 나타나야 합니다.

3단계: Nginx 설치 및 구성

공식 웹사이트에서 Nginx의 Windows 바이너리를 다운로드하세요. 다운로드한 파일을 Nginx 폴더의 작업 디렉터리에 추출합니다.

Nginx에서 새로운 MLFlow 서버 블록을 만듭니다. Nginx 디렉터리에서 명령 프롬프트를 열어 'mlflow-site' 디렉터리를 만듭니다.

이제 MLflow 구성을 위한 새 파일을 만들 차례입니다. 서버의 도메인 이름이나 IP 주소를 로컬 호스트로 바꾸세요. 또한 경로에 슬래시를 사용하여 D:/작업/Python/mlflow-auth 이전에 생성된 비밀번호 파일의 정확한 경로를 사용합니다. Proxy_pass 값을 MLflow 서버의 URI로 변경합니다. 포트는 필요한 포트 번호로 조정 가능합니다.

변경할 코드 조각은 다음과 같습니다.

IP 주소를 찾으려면 명령 프롬프트에 'ipconfig' 명령을 입력하십시오.

4단계: Nginx 서버 블록 활성화

Nginx 서버 블록을 활성화하려면 명령 프롬프트에서 다음 명령을 사용하여 심볼릭 링크를 만듭니다.

CD D:\Work\nginx\conf\mlflow- 대지

mklink mlflow D:\Work\nginx\conf\mlflow- 대지 \mlflow

5단계: Nginx 시작

'nginx.exe' 명령을 입력하고 Nginx 디렉터리로 이동하여 명령 프롬프트에서 Nginx를 시작합니다.

6단계: MLflow 서버 시작

MLflow 서버의 백엔드 스토리지 경로가 포함된 다음 명령을 사용하면 새 터미널 창이나 명령 프롬프트에서 MLflow 서버를 시작하거나 다시 시작할 수 있습니다. 실험, 검색 및 기타 작업의 결과는 다음 경로에 저장됩니다.

MLflow 서버를 시작하는 명령:

mlflow 서버 --host 127.0.0.1 --port 5000 --backend-store-uri D:/Work/Python/Storage

앞서 언급한 명령을 실행한 후 다음 오류가 표시되면 걱정하지 마세요. 문제를 해결하려면 다음 명령을 실행하세요.

오류를 해결하려면 모델 레지스트리 데이터를 로컬 파일 시스템에 저장하도록 URI 체계를 변경하십시오.

mlflow 서버 --host 127.0.0.1 --port 5000 --백엔드-스토어-uri 파일 :///D:/작업/파이썬/스토리지

7단계: 인증을 통해 MLflow에 액세스

이제 Nginx는 누군가가 도메인 또는 IP 주소를 통해 MLflow에 액세스할 때 MLflow 서버 및 해당 아티팩트에 대한 액세스 권한을 부여하기 전에 사용자 이름과 비밀번호를 요청합니다. 이제 MLflow의 UI 및 API에 액세스하려면 웹 브라우저를 사용하여 MLflow에 액세스할 때 먼저 로그인 사용자 이름과 비밀번호를 제공해야 합니다.

결론

Windows의 MLflow 인증을 사용하려면 인증이 설정된 역방향 프록시 뒤에서 MLflow를 수행해야 합니다. 이 경우 Nginx는 사용자 브라우저와 MLflow 서버 사이의 중개자 역할을 하는 역방향 프록시 역할을 합니다. 사용자는 기본 인증을 시행하도록 Nginx를 구성하여 MLflow용 사용자 인터페이스와 API에 액세스하기 전에 사용자 이름과 비밀번호를 입력하라는 요청을 받습니다.

마지막으로, 가장 최신의 안전한 관행을 준수하려면 항상 MLflow 및 Nginx에 대한 최신 문서와 리소스를 참조하는 것이 중요합니다.