REST API を使用して Azure でのロールの割り当てを一覧表示する
Azure ロールベースのアクセス制御 (Azure RBAC) は、Azure のリソースに対するアクセスを管理するために使用する承認システムです。 ユーザー、グループ、サービスプリンシパル、またはマネージド ID がアクセスできるリソースを特定するには、ロールの割り当てを一覧表示します。 この記事では、REST API を使用してロールの割り当てをリストする方法を説明します。
Note
組織で、Azure Lighthouse を使用するサービス プロバイダーに管理機能を外部委託している場合、そのサービス プロバイダーによって承認されているロールの割り当てはここに表示されません。 同様に、サービス プロバイダー テナント内のユーザーには、割り当てられているロールに関係なく、顧客のテナント内のユーザーに対するロールの割り当ては表示されません。
Note
個人データの表示または削除については、具体的な領域とニーズに応じて、「GDPR に関する一般的なデータ主体の要求」、「GDPR に関する Azure データ主体の要求」、「GDPR に関する Windows データ主体の要求」のいずれかを参照してください。 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 を使用します。 結果を絞り込むには、スコープと任意のフィルターを指定します。
次の要求から開始します。
GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter={filter}
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 リソース プロバイダーの操作」を参照してください。
{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}"
}
]
}