Azure Machine Learning ワークスペースへのアクセスの管理

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

ヒント

この記事では Azure Machine Learning に焦点を当てていますが、Azure ML が依存する個々のサービスには独自の RBAC 設定があります。 たとえば、この記事の情報を使用して、Azure Kubernetes Service で Web サービスとしてデプロイされたモデルにスコアリング要求を送信できるユーザーを構成できます。 ただし、Azure Kubernetes Service には、独自の Azure ロールのセットがあります。 Azure Machine Learning で役立つ可能性があるサービス固有の RBAC 情報については、次のリンクを参照してください。

警告

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

既定のロール

Azure Machine Learning ワークスペースには、既定で使用できる 4 つの組み込みロールがあります。 ユーザーをワークスペースに追加する際に、次に示す組み込みロールのいずれかを割り当てることができます。

Role アクセス レベル
AzureML データ サイエンティスト コンピューティング リソースの作成または削除とワークスペース自体の変更を除く、Azure Machine Learning ワークスペース内のすべてのアクションを実行できます。
Reader ワークスペースでの読み取り専用のアクション。 閲覧者はワークスペースで資産 (データストアの資格情報を含む) を一覧および表示できます。 閲覧者がこれらの資産を作成または更新することはできません。
Contributor ワークスペース内の資産を表示、作成、編集、削除 (該当する場合) します。 たとえば、共同作成者は実験を作成したり、コンピューティング クラスターを作成またはアタッチしたり、実行を送信したり、Web サービスをデプロイしたりできます。
所有者 ワークスペース内の資産を表示、作成、編集、削除 (該当する場合) する機能など、ワークスペースへのフル アクセス。 また、ロールの割り当てを変更することができます。

重要

ロール アクセス権は、Azure の複数のレベルにスコープ指定できます。 たとえば、ワークスペースへの所有者アクセス権を持つユーザーであっても、そのワークスペースが含まれるリソース グループへの所有者アクセス権を持っていないことがあります。 詳細については、「Azure RBAC のしくみ」を参照してください。

ワークスペース アクセスの管理

ワークスペースの所有者は、ワークスペースのロールを追加および削除できます。 ユーザーにロールを割り当てることもできます。 アクセスを管理する方法を確認するには、次のリンクを使用します。

Azure AD セキュリティ グループを使用してワークスペース アクセスを管理する

Azure AD セキュリティ グループを使用して、ワークスペースへのアクセスを管理できます。 この方法には次の利点があります。

  • チームまたはプロジェクトのリーダーは、ワークスペース リソースに対する所有者ロールを直接必要とせずに、セキュリティ グループの所有者としてワークスペースへのユーザー アクセスを管理できます。
  • ユーザーごとにアクセス許可を管理することなく、ワークスペースや他のリソースに対するユーザーのアクセス許可をグループとして整理、管理、取り消すことができます。
  • Azure AD グループを使用すると、ロールの割り当てに関するサブスクリプションの制限に達しないようにすることができます。

Azure AD セキュリティ グループを使用するには:

  1. セキュリティ グループを作成します
  2. グループ所有者を追加します。 このユーザーには、グループ メンバーを追加または削除するためのアクセス許可があります。 なお、グループ所有者は、グループ メンバーである必要はなく、またワークスペースに対する直接の RBAC ロールを持っている必要もありません。
  3. AzureML データ科学者、閲覧者、共同作成者など、ワークスペースに対する RBAC ロールをグループに割り当てます。
  4. グループ メンバーを追加します。 その結果、メンバーはワークスペースにアクセスできるようになります。

カスタム ロールの作成

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

注意

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

カスタム ロールを作成するには、最初に、ロールのアクセス許可とスコープを指定するロールの定義 JSON ファイルを構築します。 次の例では、特定のワークスペース レベルにスコープ指定された "Data Scientist Custom" という名前のカスタム ロールを定義しています。

data_scientist_custom_role.json :

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute.",
    "Actions": ["*"],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace_name>"
    ]
}

ヒント

AssignableScopes フィールドを変更し、サブスクリプション レベル、リソース グループ レベル、特定のワークスペース レベルでこのカスタム ロールのスコープを設定することができます。 上記のカスタム ロールは一例にすぎません。推奨されるいくつかの Azure Machine Learning service のカスタム ロールを参照してください。

