Microsoft Foundry のプレビュー機能を制限して、運用環境を一般公開されている機能に集中させます。 この記事では、次の 2 つの方法について説明します。
- Azure タグ Foundry ポータル (現在およびクラシック ポータル) でプレビュー サーフェスを非表示にします。
- カスタム RBAC ロールは、 API レベルで特定のプレビュー操作をブロックします。
ポータル レベルの抑制にタグを使用し、特定の操作またはアクセス許可をブロックする必要がある場合はカスタム RBAC ロールを使用します。
前提 条件
- Foundry リソースとプロジェクト。
- Azureのターゲット スコープでタグを追加または編集するアクセス許可。 たとえば、 共同作成者 や タグ共同作成者などです。
- ロールを割り当て可能にするスコープ (所有者ロールやユーザー アクセス管理者ロールなど) でカスタム ロールを作成するアクセス許可を持つAzure サブスクリプション。
- スコープで役割を割り当てるための権限(例: ロールベースアクセス制御管理者の役割やユーザーアクセス管理者の役割)。
- Azure CLI がインストールされてサインインされている場合に、コマンド ラインからロールを作成します。 詳細については、「
Azure CLI を参照してください。 - Azure ポータルにアクセスします。
タグを適用する
組織が管理するスコープでプレビュー機能抑制タグを適用します。
重要
正確なタグ キーと値を使用します。
- タグ キー:
AZML_DISABLE_PREVIEW_FEATURE - タグ値:
true
ガバナンスのニーズに一致するスコープでタグを適用します。
- 組織全体のガバナンスのサブスクリプション。
- グループ 内のすべてのリソースをカバーするリソース グループ。
- 詳細な制御のための Foundry リソース。
<resource-id>を、サブスクリプション、リソース グループ、または Foundry リソースの完全なリソース ID に置き換えます。
az tag update --resource-id <resource-id> --operation merge --tags AZML_DISABLE_PREVIEW_FEATURE=true
Foundry リソースのリソース ID を検索するには:
az resource show --name <resource-name> --resource-group <resource-group> --resource-type "Microsoft.CognitiveServices/accounts" --query id --output tsv
タグを削除してプレビュー機能を再度有効にする
プレビュー機能を復元するには、 AZML_DISABLE_PREVIEW_FEATURE タグを削除します。
az tag update --resource-id <resource-id> --operation delete --tags AZML_DISABLE_PREVIEW_FEATURE=true
タグを削除した後、Foundry ポータルを更新するか、サインアウトして再びサインインします。 プレビュー機能は数分以内に再び表示されます。
両方のポータル エクスペリエンスで抑制を確認する
タグが保存されたら、伝達のために数分待ってから、両方のエクスペリエンスで動作を確認します。
- Microsoft Foundry を開きます。
- タグ付けされたプロジェクトを開きます。
- プレビューのみの UI 機能が非表示であることを検証します。
- クラシック ポータルでは、右上にあるプレビュー機能ツールが無効になっています。
- 新しいポータルでは、プレビューの機能が表示されなくなっているので、 プレビュー ラベルは表示されません。
- New Foundry を使用して新しいエクスペリエンスとクラシック エクスペリエンスを切り替え、同じ動作を検証します。
期待される結果: プレビュー機能は、新しい Foundry ポータルエクスペリエンスとクラシック ポータル エクスペリエンスの両方で非表示になります。
抑制問題のトラブルシューティング
抑制が期待どおりに動作しない場合は、次の表を使用します。
| 症状 | 原因 | 解像 度 |
|---|---|---|
| タグの適用後もプレビュー機能が表示されます。 | タグ キーまたは値が正しくありません。 | タグ キーが正確に AZML_DISABLE_PREVIEW_FEATURE され、値が true されていることを確認します (大文字と小文字が区別されます)。 タグをもう一度保存します。 |
| タグは適用されますが、一部のスコープのみが抑制されます。 | タグは、意図した範囲よりも狭い範囲で適用されます。 | タグが目的のガバナンス スコープ (サブスクリプション、リソース グループ、またはリソース) で適用されていることを確認します。 必要に応じて、より広範なスコープで適用します。 |
| プレビュー機能は数分後に再び表示されます。 | ブラウザー セッションでキャッシュされた状態が使用されています。 | サインアウトして再びサインインするか、ブラウザーのキャッシュをクリアして Foundry ポータルを更新します。 |
| タグを追加または編集できません。 | アカウントには、そのスコープでのタグのアクセス許可がありません。 | ターゲット スコープに 共同作成者 ロールまたは タグ共同作成者 ロールがあることを確認します。 |
| プレビュー機能は、スコープ、タグ、アクセス許可を確認した後も表示されます。 | 伝達遅延または製品バグの可能性があります。 | 反映されるまで数分待ちます。 問題が解決しない場合は、サポートリクエストを提出してください。 |
カスタム RBAC ロールを使用してプレビュー機能をブロックする
特定のプレビュー機能へのアクセスをブロックするには、対応するアクセス許可を除外するカスタム Azure ロールを作成し、そのロールをユーザーに割り当てます。
組み込みロールは変更できないため、 (またはトレースなどのコントロール プレーン機能のnotDataActions) を使用して、ブロックするアクセス許可を除外するnotActionsを作成します。
次の表は、ブロックできるプレビュー機能と、除外するアクセス許可の種類をまとめたものです。
| プレビュー機能 | リソース プロバイダーのパス | アクセス許可の種類 | 除外フィールド |
|---|---|---|---|
| エージェント サービス | Microsoft.CognitiveServices/accounts/AIServices/agents/* |
データ アクション | notDataActions |
| Content Understanding | Microsoft.CognitiveServices/accounts/MultiModalIntelligence/* |
データ アクション | notDataActions |
| 微調整 |
Microsoft.CognitiveServices/accounts/OpenAI/fine-tunes/* と関連するパス |
データ アクション | notDataActions |
| 評価 | Microsoft.CognitiveServices/accounts/AIServices/evaluations/* |
データ アクション | notDataActions |
| コンテンツの安全性 | Microsoft.CognitiveServices/accounts/ContentSafety/* |
データ アクション | notDataActions |
| トレース | Microsoft.Insights/* |
コントロールプレーンアクション | notActions |
プレビュー機能をブロックするカスタム ロールを作成する
このセクションでは、カスタム ロール定義を作成し、ユーザーに割り当てる手順について説明します。 この例ではエージェント サービスをブロックしますが、この記事の 機能セクション のデータ アクションを置き換えることができます。
手順 1: ロール JSON を定義する
次の内容を含む custom-role.json という名前の JSON ファイルを作成します。
<subscription-id>をAzure サブスクリプション ID に置き換え、ブロックするデータ アクションを notDataActions に追加します。
{
"properties": {
"roleName": "Foundry custom role (preview features blocked)",
"description": "Custom role that excludes specific Foundry preview features.",
"assignableScopes": [
"/subscriptions/<subscription-id>"
],
"permissions": [
{
"actions": [
"Microsoft.CognitiveServices/*/read",
"Microsoft.Authorization/*/read"
],
"notActions": [],
"dataActions": [
"Microsoft.CognitiveServices/accounts/AIServices/*"
],
"notDataActions": [
"Microsoft.CognitiveServices/accounts/AIServices/agents/write",
"Microsoft.CognitiveServices/accounts/AIServices/agents/read",
"Microsoft.CognitiveServices/accounts/AIServices/agents/delete"
]
}
]
}
}
ヒント
既存のロールを複製するかdataActionsでワイルドカード権限を使用する場合には、notDataActionsにプレビュー機能データアクションを追加して、ロールがそれらを除外するようにしてください。 トレースでは、代わりに notActions を使用します。トレースではコントロール プレーン アクションが使用されるためです。
手順 2: ロールを作成する
az role definition create --role-definition custom-role.json
手順 3: ロールを割り当てる
az role assignment create \
--role "Foundry custom role (preview features blocked)" \
--assignee "<user-email-or-object-id>" \
--scope "/subscriptions/<subscription-id>"
手順 4: ロールの割り当てを確認する
カスタム ロールが予想されるアクセス許可を除外していることを確認します。
ユーザーのロールの割り当てを一覧表示し、カスタム ロールが表示されていることを確認します。
az role assignment list --assignee "<user-email-or-object-id>" --output table
カスタム ロール定義を表示して、想定されるデータ アクション notDataActions 含まれていることを確認します。
az role definition list --name "Foundry custom role (preview features blocked)" --output json
プレビュー機能データの操作
次の各セクションでは、プレビュー機能のアクセス許可の一覧を示します。 カスタム ロール定義のnotDataActionsにブロックしたいデータ アクションを追加します。ただし、notActionsでコントロール プレーン アクションを使用するトレースは除きます。
エージェント サービス
カスタム ロール定義の notDataActions に、次のデータ アクションを追加します。
Microsoft.CognitiveServices/accounts/AIServices/agents/writeMicrosoft.CognitiveServices/accounts/AIServices/agents/readMicrosoft.CognitiveServices/accounts/AIServices/agents/delete
1 つのエントリですべてのエージェント サービス操作をブロックするには、ワイルドカード Microsoft.CognitiveServices/accounts/AIServices/agents/*を使用します。
コンテンツ理解
カスタム ロール定義の notDataActions に、次のデータ アクションを追加します。
Microsoft.CognitiveServices/accounts/MultiModalIntelligence/analyzers/readMicrosoft.CognitiveServices/accounts/MultiModalIntelligence/analyzers/writeMicrosoft.CognitiveServices/accounts/MultiModalIntelligence/analyzers/deleteMicrosoft.CognitiveServices/accounts/MultiModalIntelligence/classifiers/readMicrosoft.CognitiveServices/accounts/MultiModalIntelligence/classifiers/writeMicrosoft.CognitiveServices/accounts/MultiModalIntelligence/classifiers/deleteMicrosoft.CognitiveServices/accounts/MultiModalIntelligence/batchAnalysisJobs/*
チームが Foundry でドキュメントにラベルを付ける場合は、ラベル付けデータ アクションもブロックします。 Azure ポータルのカスタム ロール エディターで、Microsoft.CognitiveServices リソース プロバイダーの下で labelingProjects を検索します。次のような使用可能な操作を見つけることができます。
Microsoft.CognitiveServices/accounts/MultiModalIntelligence/labelingProjects/readMicrosoft.CognitiveServices/accounts/MultiModalIntelligence/labelingProjects/writeMicrosoft.CognitiveServices/accounts/MultiModalIntelligence/labelingProjects/delete
メモ
Azure ポータルで正確な labelingProjects データ アクションを確認します。これは、機能の進化に合わせて使用可能な操作が変更される可能性があるためです。
微調整
微調整では、Microsoft.CognitiveServices/accounts/OpenAI/ の下にある複数のデータ アクション パスが使用されます。 ブロックしたい各パスを、カスタム ロール定義のnotDataActionsに追加します。
Microsoft.CognitiveServices/accounts/OpenAI/fine-tunes/*Microsoft.CognitiveServices/accounts/OpenAI/files/*Microsoft.CognitiveServices/accounts/OpenAI/uploads/*Microsoft.CognitiveServices/accounts/OpenAI/stored-completions/*Microsoft.CognitiveServices/accounts/OpenAI/evals/*Microsoft.CognitiveServices/accounts/OpenAI/models/*
必要に応じて、チームが RLHF ジョブを実行する場合は、次も追加します。
Microsoft.CognitiveServices/accounts/OpenAI/1p-jobs/*
重要
一覧表示される各パスは、個別のデータ アクション スコープです。
fine-tunes/*ワイルドカードは、fine-tunes/の操作にのみ一致します。 微調整を完全にブロックするには、一覧表示されているすべてのパスを含めます。
トレース
重要
トレースでは、コントロール プレーン サービスである Azure Monitor が使用されます。 このセクションに記載されているアクセス許可はアクションであり、データ アクションではありません。 カスタム ロール定義内の (notActionsではなく) notDataActionsに追加します。
カスタム ロール定義の notActions に次のアクションを追加します。
Microsoft.Insights/alertRules/readMicrosoft.Insights/diagnosticSettings/readMicrosoft.Insights/logDefinitions/readMicrosoft.Insights/metricdefinitions/readMicrosoft.Insights/metrics/read
これらの読み取りアクションをブロックすると、ユーザーは Foundry ポータルの [トレース] ウィンドウを表示できなくなります。 トレース アクセスが必要なユーザーには、接続された Application Insights リソースの閲覧者ロールなど、Microsoft.Insights 読み取りアクションを含む別のロールが必要です。
評価
カスタム ロール定義の notDataActions に、次のデータ アクションを追加します。
Microsoft.CognitiveServices/accounts/AIServices/evaluations/writeMicrosoft.CognitiveServices/accounts/AIServices/evaluations/readMicrosoft.CognitiveServices/accounts/AIServices/evaluations/delete
コンテンツの安全性
カスタム ロール定義の notDataActions に、次のデータ アクションを追加します。
Microsoft.CognitiveServices/accounts/ContentSafety/*
すべての操作ではなく、特定の Content Safety 操作のみをブロックするには、Azure ポータルのカスタム ロール エディターで ContentSafety を検索し、除外する個々のデータ アクションを選択します。
RBAC に関する問題のトラブルシューティング
| 症状 | 原因 | 解像 度 |
|---|---|---|
| ユーザーは引き続きブロックされた機能にアクセスできます。 | ロールの割り当てがまだ反映されていないか、ブロックされたアクセス許可を付与する別のロールがユーザーにある可能性があります。 | 反映されるまで数分待ちます。
az role assignment list --assignee "<user>"を使用して、ユーザーのすべてのロールの割り当てを確認します。 ブロックされたデータ アクションを許可する競合するロールをすべて削除します。 |
| カスタム ロールの作成が "無効なデータ アクション" で失敗する。 | データ アクション パスのスペルが間違っているか、リソース プロバイダーが登録されていない可能性があります。 | Azure ポータルのカスタム ロール エディターでデータ アクション パスを確認します。
Microsoft.CognitiveServices リソース プロバイダーがサブスクリプションに登録されていることを確認します。 |
notDataActionsに追加した後、トレースのアクセス許可はブロックされません。 |
トレースでは、データ アクションではなく、コントロール プレーン アクション (Microsoft.Insights) が使用されます。 |
Microsoft.Insights エントリをロール定義の notDataActions から notActions に移動します。 |