サーバー上で MLflow 認証を有効にする方法
次のコマンドを使用して MLflow UI を起動し、MLflow 認証を有効にします。
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 の公式 Web サイトからダウンロードします。以下は、zip ファイルをダウンロードして作業ディレクトリに解凍した後、Apache の bin ディレクトリに「htpasswd.exe」があることを示すスクリーンショットです。
任意のコマンド プロンプトから「htpasswd.exe」を使用するには、それをシステムの環境変数の PATH 内の場所にコピーします。
ステップ 2: パスワード ファイルを作成する
パスワード ファイルを生成するには、コマンド プロンプトを開き、適切な場所に移動します。 「htpasswd」を使用して、新しいパスワード ファイルを作成または設定するか、現在のパスワード ファイルにユーザーを追加します。ファイル内の各行には、暗号化されたユーザー名とパスワードが必要です。次のコマンドを使用して、ユーザーの新しい資格情報を追加するか、既存のユーザーのパスワードを更新します。
htpasswd -c /path/to/PASSWORD_FILE_NAME ユーザー名次のスニペットに示すように、Python フォルダー (この場合は作業ディレクトリ) に移動し、ターミナルまたはプロンプト ウィンドウに前述のコマンドを入力します。パスワード ファイル mlflow-authfile が作成されます。
「admin」ユーザー名を追加して「enter」キーを押すと、システムはパスワードを要求します。プロンプトに同じパスワードを再入力すると、ユーザーが正常に作成され、ユーザーが必要なパスワードで追加されたことが表示されます。
以下は、必要なパスワード ファイルが作成されるディレクトリを示すスクリーンショットです。
ユーザー名と暗号化されたパスワードが「ユーザー名:パスワード」形式でファイルの各行に表示されます。
ステップ 3: Nginx のインストールと構成
公式 Web サイトから Nginx の Windows バイナリを入手します。ダウンロードしたファイルを Nginx フォルダー内の作業ディレクトリに解凍します。
Nginx で新しい MLFlow サーバー ブロックを作成します。 Nginx ディレクトリでコマンド プロンプトを開いて、「mlflow-site」ディレクトリを作成します。
ここで、MLflow 構成用の新しいファイルを作成します。サーバーのドメイン名または IP アドレスをローカルホストに置き換えます。また、パス内でスラッシュを使用して、 D:/Work/Python/mlflow-auth 以前に作成したパスワード ファイルへの正確なパスを使用します。 proxy_pass の値を MLflow サーバーの URI に変更します。ポートは必要なポート番号に調整可能です。
変更するコードのスニペットは次のとおりです。
コマンド プロンプトで「ipconfig」コマンドを入力して、IP アドレスを確認します。
ステップ 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:/仕事/Python/ストレージ
ステップ 7: 認証を使用して MLflow にアクセスする
現在、Nginx は、誰かがドメインまたは IP アドレス経由で MLflow にアクセスするときに、MLflow サーバーとそのアーティファクトへのアクセスを許可する前にユーザー名とパスワードを要求します。 MLflow の UI と API にアクセスするには、Web ブラウザを使用して MLflow にアクセスするときに、まずログイン ユーザー名とパスワードを入力する必要があります。
結論
Windows での MLflow 認証では、認証がオンになっているリバース プロキシの背後で MLflow を実行する必要があります。この例では、Nginx はリバース プロキシとして機能し、ユーザーのブラウザと MLflow サーバーの間の仲介者として機能します。ユーザーは、基本認証を強制するように Nginx を構成することで、MLflow のユーザー インターフェイスと API にアクセスする前に、ユーザー名とパスワードの入力を要求されます。
最後に重要なことですが、最新の安全なプラクティスに確実に準拠していることを確認するには、MLflow と Nginx の最新のドキュメントとリソースを参照することが常に重要です。