このカスタム ロールは、次のアクションを除くすべてのアクションをワークスペース内で実行できます。

  • コンピューティング リソースを作成または更新できません。
  • コンピューティング リソースを削除できません。
  • ロールの割り当てを追加、削除、変更できません。
  • ワークスペースを削除できません。

このカスタム ロールをデプロイするには、次の Azure CLI コマンドを使用します。

az role definition create --role-definition data_scientist_role.json

デプロイ後、このロールは、指定したワークスペース内で利用可能になります。 これで、このロールを Azure portal で追加し、割り当てることができるようになりました。

カスタム ロールの詳細については、「Azure カスタム ロール」を参照してください。

Azure Machine Learning の操作

カスタム ロールで使用できる操作 (アクションとアクション以外) の詳細については、「リソース プロバイダー操作」を参照してください。 次の Azure CLI コマンドを使用して、操作を一覧表示することもできます。

az provider operation show –n Microsoft.MachineLearningServices

カスタム ロールの一覧表示

Azure CLI で、次のコマンドを実行します。

az role definition list --subscription <sub-id> --custom-role-only true

特定のカスタム ロールのロール定義を表示するには、次の Azure CLI コマンドを使用します。 <role-name> は、上記のコマンドで返されるのと同じ形式である必要があります。

az role definition list -n <role-name> --subscription <sub-id>

カスタム ロールの更新

Azure CLI で、次のコマンドを実行します。

az role definition update --role-definition update_def.json --subscription <sub-id>

新しいロールの定義のスコープ全体に対するアクセス許可が必要となります。 たとえば、この新しいロールが 3 つのサブスクリプションにわたってスコープを持つ場合は、3 つすべてのサブスクリプションに対するアクセス許可が必要です。

注意

ロールの更新は、そのスコープ内のすべてのロールの割り当てに適用されるまでに 15 分 ~ 1 時間かかることがあります。

Azure Resource Manager テンプレートを繰り返し使用する

複雑なロール割り当てを何度も作成することになりそうであれば、Azure Resource Manager テンプレートが非常に便利です。 machine-learning-dependencies-role-assignment template では、ソース コードでロール割り当てを再使用できるよう指定する方法を示しています。

一般的なシナリオ

次の表は、Azure Machine Learning アクティビティの概要と、それらを最小のスコープで実行するために必要なアクセス許可をまとめたものです。 たとえば、ワークスペース スコープ (列 4) を使用してアクティビティを実行できる場合は、そのアクセス許可を持つそれより高いすべてのスコープも自動的に機能します。

重要

この表内の / で始まるすべてのパスは、Microsoft.MachineLearningServices/ に対する相対パスです。

アクティビティ サブスクリプション レベルのスコープ リソース グループレベルのスコープ ワークスペースレベルのスコープ
新しいワークスペースの作成 1 必要なし 所有者または共同作成者 該当なし (所有者になるか、作成後に上位のスコープ ロールを継承します)
サブスクリプション レベル Amlcompute クォータを要求するか、ワークスペース レベルのクォータを設定する 所有者、共同作成者、またはサブスクリプション スコープで /locations/updateQuotas/action が可能なカスタム ロール

