REST API を使用して Azure でのロールの割り当てを一覧表示する

Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure のリソースに対するアクセスを管理するために使用する承認システムです。 ユーザー、グループ、サービスプリンシパル、またはマネージド ID がアクセスできるリソースを特定するには、ロールの割り当てを一覧表示します。 この記事では、REST API を使用してロールの割り当てを一覧表示する方法について説明します。

Note

組織で、Azure Lighthouse を使用するサービス プロバイダーに管理機能を外部委託している場合、そのサービス プロバイダーによって承認されているロールの割り当てはここに表示されません。 同様に、サービス プロバイダー テナントのユーザーには、割り当てられているロールに関係なく、顧客のテナント内のユーザーに対するロールの割り当ては表示されません。

Note

個人データの表示または削除については、「GDPR のための Azure データ サブジェクト要求」を参照してください。 GDPR の詳細については、Microsoft Trust Center の GDPR に関するセクションおよび Service Trust Portal の GDPR に関するセクションをご覧ください。

前提条件

次のバージョンを使用する必要があります。

  • 2015-07-01 以降
  • 条件を含めるには 2022-04-01 以降

詳細については、Azure RBAC REST API の API バージョンに関するページを参照してください。

ロールの割り当てを一覧表示する

Azure RBAC でアクセス権を一覧表示するには、ロールの割り当てを一覧表示します。 ロールの割り当てを一覧表示するには、ロールの割り当て Get または List REST API を使用します。 結果を絞り込むには、スコープと任意のフィルターを指定します。

  1. 次の要求から開始します。

    GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter={filter}
    
  2. URI の {scope} を、ロールの割り当てを一覧表示するスコープに変更します。

    Scope Type
    providers/Microsoft.Management/managementGroups/{groupId1} 管理グループ
    subscriptions/{subscriptionId1} サブスクリプション
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1 Resource group
    subscriptions/{subscriptionId1}/resourceGroups/myresourcegroup1/providers/Microsoft.Web/sites/mysite1 リソース

    前の例で、microsoft.web は App Service インスタンスを参照するリソース プロバイダーです。 同様に、他の任意のリソース プロバイダーを使用してスコープを指定できます。 詳細については、「Azure リソース プロバイダーと種類」およびサポートされている「Azure リソース プロバイダーの操作」を参照してください。

  3. {filter} には、ロールの割り当て一覧をフィルター処理するために適用する条件を指定します。

    Assert 説明
    $filter=atScope() サブスコープのロールの割り当ては含めずに、指定スコープのみを対象にロールの割り当てを一覧表示します。
    $filter=assignedTo('{objectId}') 指定したユーザーまたはサービス プリンシパルを対象にロールの割り当てを一覧表示します。
    ユーザーが、ロール割り当てがあるグループのメンバーである場合は、そのロール割り当ても一覧表示されます。 このフィルターはグループにとって推移的です。つまり、ユーザーがあるグループのメンバーで、そのグループが、ロール割り当てのある別のグループのメンバーである場合は、そのロール割り当ても一覧表示されます。
    このフィルターは、ユーザーまたはサービス プリンシパルのオブジェクト ID のみを受け入れます。 グループのオブジェクト ID を渡すことはできません。
    $filter=atScope()+and+assignedTo('{objectId}') 指定したユーザーまたはサービス プリンシパルを対象に、指定したスコープでロールの割り当てを一覧表示します。
    $filter=principalId+eq+'{objectId}' 指定したユーザー、グループ、またはサービス プリンシパルを対象にロールの割り当てを一覧表示します。

次の要求は、サブスクリプション スコープで指定されたユーザーのすべてのロールの割り当てを一覧表示します。

GET https://management.azure.com/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope()+and+assignedTo('{objectId1}')

出力例を次に示します。

{
    "value": [
        {
            "properties": {
                "roleDefinitionId": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1",
                "principalId": "{objectId1}",
                "principalType": "User",
                "scope": "/subscriptions/{subscriptionId1}",
                "condition": null,
                "conditionVersion": null,
                "createdOn": "2022-01-15T21:08:45.4904312Z",
                "updatedOn": "2022-01-15T21:08:45.4904312Z",
                "createdBy": "{createdByObjectId1}",
                "updatedBy": "{updatedByObjectId1}",
                "delegatedManagedIdentityResourceId": null,
                "description": null
            },
            "id": "/subscriptions/{subscriptionId1}/providers/Microsoft.Authorization/roleAssignments/{roleAssignmentId1}",
            "type": "Microsoft.Authorization/roleAssignments",
            "name": "{roleAssignmentId1}"
        }
    ]
}

次のステップ