次の方法で共有


Azure AI Studio でのロールベースのアクセス制御

この記事では、Azure AI Studio ハブへのアクセス (認可) を管理する方法について説明します。 Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure リソースへのアクセスを管理するために使用されます (新しいリソースの作成や既存のリソースの使用など)。 Microsoft Entra ID のユーザーには、リソースへのアクセス権を付与する特定のロールが割り当てられます。 Azure には、組み込みロールと、カスタム ロールを作成する機能の両方が用意されています。

警告

一部のロールを適用すると、他のユーザーが Azure AI Studio を使用するときに UI 機能が制限されることがあります。 たとえば、ユーザーのロールにコンピューティング インスタンスを作成する機能がない場合、コンピューティング インスタンスを作成するオプションをスタジオで使用できません。 この動作は想定されており、アクセス拒否エラーが返される操作をユーザーが実行できないようにしています。

AI Studio ハブとプロジェクト

Azure AI Studio には、ハブとプロジェクトという 2 つのレベルのアクセスがあります。 ハブはインフラストラクチャ (仮想ネットワークのセットアップ、カスタマー マネージド キー、マネージド ID、ポリシーなど) のホームであり、ここで Azure AI サービスを構成します。 ハブ アクセスを使うと、インフラストラクチャの変更、新しいハブの作成、プロジェクトの作成を行うことができます。 プロジェクトは、AI システムを構築およびデプロイできるワークスペースとして機能するハブのサブセットです。 プロジェクト内では、フローの開発、モデルのデプロイ、プロジェクト資産の管理を行うことができます。 プロジェクト アクセスを使うと、ハブでのインフラストラクチャ セットアップを利用しながら、AI をエンドツーエンドで開発できます。

AI Studio リソース間の関係の図。

ハブとプロジェクトの関係の主な利点の 1 つは、開発者がハブのセキュリティ設定を継承する独自のプロジェクトを作成できることです。 また、プロジェクトの共同作成者であり、新しいプロジェクトを作成できない開発者がいる場合もあります。

ハブの既定のロール

AI Studio ハブには、既定で使用できる組み込みロールがあります。

ハブの組み込みロールとそのアクセス許可を次の表に示します。

ロール 説明
所有者 新しいハブを管理および作成し、アクセス許可を割り当てる機能を含む、ハブに対するフル アクセス権。 このロールはハブ作成者に自動的に割り当てられます
Contributor ユーザーは、新しいハブを作成する機能を含め、ハブに対するフル アクセス権を持っていますが、既存のリソースに対するハブのアクセス許可を管理することはできません。
Azure AI 開発者 新しいハブの作成とハブのアクセス許可の管理を除くすべてのアクションを実行します。 たとえば、ユーザーはプロジェクト、コンピューティング、接続を作成できます。 ユーザーは自分のプロジェクト内でアクセス許可を割り当てることができます。 ユーザーは、Azure OpenAI、Azure AI 検索、Azure AI サービスなどの既存の Azure AI リソースとやり取りできます。
Azure AI の Inference Deployment Operator リソース グループ内でリソースのデプロイの作成に必要なすべてのアクションを実行します。
Reader ハブに対する読み取り専用アクセス。 このロールは、ハブ内のすべてのプロジェクト メンバーに自動的に割り当てられます。

共同作成者と Azure AI 開発者の主な違いは、新しいハブを作成する権限です。 (クォータ、コスト、または単に所有するハブ数の管理という理由で) ユーザーに新しいハブを作成させたくない場合は、Azure AI 開発者ロールを割り当てます。

ハブを作成できるのは、所有者と共同作成者のロールのみです。 現時点では、カスタム ロールでは、ハブを作成するためのアクセス許可は付与されません。

Azure AI 開発者ロール

新しい "Azure AI 開発者" ロールのアクセス許可の完全なセットは次のとおりです。