権限なし 権限なし
新しいコンピューティング クラスターの作成 必要なし 必要なし 所有者、共同作成者、または /workspaces/computes/write が可能なカスタム ロール
新しいコンピューティング インスタンスの作成 必要なし 必要なし 所有者、共同作成者、または /workspaces/computes/write が可能なカスタム ロール
任意の種類の実行を送信する 必要なし 必要なし 所有者、共同作成者、または "/workspaces/*/read", "/workspaces/environments/write", "/workspaces/experiments/runs/write", "/workspaces/metadata/artifacts/write", "/workspaces/metadata/snapshots/write", "/workspaces/environments/build/action", "/workspaces/experiments/runs/submit/action", "/workspaces/environments/readSecrets/action" が可能なカスタム ロール
パイプラインとエンドポイントの公開 必要なし 必要なし 所有者、共同作成者、または "/workspaces/endpoints/pipelines/*", "/workspaces/pipelinedrafts/*", "/workspaces/modules/*" が可能なカスタム ロール
AKS リソースをアタッチする 2 必要なし AKS を含むリソース グループの所有者または共同作成者
AKS/ACI リソースに登録済みモデルを配置する 必要なし 必要なし 所有者、共同作成者、または "/workspaces/services/aks/write", "/workspaces/services/aci/write" が可能なカスタム ロール
配置された AKS エンドポイントに対するスコアリング 必要なし 必要なし 所有者、共同作成者、または "/workspaces/services/aks/score/action", "/workspaces/services/aks/listkeys/action" (Azure Active Directory 認証を使用していない場合) または "/workspaces/read" (トークン認証を使用している場合) が可能なカスタム ロール
対話型ノートブックを使用してストレージにアクセスする 必要なし 必要なし 所有者、共同作成者、または "/workspaces/computes/read", "/workspaces/notebooks/samples/read", "/workspaces/notebooks/storage/*", "/workspaces/listStorageAccountKeys/action", "/workspaces/listNotebookAccessToken/read" が可能なカスタム ロール
新しいカスタム ロールを作成する 所有者、共同作成者、または Microsoft.Authorization/roleDefinitions/write が可能なカスタム ロール 必要なし 所有者、共同作成者、または /workspaces/computes/write が可能なカスタム ロール
オンライン エンドポイントとデプロイを作成および管理する 必要なし 必要なし 所有者、共同作成者、または Microsoft.MachineLearningServices/workspaces/onlineEndpoints/* が可能なカスタム ロール
オンライン エンドポイントの認証資格情報を取得する 必要なし 必要なし 所有者、共同作成者、または Microsoft.MachineLearningServices/workspaces/onlineEndpoints/token/action および Microsoft.MachineLearningServices/workspaces/onlineEndpoints/listkeys/action が可能なカスタム ロール。

1: 最初にワークスペースを作成しようとしたときにエラーが発生した場合は、自分のロールで Microsoft.MachineLearningServices/register/action が許可されていることを確認してください。 このアクションにより、Azure Machine Learning リソース プロバイダーを Azure サブスクリプションに登録できます。

2: AKS クラスターをアタッチする場合は、クラスターの Azure Kubernetes Service クラスター管理者ロールも必要です。

カスタマー マネージド キーを使用してワークスペースを作成する

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

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

Azure ML コンピューティング クラスターのユーザー割り当てマネージド ID

Azure Machine Learning コンピューティング クラスターにユーザー割り当て ID を割り当てるには、コンピューティングとマネージド ID オペレーター ロールを作成するための書き込みアクセス許可を持っている必要があります。 マネージド ID を使用した Azure RBAC の詳細については、ユーザー割り当て ID の管理方法に関するページを参照してください。

MLflow 操作

Azure Machine Learning ワークスペースで MLflow 操作を実行するには、カスタム ロールに次のスコープを使用します。

MLflow 操作 Scope
ワークスペース追跡ストア内のすべての実験の一覧表示、ID による実験の取得、名前による実験の取得 Microsoft.MachineLearningServices/workspaces/experiments/read
名前を指定した実験の作成、実験のタグの設定、削除対象としてマークされた実験の復元 Microsoft.MachineLearningServices/workspaces/experiments/write
実験の削除 Microsoft.MachineLearningServices/workspaces/experiments/delete
実行および関連するデータとメタデータの取得、特定の実行について指定したメトリックのすべての値の一覧の取得、実行の成果物の一覧表示 Microsoft.MachineLearningServices/workspaces/experiments/runs/read
実験内での新しい実行の作成、実行の削除、削除された実行の復元、現在の実行におけるメトリックのログ記録、実行のタグの設定、実行のタグの削除、実行に使用されるパラメーター (キーと値のペア) のログ記録、実行のためのメトリック、パラメーター、タグのバッチのログ記録、実行の状態の更新 Microsoft.MachineLearningServices/workspaces/experiments/runs/write
名前による登録済みモデルの取得、レジストリ内のすべての登録済みモデルの一覧の取得、登録済みモデルの検索、各要求ステージの最新バージョンのモデル、登録済みモデルのバージョンの取得、モデルのバージョンの検索、モデルのバージョンの成果物が格納されている URI の取得、実験 ID による実行の検索 Microsoft.MachineLearningServices/workspaces/models/read
新しい登録済みモデルの作成、登録済みモデルの名前または説明の更新、既存の登録済みモデルの名前の変更、モデルの新しいバージョンの作成、モデルのバージョンの説明の更新、いずれかのステージへの登録済みモデルの移行 Microsoft.MachineLearningServices/workspaces/models/write
登録済みモデルとそのすべてのバージョンの削除、登録済みモデルの特定のバージョンの削除 Microsoft.MachineLearningServices/workspaces/models/delete

カスタム ロールの例

データ サイエンティスト

データ科学者がワークスペース内で以下を除くすべての操作を実行することができます。

  • コンピューティングの作成
  • 実稼働 AKS クラスターへのモデルの配置
  • 運用環境でのパイプライン エンドポイントの配置

data_scientist_custom_role.json :

{
    "Name": "Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints.",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.MachineLearningServices/workspaces/*/write"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>"
    ]
}

