Microsoft Discovery のマネージド ID

Microsoft Discovery では、ユーザー割り当てマネージド ID (UAMI) を使用して、ユーザーに代わってAzureリソースに対する認証を行います。 シークレットや接続文字列を管理するのではなく、マネージド ID を作成し、必要なAzure ロールを付与し、探索リソースの作成時にそのリソース ID を指定します。 その後、Discovery プラットフォームはその ID を使用して、ストレージ アカウント、コンテナー レジストリ、AI サービス、およびマネージド リソース グループ (MRG) リソースにアクセスします。

ユーザー割り当てマネージド ID の理由

検出には、次の理由により、ユーザー割り当て (システム割り当てではない) マネージド ID が必要です。

理由 説明
顧客の所有権 独自のサブスクリプションで ID のライフサイクルを作成、管理、および制御します。
リソース間で共有 1 つの UAMI をワークスペース、スーパーコンピューター、およびストレージ操作全体で再利用できるため、管理オーバーヘッドを削減できます。
E-プロビジョニング済みのロール割り当て リソースを作成する前にロールを割り当てて、検出に最初から必要なアクセス許可が付与されるようにします。
不変バインディング ワークスペース ID とスーパーコンピューター クラスター ID は作成時にバインドされ、後で変更することはできません。これにより、一貫性のあるセキュリティ体制が保証されます。 スーパーコンピューターの kubelet とワークロード ID は、作成後に更新できます。

Important

ワークスペース ID とスーパーコンピューター クラスター ID は、作成後 に変更できません 。 プロビジョニング後に変更することはできません。 スーパーコンピューターの kubelet とワークロード ID を更新できます。 リソースを作成する前に、ID 戦略を計画します。

Discovery で ID を使用する方法

ワークスペースまたはスーパーコンピューターが作成されると、探索コントロール プレーンは次のようになります。

  • UAMI を読み取ります。ID が存在し、サービスが操作できることを検証します。
  • 自身にマネージド ID オペレーター ロールを割り当てる: Discovery サービス プリンシパルには、マネージド リソースの操作にその ID を使用できるように、UAMI に対するマネージド ID オペレーター ロールが付与されます。
  • 実行時に UAMI を使用します。スーパーコンピューター上で実行されるツールは、ID を使用してコンテナー イメージをプルし、BLOB ストレージにアクセスします。 エージェントは、Azure OpenAI およびストレージと対話するために使用します。

リソースの種類ごとの ID スロット

検出リソースが異なると、マネージド ID はさまざまな方法で使用されます。

Workspace

ワークスペースには、 workspaceIdentity プロパティを使用して提供される単一の UAMI が必要です。 検出では、UAMI を使用して次の手順を実行します。

  • ワークスペースを特定する: UAMI は、ワークスペースをサブスクリプションのリソースにバインドするセキュリティ プリンシパルです。
  • データの読み取りと書き込み: Azure Blob Storage アカウントは、ストレージ コンテナーを介してデータの読み取りと書き込みを行います。
  • コンテナー イメージをプルする: スーパーコンピューターでツールを実行すると、コンテナー イメージがAzure Container Registryからプルされます。

Discovery は、お客様の UAMI ではなく、Discovery 独自のサービス プリンシパルを使用して MRG(Azure Cosmos DB、AI サービス、検索インデックス、Azure OpenAI)をプロビジョニングおよび運用します。 UAMI には MRG のロールは必要ありません。

スーパーコンピュータ

スーパーコンピューターは 3 つの ID スロットを使用します。これらはすべて、わかりやすくするために同じ UAMI を参照したり、最小限の特権で個別の UAMI を参照したりできます。

スロット Purpose
クラスター ID ネットワークやロード バランサーなどのクラスター レベルのリソースを管理するために、AKS コントロール プレーンによって使用されます。
kubelet ID コンテナー レジストリからコンテナー イメージをプルし、Azureリソースにアクセスするためにノード レベルで使用されます。
ワークロード識別子 スーパーコンピューターでツールとエージェントを実行しているポッドによってフェデレーション資格情報として使用されます。

本棚

本棚は、その workloadIdentities プロパティを使用してお客様の UAMI を参照します。 Discovery では、独自のサービス プリンシパルを使用して、本棚 MRG (AI Search、SQL、AI Services) をプロビジョニングおよび運用します。 また、このサービスでは、内部リソースからリソースへの認証のために、ブックシェル MRG 内にシステムマネージド ID も作成されます。