{
    "Permissions": [ 
        { 
        "Actions": [
            "Microsoft.MachineLearningServices/workspaces/*/read",
            "Microsoft.MachineLearningServices/workspaces/*/action",
            "Microsoft.MachineLearningServices/workspaces/*/delete",
            "Microsoft.MachineLearningServices/workspaces/*/write",
            "Microsoft.MachineLearningServices/locations/*/read",
            "Microsoft.Authorization/*/read",
            "Microsoft.Resources/deployments/*"
        ],
    
        "NotActions": [
            "Microsoft.MachineLearningServices/workspaces/delete",
            "Microsoft.MachineLearningServices/workspaces/write",
            "Microsoft.MachineLearningServices/workspaces/listKeys/action",
            "Microsoft.MachineLearningServices/workspaces/hubs/write",
            "Microsoft.MachineLearningServices/workspaces/hubs/delete",
            "Microsoft.MachineLearningServices/workspaces/featurestores/write",
            "Microsoft.MachineLearningServices/workspaces/featurestores/delete"
        ], 
        "DataActions": [ 
            "Microsoft.CognitiveServices/accounts/OpenAI/*", 
            "Microsoft.CognitiveServices/accounts/SpeechServices/*", 
            "Microsoft.CognitiveServices/accounts/ContentSafety/*" 
        ], 
        "NotDataActions": [], 
        "Condition": null, 
        "ConditionVersion": null 
        } 
    ] 
}

組み込みの Azure AI 開発者ロールがニーズを満たしていない場合は、カスタム ロールを作成できます。

プロジェクトの既定のロール

AI Studio のプロジェクトには、既定で使用できる組み込みロールがあります。

プロジェクトの組み込みロールとそのアクセス許可を次の表に示します。

ロール 説明
所有者 プロジェクト ユーザーにアクセス許可を割り当てる機能を含む、プロジェクトに対するフル アクセス権。
Contributor ユーザーは、プロジェクトに対してフル アクセス権を持っていますが、プロジェクト ユーザーにアクセス許可を割り当てることはできません。
Azure AI 開発者 ユーザーはデプロイの作成など、ほとんどのアクションを実行できますが、プロジェクト ユーザーにアクセス許可を割り当てることはできません。
Azure AI の Inference Deployment Operator リソース グループ内でリソースのデプロイの作成に必要なすべてのアクションを実行します。
Reader プロジェクトに対する読み取り専用アクセス権。

ユーザーにプロジェクトへのアクセス権が付与されると (たとえば、AI Studio のアクセス許可管理を通じて)、さらに 2 つのロールがユーザーに自動的に割り当てられます。 最初のロールはハブに対する閲覧者です。 2 番目のロールは Inference Deployment Operator ロールです。これにより、ユーザーはプロジェクトが存在するリソース グループにデプロイを作成できます。 このロールは、"Microsoft.Authorization/*/read""Microsoft.Resources/deployments/*" の 2 つのアクセス許可で構成されます。

エンド ツー エンドの AI の開発とデプロイを完了するために、ユーザーが必要とするのは、これら 2 つの自動割り当てロールと、プロジェクトの共同作成者または Azure AI 開発者ロールだけです。

プロジェクトを作成するために必要な最小限のアクセス許可は、ハブに対して Microsoft.MachineLearningServices/workspaces/hubs/join の許可アクションがあるロールです。 Azure AI Developer の組み込みロールには、このアクセス許可があります。

Azure AI 管理者ロール

2024 年 11 月 19 日より前は、ハブ用に作成されたシステム割り当てマネージド ID に、そのハブとプロジェクトが含まれているリソース グループの共同作成者ロールが自動的に割り当てられていました。 この日より後に作成されたハブでは、システム割り当てマネージド ID が Azure AI 管理者ロールに割り当てられます。 このロールの対象範囲はさらに狭く、マネージド ID がそのタスクを実行するために必要な最小限のアクセス許可に絞られます。

Azure AI 管理者ロールは、現在パブリック プレビュー段階です。

重要

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

Azure AI 管理者ロールには、次のアクセス許可が付与されます。