制限されたデータ サイエンティスト

許可されたアクションにワイルドカードを含まない、より制限されたロール定義。 ワークスペース内で以下を除くすべての操作が実行できます。

  • コンピューティングの作成
  • 実稼働 AKS クラスターへのモデルの配置
  • 運用環境でのパイプライン エンドポイントの配置

data_scientist_restricted_custom_role.json :

{
    "Name": "Data Scientist Restricted Custom",
    "IsCustom": true,
    "Description": "Can run experiment but can't create or delete compute or deploy production endpoints",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/computes/start/action",
        "Microsoft.MachineLearningServices/workspaces/computes/stop/action",
        "Microsoft.MachineLearningServices/workspaces/computes/restart/action",
        "Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/read",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/write",
        "Microsoft.MachineLearningServices/workspaces/notebooks/storage/delete",
        "Microsoft.MachineLearningServices/workspaces/notebooks/samples/read",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action",
        "Microsoft.MachineLearningServices/workspaces/pipelinedrafts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/models/write",
        "Microsoft.MachineLearningServices/workspaces/modules/write",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/write", 
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/delete",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/write",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listNodes/action",
        "Microsoft.MachineLearningServices/workspaces/environments/build/action"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/profile/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/preview/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/schema/read",    
        "Microsoft.MachineLearningServices/workspaces/datasets/unregistered/schema/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/write",
        "Microsoft.MachineLearningServices/workspaces/datastores/delete"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>"
    ]
}

MLflow データ サイエンティスト

データ科学者が、以下を除く、MLflow AzureML でサポートされているすべての操作を実行できます。

  • コンピューティングの作成
  • 実稼働 AKS クラスターへのモデルの配置
  • 運用環境でのパイプライン エンドポイントの配置

mlflow_data_scientist_custom_role.json :

{
    "Name": "MLFlow Data Scientist Custom",
    "IsCustom": true,
    "Description": "Can perform azureml mlflow integrated functionalities that includes mlflow tracking, projects, model registry",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/experiments/read",
        "Microsoft.MachineLearningServices/workspaces/experiments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/delete",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/models/read",
        "Microsoft.MachineLearningServices/workspaces/models/write",
        "Microsoft.MachineLearningServices/workspaces/models/delete"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/write",
        "Microsoft.MachineLearningServices/workspaces/computes/*/delete", 
        "Microsoft.Authorization/*",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/services/aks/write",
        "Microsoft.MachineLearningServices/workspaces/services/aks/delete",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>"
    ]
}

MLOps

サービス プリンシパルにロールを割り当て、それを使用して MLOps パイプラインを自動化することができます。 たとえば、既に公開されているパイプラインに対して実行を送信するには、次のようにします。

mlops_custom_role.json :