必要なロールの割り当て

探索リソースを作成する前に、次の組み込みロールを UAMI に 割り当てる必要があります。 リソース グループ スコープでこれらのロールを割り当てます。

役割 ロール定義 ID Purpose
Microsoft Discovery Platform 共同作成者 (プレビュー) 01288891-85ee-45a7-b367-9db3b752fc65 ワークスペース、プロジェクト、エージェント、ツールなどの探索リソースを管理します。
ストレージ ブロブ データ コントリビューター ba92f5b4-2d11-453d-a403-e96b0029c9fe Azure Storage アカウントの BLOB の読み取りと書き込み。
アックルプル 7f951dda-4ed3-4680-a7ca-43fe172d538d コンテナー レジストリからコンテナー イメージをプルします。

特殊なシナリオで必要なその他のロールについては、「 マネージド ID の構成」を参照してください。

探索リソース間のエンド ツー エンド ID フロー

完全な探索スタックをデプロイすると、プラットフォームによって 3 つの MRG (ワークスペース、ブックシェル、およびスーパーコンピューター) が作成されます。 各 MRG には、サービスが管理するAzureリソースが含まれています。

サービスが自動的に管理するもの

ワークスペース、ブックシェル、またはスーパーコンピューターを作成すると、Discovery は自動的に次の手順を実行します。

  • サービスが MRG リソースをプロビジョニングして運用できるように、MRG にロールの割り当てを作成します。 リソースには、Microsoft Foundry、Azure Cosmos DB、Azure AI 検索、ストレージ、Azure Key Vault、Azure Kubernetes Service (AKS)が含まれます。
  • サービスが MRG デプロイに使用できるように、UAMI にマネージド ID オペレーターを割り当てます。
  • 各ワークスペース内にシステムマネージド ID を作成し、内部リソース間認証 (Azure Container Apps、Foundry、SQL) 用のブックシェル MRG を作成します。

これらの ID やロールの割り当てを作成または管理する必要はありません。 これらは、サービスによって完全にライフサイクル管理されています。

あなたの責任について

あなたは、次のタスクを担当します。

  • UAMI を作成する: 探索リソースを作成する前に、3 つのコア ロール (探索プラットフォーム共同作成者、ストレージ BLOB データ共同作成者、および AcrPull) を割り当てます。
  • UAMI リソース ID を指定します。ワークスペースまたはスーパーコンピューターを作成するときに ID を入力します。

実行時のお客様の UAMI

UAMI は、エージェントとツールが実行時に使用する ID です。

Operation Azureリソースにアクセスしました 必要なロール
ストレージ コンテナー内のデータの読み取り/書き込み Azure Blob Storage ストレージ ブロブ データ コントリビューター
ツール コンテナー イメージをプルする Container Registry アックルプル
探索リソースの管理 検出リソースプロバイダー Microsoft Discovery Platform 共同作成者 (プレビュー)
AKS クラスター ネットワークの運用 Azure Virtual Network (VNet) サブネット ネットワーク共同作成者 (スーパーコンピューター クラスター ID)

スーパーコンピューターの場合、UAMI は次の 3 つのスロットで使用されます。

  • クラスター ID: AKS コントロール プレーンは、それを使用してロード バランサーとネットワークを管理します。
  • Kubelet ID: ノード レベルのエージェントは、それを使用してコンテナー レジストリからイメージをプルし、Azureリソースにアクセスします。
  • ワークロード ID: ポッドは、フェデレーション資格情報を使用してツールとエージェントを実行します。

1 つの共有 UAMI と関数ごとに個別の ID を選択する方法のガイダンスについては、「 マネージド ID のベスト プラクティスの推奨事項」を参照してください。

高度な構成: ID ごとの詳細なロールの割り当て

必要なロールの割り当てセクションでは、1 つの共有 UAMI がリソース グループ スコープで 3 つのコア ロールをすべて受け取る最も簡単な方法について説明します。 より厳密なセキュリティ制御を必要とする運用環境では、各 ID がアクセスする特定のリソースをスコープとする最小特権ロールの割り当てを持つ個別の UAMI を割り当てます。