{
    "permissions": [
        {
            "actions": [
                "Microsoft.Authorization/*/read",
                "Microsoft.CognitiveServices/*",
                "Microsoft.ContainerRegistry/registries/*",
                "Microsoft.DocumentDb/databaseAccounts/*",
                "Microsoft.Features/features/read",
                "Microsoft.Features/providers/features/read",
                "Microsoft.Features/providers/features/register/action",
                "Microsoft.Insights/alertRules/*",
                "Microsoft.Insights/components/*",
                "Microsoft.Insights/diagnosticSettings/*",
                "Microsoft.Insights/generateLiveToken/read",
                "Microsoft.Insights/logDefinitions/read",
                "Microsoft.Insights/metricAlerts/*",
                "Microsoft.Insights/metricdefinitions/read",
                "Microsoft.Insights/metrics/read",
                "Microsoft.Insights/scheduledqueryrules/*",
                "Microsoft.Insights/topology/read",
                "Microsoft.Insights/transactions/read",
                "Microsoft.Insights/webtests/*",
                "Microsoft.KeyVault/*",
                "Microsoft.MachineLearningServices/workspaces/*",
                "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action",
                "Microsoft.ResourceHealth/availabilityStatuses/read",
                "Microsoft.Resources/deployments/*",
                "Microsoft.Resources/deployments/operations/read",
                "Microsoft.Resources/subscriptions/operationresults/read",
                "Microsoft.Resources/subscriptions/read",
                "Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
                "Microsoft.Resources/subscriptions/resourceGroups/read",
                "Microsoft.Resources/subscriptions/resourceGroups/write",
                "Microsoft.Storage/storageAccounts/*",
                "Microsoft.Support/*",
                "Microsoft.Search/searchServices/write",
                "Microsoft.Search/searchServices/read",
                "Microsoft.Search/searchServices/delete",
                "Microsoft.Search/searchServices/indexes/*",
                "Microsoft.DataFactory/factories/*"
            ],
            "notActions": [],
            "dataActions": [],
            "notDataActions": []
        }
    ]
}

既存のシステム マネージド ID を Azure AI 管理者ロールに変換する

ヒント

2024 年 11 月 19 日より前に作成されたハブを、Azure AI 管理者ロールを使用するように変換することをお勧めします。 Azure AI 管理者ロールは、以前使用されていた共同作成者ロールよりも対象範囲がさらに狭く、最小特権のプリンシパルに従っています。

2024 年 11 月 19 日より前に作成されたハブは、次のいずれかの方法を使用して変換できます。

  • Azure REST API: ワークスペースの Azure REST API への PATCH 要求を使用します。 要求の本文を使用すると {"properties":{"allowRoleAssignmeentOnRG":true}} が設定されるはずです。 次の例は、curl を使用する PATCH 要求を示しています。 <your-subscription><resource-group-name><workspace-name><YOUR-ACCESS-TOKEN> をシナリオでの値に置き換えます。 REST API の使用に関する詳細については、Azure REST API ドキュメントを参照してください。

    curl -X PATCH https://management.azure.com/subscriptions/<your-subscription>/resourcegroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>?api-version=2024-04-01-preview -H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"
    
  • Azure CLI: az ml workspace update コマンドを --allow-roleassignment-on-rg true パラメーターと併せて使用します。 次の例では、myworkspace という名前のワークスペースを更新します。 このコマンドには、Azure Machine Learning CLI 拡張機能バージョン 2.27.0 以降が必要です。

    az ml workspace update --name myworkspace --allow-roleassignment-on-rg true
    
  • Azure Python SDK: Workspace オブジェクトの allow_roleassignment_on_rg プロパティを True に設定してから、更新操作を実行します。 次の例では、myworkspace という名前のワークスペースを更新します。 この操作には、Azure Machine Learning SDK バージョン 1.17.0 以降が必要です。

    ws = ml_client.workspaces.get(name="myworkspace")
    ws.allow_roleassignment_on_rg = True
    ws = ml_client.workspaces.begin_update(workspace=ws).result()
    

依存関係サービスの Azure RBAC アクセス許可

ハブには、他の Azure サービスへの依存関係があります。 ハブを作成する際に、これらのサービスに必要なアクセス許可を以下の表に示します。 ハブを作成するユーザーには、これらのアクセス許可が必要です。 ハブからプロジェクトを作成するユーザーは、これらを必要としません。

権限 目的
Microsoft.Storage/storageAccounts/write 指定されたパラメーターを使用してストレージ アカウントを作成するか、プロパティまたはタグを更新します。または、指定されたストレージ アカウントのカスタム ドメインを追加します。
Microsoft.KeyVault/vaults/write 新しい Key Vault を作成するか、既存の Key Vault のプロパティを更新します。 プロパティによっては、より多くのアクセス許可が必要な場合があります。
Microsoft.CognitiveServices/accounts/write API アカウントを記述します。
Microsoft.MachineLearningServices/workspaces/write 新しいワークスペースを作成するか、既存のワークスペースのプロパティを更新します。

