Azure Machine Learning とその他の Azure サービス間の認証

完了

Azure Machine Learning では、さまざまな Azure サービスを活用して、ML プロジェクトをエンドツーエンドでサポートしています。 これらのサービスには次のものが含まれます。

  • Azure Storage: Azure Machine Learning では、いくつかの目的で Azure Storage が使用されます。 Azure Machine Learning ワークスペースを作成すると、Azure BLOB コンテナーと Azure ファイル共有がデータストアとして自動的に登録されます。 これらは、機械学習の実験に必要なデータを格納および管理するために使用されます。
  • Azure Key Vault: ストレージ アカウントのアクセス情報など、セキュリティ シークレットを保存できる場所。 これは、Python コードにセキュリティ シークレットを追加するのではなく、推奨される方法です。 Azure Key Vault インスタンスは、ワークスペースのデプロイ中に作成されます。
  • Azure Container Registry: Azure Machine Learning では、事前構築済みのコンテナー イメージを使用して、ML モデルをコンピューティング インスタンスまたはクラスターにデプロイできます。
  • Azure Monitor: Azure Monitor サービスは、システムのすべてのコンポーネントからメトリックとログを収集して集計します。 これらの分析情報を使用して、モデルのパフォーマンスを評価できます。

ユーザーが Azure Machine Learning ワークスペースにアクセスするときと同様に、Azure サービスは他の Azure サービスにアクセスするために認証する必要があります。 Azure Machine Learning の場合、ワークスペース リソースに対してシステム割り当てマネージド ID が作成されます。 ただし、Azure Machine Learning では複数の ID の種類がサポートされています。

マネージド ID の種類 ロールの割り当ての作成 目的
システム割り当て (SAI) Microsoft が管理 リソースに関連付けられているライフサイクル。単一リソースの使用。使い始めるのが簡単
システム割り当て + ユーザー割り当て (SAI + UAI) ユーザーが管理する ユーザー割り当て ID の独立したライフサイクル、複数リソースの使用によって、最小限の特権アクセスが制御されます。 トレーニング ジョブでデータにアクセスします。

SAI ID タイプを使用してワークスペースを作成すると、SAI+UAI に更新できますが、SAI+UAI から SAI に戻りません。 複数のユーザー割り当て ID を同じワークスペースに割り当てたり、システム割り当て ID に加えて追加のユーザー割り当て ID を割り当てたりすることもできます。

システム割り当て ID とユーザー割り当て ID

システム割り当て ID とユーザー割り当て ID のどちらを選択するかは、特定のニーズと、会社が Azure リソースを管理する方法によって異なります。

  • システム割り当て ID は、特定のリソースに対して Azure によって作成および管理されます。 リソースが削除されると、関連付けられているシステム割り当て ID も削除され、ID ライフサイクルが属するリソースと緊密に結合されます。 この種類の ID は、ID を 1 つのリソースでのみ使用する必要があるシナリオに最適です。これにより、AZURE が ID の資格情報を管理するため、シンプルになり、管理オーバーヘッドが軽減されます。

  • ユーザー割り当て ID は、特定のリソースとは別に作成され、複数のリソース間で共有できます。 これにより、さまざまなリソース間で一貫性のある ID を必要とするアプリケーションに対して非常に汎用性が高くなり、アクセス許可とアクセス制御の管理が容易になります。 ユーザー割り当て ID は、使用しているリソースが削除された後も保持されるため、ID の再デプロイと再利用の柔軟性が向上します。

ユーザー割り当て管理対象 ID 固有の構成

既定の設定 (Azure Storage、Azure Container Registry、Azure Key Vault が自動的に作成されます) を使用して Azure Machine Learning ワークスペースを作成すると、システム割り当てマネージド ID が適切なアクセス許可で構成されます。 代わりにユーザー割り当て ID に変更する場合 (または、ストレージや Key Vault などに既存のリソースを使用する場合)、そのアカウントへの次のアクセスを設定する必要があります。