Important

ワークロード ID には、ツールの実行を通じてエージェントがアクセスできます。 大規模言語モデル (LLM) によって駆動されるエージェントは、実行時にこの ID を使用するツールを呼び出すので、ワークロード ID のアクセス許可を最小限に抑えることが重要です。 ツール操作に必要なアクセス許可のみを割り当てます。 ワークロード ID に対する広範なアクセス許可は、エージェントが意図したスコープを超えて ID を使用する場合にリスクを生じます。

IDごとのロール割り当て

次の表は、個別の UAMI を使用する場合に、各 ID に対して推奨される詳細なロールの割り当てを示しています。

Identity 役割 Scope Purpose
ワークスペース ID Microsoft Discovery Platform 共同作成者 (プレビュー) リソース グループ プロジェクト、チャット モデルのデプロイ、ストレージ コンテナーなどのワークスペース リソースを管理します。
ワークスペース ID ストレージ ブロブ データ コントリビューター ストレージ アカウント バッキング ストレージ アカウント内のワークスペース データ、チャット モデル成果物、プロジェクト資産の読み取り/書き込み。
クラスター ID プラットフォームで管理されるネットワーク共同作成者 ノード リソース グループ/VNet クラスター レベルのネットワーク、ロード バランサー、ノード リソース グループ リソースを管理します。
クラスター ID マネージド ID オペレーター ノード リソース グループ クラスター ワークロードのマネージド ID を操作します。
kubelet ID アックルプル リソース グループ (コンテナー レジストリを対象) リソース グループにプロビジョニングされた任意の Container Registry から、ツール実行用のコンテナー イメージをプルします。
kubelet ID ストレージ ブロブ データ コントリビューター ストレージ アカウント ポッドの起動時に、バッキング ストレージ アカウントからワークロード成果物と入力を読み取ります。
ワークロード識別子 ストレージ ブロブ データ コントリビューター ストレージ アカウント エージェント ワークロード (フェデレーション ID) によるツールの実行中にデータにアクセスします。

個別の ID によってセキュリティが向上する理由

単一の共有 UAMI を使用する場合、ワークロード ID (ツールの実行でエージェントが使用する) は、探索プラットフォーム共同作成者や AcrPull を含むすべてのロールを継承します。 これにより、LLM 主導のエージェントに、必要以上に広範なアクセス権が付与されます。

ID を分離する方法:

  • ワークロード ID は、ストレージ アカウント レベルでストレージ BLOB データ共同作成者のみを受け取ります。これにより、ツールを介してアクセスできるエージェントが制限されます。
  • クラスター ID は、エージェント ワークロードに公開されないネットワークロールとオペレーター ロールを受け取ります。
  • Kubelet ID は、エージェント ツールの実行から分離されたイメージ プルとポッドのスタートアップ データ アクセスを処理します。

この分離により、エージェントがデータ アクセスを超える操作に ID を使用しようとした場合でも、アクセス許可が不十分なため要求が失敗します。

詳細な割り当てを使用する場合

次の場合は、スコープ付きロールで個別の ID を使用します。

  • 組織では、最小特権のアクセス制御が必要です。
  • 機密データを処理し、ブラスト半径を制限するツールを実行します。
  • コンプライアンス要件では、コントロール プレーン ID とデータ プレーン ID の分離が義務付けられています。
  • インフラストラクチャ操作とは別に、エージェントのデータ アクセスを監査する必要があります。

共有 ID と個別 ID の選択に関するガイダンスについては、 マネージド ID のベスト プラクティスに関する推奨事項を参照してください。

制限事項

  • UAMI は、それを使用する探索リソースと 同じリージョン に存在する必要があります。
  • ワークスペース ID とスーパーコンピューター クラスター ID は、リソースの作成後に変更できません。 リソースを削除して再作成する必要があります。 スーパーコンピューターの kubelet とワークロード ID は、 PATCHを介して更新できます。
  • ロールの割り当ての反映には、最大で 10 分かかることがあります。 探索リソースを作成する前に、ロールの割り当てを作成します。
  • 検出には、UAMI に対するマネージド ID オペレーターロールが必要です。 リソースの作成時にこのロールの割り当てが失敗した場合 (たとえば、Azure Policy制限のため)、ワークスペースのプロビジョニングは失敗します。