エンタープライズ RBAC セットアップのサンプル

企業向けの Azure AI Studio のロールベースのアクセス制御を設定する方法の例を次の表に示します。

ペルソナ ロール 目的
IT 管理者 ハブの所有者 IT 管理者は、ハブが企業の標準に合わせて設定されていることを確認できます。 マネージャーが新しいハブを作成することを許可する場合は、リソースに対する共同作成者ロールをマネージャーに割り当てることができます。 または、リソースに対する Azure AI 開発者ロールをマネージャーに割り当てて、新しいハブの作成を許可しないようにすることもできます。
Managers ハブに対する共同作成者または Azure AI 開発者 マネージャーは、ハブの管理、コンピューティング リソースの監査、接続の監査、共有接続の作成を行うことができます。
チーム リーダー/リード開発者 ハブに対する Azure AI 開発者 リード開発者は、チームのプロジェクトを作成し、ハブ レベルで共有リソース (コンピューティングや接続など) を作成できます。 プロジェクトの作成後、プロジェクト所有者は他のメンバーを招待できます。
チーム メンバー/開発者 プロジェクトに対する共同作成者または Azure AI 開発者 開発者は、プロジェクト内で AI モデルを構築してデプロイし、コンピューティングや接続などの開発を可能にする資産を作成できます。

ハブの外部で作成されたリソースに対するアクセス権

ハブを作成すると、組み込みのロールベースのアクセス制御アクセス許可によって、リソースを使うためのアクセス権が付与されます。 ただし、ユーザーに代わって作成されたもの以外のリソースを使用する場合は、次の両方を確認する必要があります。

  • 使用しようとしているリソースには、アクセス許可が設定されています。
  • ハブはそれに対するアクセスが許可されています。

たとえば、新しい BLOB ストレージを使おうとしている場合は、その BLOB の Blob Storage 閲覧者ロールにハブのマネージド ID が追加されていることを確認する必要があります。 新しい Azure AI 検索ソースを使おうとしている場合は、必要に応じて Azure AI 検索のロールの割り当てにハブを追加します。

ロールでアクセスを管理する

ハブの所有者である場合は、AI Studio 用のロールを追加および削除できます。 AI Studio[ホーム] ページに移動し、ハブを選択します。 次に、[ユーザー] を選び、ハブのユーザーを追加および削除します。 Azure portal のアクセス制御 (IAM) または Azure CLI を通じてアクセス許可を管理することもできます。 たとえば、Azure CLI を使用して、次のコマンドでリソース グループ "this-rg" の joe@contoso.com に Azure AI 開発者ロールを割り当てます。

az role assignment create --role "Azure AI Developer" --assignee "joe@contoso.com" --resource-group this-rg 

カスタム ロールを作成する

組み込みロールが十分ではない場合は、カスタム ロールを作成できます。 カスタム ロールには、その AI Studio 内のリソースの読み取り、書き込み、削除、コンピューティングのアクセス許可を与えることができます。 ロールは、特定のプロジェクト レベル、特定のリソース グループ レベル、または特定のサブスクリプション レベルで使用できるようにすることができます。

Note

そのリソース内のカスタム ロールを作成するには、そのレベルでのリソースの所有者でなければなりません。

次の JSON の例では、サブスクリプション レベルでカスタム AI Studio 開発者ロールを定義します。

{
    "properties": {
        "roleName": "AI Studio Developer",
        "description": "Custom role for AI Studio. At subscription level",
        "assignableScopes": [
            "/subscriptions/<your-subscription-id>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.MachineLearningServices/workspaces/write",
                    "Microsoft.MachineLearningServices/workspaces/endpoints/write",
                    "Microsoft.Storage/storageAccounts/write",
                    "Microsoft.Resources/deployments/validate/action",
                    "Microsoft.KeyVault/vaults/write",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read",
                    "Microsoft.CognitiveServices/*/read"
                ],
                "notActions": [
                    "Microsoft.MachineLearningServices/workspaces/delete",
                    "Microsoft.MachineLearningServices/workspaces/write",
                    "Microsoft.MachineLearningServices/workspaces/listKeys/action",
                    "Microsoft.MachineLearningServices/workspaces/hubs/write",
                    "Microsoft.MachineLearningServices/workspaces/hubs/delete",
                    "Microsoft.MachineLearningServices/workspaces/featurestores/write",
                    "Microsoft.MachineLearningServices/workspaces/featurestores/delete"
                ],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/generate/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/extensions/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/embeddings/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/images/generations/action"
                ],
                "notDataActions": []
            }
        ]
    }
}