{
    "Name": "MLOps Custom",
    "IsCustom": true,
    "Description": "Can run pipelines against a published pipeline endpoint",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/endpoints/pipelines/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/read",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/read",
        "Microsoft.MachineLearningServices/workspaces/environments/read",    
        "Microsoft.MachineLearningServices/workspaces/metadata/secrets/read",
        "Microsoft.MachineLearningServices/workspaces/modules/read",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/read",
        "Microsoft.MachineLearningServices/workspaces/datasets/registered/read",
        "Microsoft.MachineLearningServices/workspaces/datastores/read",
        "Microsoft.MachineLearningServices/workspaces/environments/write",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/artifacts/write",
        "Microsoft.MachineLearningServices/workspaces/metadata/snapshots/write",
        "Microsoft.MachineLearningServices/workspaces/environments/build/action",
        "Microsoft.MachineLearningServices/workspaces/experiments/runs/submit/action"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/computes/write",
        "Microsoft.MachineLearningServices/workspaces/write",
        "Microsoft.MachineLearningServices/workspaces/computes/delete",
        "Microsoft.MachineLearningServices/workspaces/delete",
        "Microsoft.MachineLearningServices/workspaces/computes/listKeys/action",
        "Microsoft.MachineLearningServices/workspaces/listKeys/action",
        "Microsoft.Authorization/*"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>"
    ]
}

ワークスペース管理者

ワークスペースのスコープ内で以下を除くすべての操作を実行することができます。

  • 新しいワークスペースの作成。
  • サブスクリプションまたはワークスペース レベルのクォータの割り当て

ワークスペース管理者は、新しいロールを作成することもできません。 ワークスペースのスコープ内で既存の組み込みロールまたはカスタム ロールのみを割り当てることができます。

workspace_admin_custom_role.json :

{
    "Name": "Workspace Admin Custom",
    "IsCustom": true,
    "Description": "Can perform all operations except quota management and upgrades",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/*/read",
        "Microsoft.MachineLearningServices/workspaces/*/action",
        "Microsoft.MachineLearningServices/workspaces/*/write",
        "Microsoft.MachineLearningServices/workspaces/*/delete",
        "Microsoft.Authorization/roleAssignments/*"
    ],
    "NotActions": [
        "Microsoft.MachineLearningServices/workspaces/write"
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>"
    ]
}

データのラベル付け

データのラベル付けのみを対象とするロールを定義することができます。

labeler_custom_role.json :

{
    "Name": "Labeler Custom",
    "IsCustom": true,
    "Description": "Can label data for Labeling",
    "Actions": [
        "Microsoft.MachineLearningServices/workspaces/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/projects/summary/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/read",
        "Microsoft.MachineLearningServices/workspaces/labeling/labels/write"   
    ],
    "NotActions": [        
    ],
    "AssignableScopes": [
        "/subscriptions/<subscription_id>"
    ]
}

トラブルシューティング

Azure ロールベースのアクセス制御 (Azure RBAC) を使用している間は、次の点に注意する必要があります。

  • Azure でリソース (ワークスペースなど) を作成しても、リソースの直接の所有者にはなりません。 ロールは、そのサブスクリプションで認可されている最も高いスコープのロールから継承されます。 たとえば、Machine Learning ワークスペースを作成するアクセス許可を持っているネットワーク管理者の場合、所有者ロールではなく、そのワークスペースに対するネットワーク管理者ロールが割り当てられます。

  • ワークスペースでクォータ操作を実行するには、サブスクリプション レベルのアクセス許可が必要です。 これは、マネージド コンピューティング リソースに対するサブスクリプション レベルのクォータまたはワークスペース レベルのクォータの設定は、サブスクリプション スコープで書き込みアクセス許可がある場合にのみ可能であることを意味します。

  • 同じ Azure Active Directory ユーザーに 2 つのロールの割り当てがあり、Actions/NotActions のセクションが競合している場合、あるロールの NotActions に一覧表示されている操作は、他のロールで Actions としても一覧表示されている場合、有効にならない可能性があります。 Azure がロールの割り当てを解析する方法の詳細については、「ユーザーがリソースへのアクセス権を持っているどうかを Azure RBAC が特定する方法」を参照してください。

  • VNet 内にコンピューティング リソースをデプロイするには、次のアクションのアクセス許可を明示的に付与する必要があります。

    • VNet リソースに対する Microsoft.Network/virtualNetworks/*/read
    • サブネット リソースに対する Microsoft.Network/virtualNetworks/subnets/join/action

    ネットワークでの Azure RBAC の詳細については、ネットワークの組み込みロールに関するページを参照してください。

  • 新しいロールの割り当てがスタック全体のキャッシュされたアクセス許可に対して有効になるには、最大で 1 時間かかることがあります。

次のステップ