リソース アクセス許可
Azure Machine Learning ワークスペース 投稿者
Azure Storage 共同作成者 (コントロール プレーン) + ストレージ BLOB データ共同作成者 (データ プレーン、省略可能、Azure Machine Learning スタジオでデータ プレビューを有効にするため)
Azure Key Vault の (RBAC アクセス許可モデルを使用する場合) 共同作成者 (コントロール プレーン) + Key Vault 管理者 (データ プレーン)
Azure Key Vault (アクセス ポリシーの許可モデルを使用する場合) 共同作成者 + 消去操作以外の任意のアクセス ポリシーのアクセス許可
Azure コンテナ レジストリ 投稿者
Azure Application Insights 投稿者

ストレージなどの Azure リソースに Azure Machine Learning ワークスペースのアクセス許可を割り当てるには、次の手順を実行します。

  1. Azure portal で、Azure Machine Learning ワークスペースに関連付けられている Azure Storage リソースを選択します。

  2. 左側のメニューでアクセス制御 (IAM) を選択します。

  3. [追加] ドロップダウン メニューを選択し、[ロールの割り当ての追加] を選択します。

  4. [ロール] タブで、ストレージ BLOB データ共同作成者を検索し、一覧からそのロールを選択します。

    Azure portal でストレージ BLOB へのアクセスを構成するスクリーンショット。

  5. [次へ] を選択します。

  6. [メンバー] タブで、[アクセスの割り当て先] オプションから [マネージド ID] を選択し、[+ メンバーの選択] リンクを選択します。

  7. 右側のウィンドウで、[マネージド ID] ドロップダウン メニューを選択し、[ユーザー割り当てマネージド ID] オプションをマークします。 これにより、Microsoft Entra ID からのすべてのユーザー割り当てマネージド ID が表示されます。

  8. 適切な ID を選択し、[選択] を選択します。

  9. 選択した ID が一覧表示されていることを確認します。

    Azure リソースへのマネージド ID アクセスの割り当てのスクリーンショット。

  10. [確認と割り当て] を 2 回クリックして割り当てを確定します。

コンピューティング関連の ID は、次のシナリオで使用されます。

  • コンピューティング クラスター: システムは ID を使用して、ユーザーのストレージ マウント、コンテナー レジストリ、データストアを設定します。
  • Kubernetes クラスター: システムは ID を使用して、ユーザーのストレージ マウント、コンテナー レジストリ、データストアを設定します。

どちらの場合も、既定のマネージド ID はシステム割り当てマネージド ID か、そのリソースの最初のユーザー割り当てマネージド ID です。 また、Azure Machine Learning コンピューティング クラスターと Kubernetes クラスターの両方で、1 つのシステム割り当て ID または複数のユーザー割り当て ID のみがサポートされ、両方が同時にサポートされるわけではありません。 最後に、このユニットのシナリオでは、送信されたジョブのコード内からリソースにアクセスするために ID を適用するかどうかは考慮しません。 その場合、コード内からの ID がアクセスに使用されます。

データ ストレージ

ID ベースのデータ アクセスを使用するデータストアを作成すると、ストレージ サービスにアクセスするためのアクセス許可があることを確認するために Azure アカウントが使用されます。 ID ベースのデータ アクセス シナリオでは、認証資格情報は保存されません。 ストレージ アカウント情報のみがデータストアに格納されます。

これに対し、アカウント キーや SAS トークンなど、資格情報ベースの認証を使用するデータストアでは、その接続情報が、ワークスペースに関連付けられている Azure Key Vault にキャッシュされます。 十分なアクセス許可を持つ他のワークスペース ユーザーは、キャッシュされた資格情報を取得できます。これは、一部の組織にとってセキュリティ上の問題になる可能性があります。

手記

データは Azure Machine Learning ワークスペースに直接格納されません。 資格情報ベースの認証シナリオでは、これらの資格情報は Azure Key Vault に格納されます。