カスタム ロールを作成する手順については、次のいずれかの記事に従ってください。

一般的なカスタム ロールの作成方法の詳細については、「Azure カスタム ロール」の記事を参照してください。

AI Studio でのロールの割り当て

Azure AI Studio から直接ユーザーを追加し、ハブ レベルまたはプロジェクト レベルでロールを割り当てることができます。 管理センターのハブまたはプロジェクトのセクションで、[ユーザー] を選択してから、[新しいユーザー] を選択してユーザーを追加します。

Note

組み込みロールの選択に制限されています。 カスタム ロールを割り当てる必要がある場合は、Azure portalAzure CLI、または Azure PowerShell を使用する必要があります。

[新しいユーザー] ボタンが強調表示されている Azure AI Studio の [ハブの概要] のスクリーンショット。

その後、ユーザー情報を入力し、組み込みロールを選択するように求められます。

ロールが Azure AI Developer に設定されている [ユーザーの追加] プロンプトのスクリーンショット。

シナリオ: カスタマー マネージド キーを使用する

カスタマー マネージド キー (CMK) を使うようにハブを構成する場合は、Azure キー コンテナーを使ってキーを格納します。 ワークスペースの作成に使用されるユーザーまたはサービス プリンシパルには、キー コンテナーへの所有者または共同作成者アクセス権が必要です。

AI Studio ハブがユーザー割り当てマネージド ID を使用して構成されている場合、ID に次のロールが付与されている必要があります。 これらのロールにより、マネージド ID は、カスタマー マネージド キーを使用するときに使用される Azure Storage、Azure Cosmos DB、および Azure Search リソースを作成できます。

  • Microsoft.Storage/storageAccounts/write
  • Microsoft.Search/searchServices/write
  • Microsoft.DocumentDB/databaseAccounts/write

キー コンテナー内では、ユーザーまたはサービス プリンシパルに、キー コンテナー アクセス ポリシーを使ってキーに対する作成、取得、削除、消去のアクセス権を付与する必要があります。 詳細については、「Azure Key Vault セキュリティ」を参照してください。

シナリオ: Microsoft Entra ID 認証を使用する接続

Microsoft Entra ID 認証を使用する接続を作成する場合は、開発者がリソースにアクセスできるようにロールを割り当てる必要があります。

リソース接続 ロール 説明
Azure AI Search Contributor Azure AI Studio からインデックスを一覧表示するための API キーを一覧表示します。
Azure AI Search 検索インデックス データ共同作成者 インデックス作成シナリオに必要
Azure AI サービス / Azure OpenAI Cognitive Services OpenAI 共同作成者 Azure AI Studio からパブリック インジェスト API を呼び出します。
Azure AI サービス / Azure OpenAI Cognitive Services ユーザー Azure AI Studio から API キーを一覧表示します。
Azure AI サービス / Azure OpenAI Cognitive Services 共同作成者 コントロール プレーンへの呼び出しを許可します。
Azure Blob Storage ストレージ BLOB データ共同作成者 BLOB ストレージに対するデータの読み取りと書き込みに必要です。
Azure Data Lake Storage Gen 2 ストレージ BLOB データ共同作成者 データ レイクに対するデータの読み取りと書き込みに必要です。
Microsoft OneLake Contributor Microsoft OneLake へのアクセス権をユーザーに付与するには、Microsoft Fabric ワークスペースへのアクセス権をそのユーザーに付与する必要があります。

重要

Promptflow を Azure Storage とともに使用する場合は (これには Azure Data Lake Storage Gen 2 も含まれます)、ストレージ ファイル データ特権付き共同作成者ロールも割り当てる必要があります。

チャット プレイグラウンドで Microsoft Entra ID 認証接続を使用する場合、必要なリソースへのアクセスをサービスで相互に認可する必要があります。 構成を実行する管理者は、ロールの割り当てを追加するために、これらのリソースに対する [所有者] ロールを持っている必要があります。 各リソースに必要なロールの割り当てを次の表に示します。 「割り当て先」列は、一覧に示されているリソースのシステム割り当てマネージド ID を指します。 「リソース」列は、割り当て先がアクセスする必要があるリソースを指します。 たとえば、Azure OpenAI にはシステム割り当てマネージド ID があり、これには Azure AI 検索リソースの検索インデックス データ閲覧者ロールを割り当てる必要があります。

ロール 割当先 リソース 説明
検索インデックス データ閲覧者 Azure AI サービス / Azure OpenAI Azure AI Search 推論サービスにより、インデックスからデータのクエリが実行されます。 推論シナリオにのみ使用されます。
検索インデックス データ共同作成者 Azure AI サービス / Azure OpenAI Azure AI Search インデックス内のコンテンツに対する読み取り/書き込みアクセス。 インデックスのドキュメント コレクションに対してインポート、更新、またはクエリを行います。 インジェストと推論のシナリオにのみ使用されます。
Search Service Contributor Azure AI サービス / Azure OpenAI Azure AI Search オブジェクト定義 (インデックス、別名、同意語マップ、インデクサー、データソース、スキルセット) に対する読み取り/書き込みアクセス。 推論サービスにより、インデックス スキーマに対して自動フィールド マッピングのクエリが実行されます。 データ インジェスト サービスは、インデックス、データ ソース、スキル セット、インデクサーを作成し、インデクサーの状態についてクエリを実行します。
Cognitive Services OpenAI 共同作成者 Azure AI Search Azure AI サービス / Azure OpenAI カスタム スキル
Cognitive Services OpenAI ユーザー チャット モデル用の Azure OpenAI リソース 埋め込みモデル用の Azure OpenAI リソース 2 つの Azure OpenAI リソースを使用して通信する場合にのみ必要です。
ストレージ BLOB データ共同作成者 Azure AI Search Azure Storage アカウント BLOB を読み取り、ナレッジ ストアに書き込みます。
ストレージ BLOB データ共同作成者 Azure AI サービス / Azure OpenAI Azure Storage アカウント 入力コンテナーから読み取り、前処理結果を出力コンテナーに書き込みます。

Note

Cognitive Services OpenAI ユーザー ロールは、チャット モデル用と埋め込みモデル用の 2 つの Azure OpenAI リソースを使用している場合にのみ必要です。 これに該当する場合は、信頼されたサービスを有効にし、かつ必ず埋め込みモデルの Azure OpenAI リソースの接続で Microsoft Entra ID を有効にします。

シナリオ: 既存の Azure OpenAI リソース

既存の Azure OpenAI リソースへの接続を作成するときは、ユーザーがリソースにアクセスできるようにロールをユーザーに割り当てる必要もあります。 実行する必要があるタスクに応じて、Cognitive Services OpenAI ユーザーまたは Cognitive Services OpenAI 共同作成者ロールのいずれかを割り当てる必要があります。 これらのロールとそれらが有効にするタスクの情報については、Azure OpenAI ロールに関するページを参照してください。

シナリオ: Azure Container Registry を使用する

Azure Container Registry インスタンスは、Azure AI Studio ハブとのオプションの依存関係があります。 次の表に、認証方法と Azure Container Registry の公衆ネットワーク アクセスの構成に応じた、Azure Container Registry へのハブに対する認証のサポート マトリックスを示します。

認証方法 無効になっている
パブリック ネットワーク アクセス
Azure Container Registry
公衆ネットワーク アクセスが有効
管理者ユーザー
AI Studio ハブのシステム割り当てマネージド ID
ACRPull ロールが ID に割り当てられている
AI Studio ハブのユーザー割り当てマネージド ID

システム割り当てマネージド ID は、ハブの作成時に正しいロールに自動的に割り当てられます。 ユーザー割り当てマネージド ID を使用している場合は、その ID に対して ACRPull ロールを割り当てる必要があります。

シナリオ: ログに Azure Application Insights を使う

Azure Application Insights は、Azure AI Studio ハブの省略可能な依存関係です。 次の表に、ハブの作成時に Application Insights を使う場合に必要なアクセス許可を示します。 ハブを作成するユーザーには、これらのアクセス許可が必要です。 ハブからプロジェクトを作成するユーザーには、これらのアクセス許可は必要ありません。

権限 目的
Microsoft.Insights/Components/Write Application Insights コンポーネントの構成を書き込みます。
Microsoft.OperationalInsights/workspaces/write 新しいワークスペースを作成するか、既存のワークスペースの顧客 ID を指定して既存のワークスペースにリンクします。

シナリオ: プロビジョニング済みスループット ユニットの調達者

次の例では、プロビジョニング済みスループット ユニット (PTU) を調達できるカスタム ロールを定義します。

{
    "properties": {
        "roleName": "PTU procurer",
        "description": "Custom role to purchase PTU",
        "assignableScopes": [
            "/subscriptions/<your-subscription-id>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/accounts/commitmentplans/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/write",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/delete",
                    "Microsoft.CognitiveServices/locations/commitmentTiers/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/read",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/write",
                    "Microsoft.CognitiveServices/accounts/commitmentplans/delete",
                    "Microsoft.Features/features/read",
                    "Microsoft.Features/providers/features/read",
                    "Microsoft.Features/providers/features/register/action",
                    "Microsoft.Insights/logDefinitions/read",
                    "Microsoft.Insights/metricdefinitions/read",
                    "Microsoft.Insights/metrics/read",
                    "Microsoft.ResourceHealth/availabilityStatuses/read",
                    "Microsoft.Resources/deployments/operations/read",
                    "Microsoft.Resources/subscriptions/operationresults/read",
                    "Microsoft.Resources/subscriptions/read",
                    "Microsoft.Resources/subscriptions/resourcegroups/deployments/*",
                    "Microsoft.Resources/subscriptions/resourceGroups/read"
                ],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
}

シナリオ: Azure OpenAI Assistants API

次の例では、Azure OpenAI Assistants を使用して開発者のロールを定義します。

{
    "id": "",
    "properties": {
        "roleName": "Azure OpenAI Assistants API Developer",
        "description": "Custom role to work with Azure OpenAI Assistants API",
        "assignableScopes": [
            "<your-scope>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.CognitiveServices/*/read",
                    "Microsoft.Authorization/roleAssignments/read",
                    "Microsoft.Authorization/roleDefinitions/read"
                ],
                "notActions": [],
                "dataActions": [
                    "Microsoft.CognitiveServices/accounts/OpenAI/*/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/engines/generate/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/search/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/extensions/chat/completions/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/deployments/embeddings/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/images/generations/action",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/files/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/delete",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/messages/files/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/write",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/read",
                    "Microsoft.CognitiveServices/accounts/OpenAI/assistants/threads/runs/steps/read"
                ],
                "notDataActions": []
            }
        ]
    }
}

トラブルシューティング

エラー: プリンシパルは API/操作にアクセスできません

現象

Azure AI Studio チャット プレイグラウンドを使用すると、"プリンシパルは API/操作にアクセスできません" というエラー メッセージが表示されます。 このエラーには、"Apim-request-id" も含まれる場合があります。

原因

Azure OpenAI または Azure AI 検索への要求を認証するために使用されるユーザーまたはサービス プリンシパルに、リソースへのアクセスに必要なアクセス許可がありません。

解決策

ユーザーまたはサービス プリンシパルに次のロールを割り当てます。 割り当てるロールは、使用しているサービスと、ユーザーまたはサービス プリンシパルに必要なアクセス レベルによって異なります。

アクセスされるサービス ロール 説明
Azure OpenAI Cognitive Services OpenAI 共同作成者 Azure AI Studio からパブリック インジェスト API を呼び出します。
Azure OpenAI Cognitive Services ユーザー Azure AI Studio から API キーを一覧表示します。
Azure AI Search 検索インデックス データ共同作成者 インデックス作成シナリオに必要。
Azure AI Search 検索インデックス データ閲覧者 推論サービスにより、インデックスからデータのクエリが実行されます。 推論シナリオにのみ使用されます。

次のステップ