Azure のすべてのサブスクリプションと管理グループを管理する目的でアクセス権限を昇格させる
[アーティクル] 01/22/2025
13 人の共同作成者
フィードバック
この記事の内容
Microsoft Entra ID のグローバル管理者は、自分のテナント内のすべてのサブスクリプションと管理グループへのアクセス権が与えられていない場合があります。 この記事では、すべてのサブスクリプションと管理グループにアクセスできるよう、権限を昇格させる方法について説明します。
アクセス権を昇格が必要な理由
全体管理者であれば、次のような操作を行う場合が考えられます。
ユーザーが Azure のサブスクリプションか管理グループにアクセスできなくなったとき、アクセス権を回復する
Azure サブスクリプションまたは管理グループへのアクセス権を別のユーザーまたは自分自身に付与する
組織内にある Azure のすべてのサブスクリプションと管理グループを表示する
オートメーション アプリ (請求書作成アプリや監査アプリなど) から Azure のすべてのサブスクリプションと管理グループへのアクセスを許可する
昇格されたアクセスはどのように機能しますか?
Microsoft Entra ID と Azure リソースは互いに依存することなくセキュリティで保護されます。 つまり、Microsoft Entra のロール割り当てによって Azure リソースにアクセス権が付与されることはなく、Azure のロール割り当てによって Microsoft Entra ID にアクセス権が付与されることはありません。 ただし、Microsoft Entra ID のグローバル理者 の場合は、自分のテナント内のすべての Azure サブスクリプションと管理グループに対するアクセス権を自分に割り当てることができます。 仮想マシンやストレージ アカウントなど、Azure サブスクリプション リソースへのアクセス権が与えられていない場合、この機能を使用します。このようなリソースに対するアクセス権を得るには、全体管理者の特権を使用することをお勧めします。
アクセス権を昇格させると、ルート スコープ (/
) で Azure でのユーザー アクセス管理者 ロールが割り当てられます。 これにより、すべてのリソースを表示し、テナント内のすべてのサブスクリプションまたは管理グループでのアクセス権を割り当てることができます。 ユーザー アクセス管理者ロールの割り当ては Azure PowerShell、Azure CLI、または REST API を使用して削除できます。
昇格したこのアクセス権は、ルート範囲で必要な変更を行ったら削除してください。
手順 1: 全体管理者のアクセス権を昇格する
Azure portal を使用して全体管理者のアクセス権を昇格するには、次の手順に従います。
Azure Portal に全体管理者としてサインインします。
Microsoft Entra Privileged Identity Management を使用している場合は、全体管理者ロールの割り当てをアクティブにします 。
[Microsoft Entra ID] >[管理] >[プロパティ] に移動します。
[Azure リソースのアクセス管理] の下で [はい] に切り替えます。
[はい] に切り替えると、Azure RBAC のルート範囲 (/) でユーザー アクセス管理者ロールが割り当てられます。 これにより、この Microsoft Entra テナントに関連付けられているすべての Azure サブスクリプションと管理グループでのロールを割り当てるアクセス許可が付与されます。 この切り替えは、Microsoft Entra ID で全体管理者ロールが割り当てられたユーザーのみ利用できます。
[いいえ] に切り替えると、Azure RBAC のユーザー アクセス管理者ロールがユーザー アカウントから削除されます。 この Microsoft Entra テナントに関連付けられているすべての Azure サブスクリプションと管理グループでのロールを割り当てることができなくなります。 自分にアクセス権が割り当てられている Azure サブスクリプションと管理グループのみを表示し、管理できます。
Note
Privileged Identity Management を使用している場合、ロールの割り当てを非アクティブにしても、Azure リソースのアクセス管理 トグルは [いいえ] に切り替わりません。 最小限の特権アクセスを維持するために、ロールの割り当てを非アクティブ化する前に、この切り替えを [いいえ] に設定することをお勧めします。
[保存] を選んで設定を保存します。
この設定はグローバル プロパティではなく、現在サインインしているユーザーのみに適用されます。 全体管理者ロールのすべてのメンバーを対象にアクセス権限を昇格させることはできません。
サインアウトし、もう一度サインインするとアクセス権限が更新されます。
これで自分のテナント内のすべてのサブスクリプションと管理グループにアクセスできます。 [アクセス制御 (IAM)] ページを表示すると、ルート スコープでユーザー アクセス管理者ロールが割り当てられていることがわかります。
昇格させたアクセス権で必要な変更を加えます。
ロールの割り当ての詳細については、「Azure portal を使用して Azure ロールを割り当てる 」をご覧ください。 Privileged Identity Management を使用している場合、管理する Azure リソースの検出 または Azure リソース ロールの割り当て に関するページを参照してください。
次のセクションの手順を実行し、昇格したアクセス権を削除します。
手順 2: 昇格されたアクセス権を削除する
ルート スコープ (/
) でユーザー アクセス管理者ロールの割り当てを削除するには、次の手順を行います。
アクセス権の昇格に使用された同じユーザーでサインインします。
[Microsoft Entra ID] >[管理] >[プロパティ] に移動します。
[Azure リソースのアクセス管理] を [いいえ] に戻します。 これはユーザー別の設定であるため、アクセス権限の昇格に使用したユーザーでサインインする必要があります。
[アクセス制御 (IAM)] ページでユーザー アクセス管理者ロールの割り当てを削除しようとすると、次のメッセージが表示されます。 ロールの割り当てを削除するには、トグルの設定を [いいえ] に戻すか、Azure PowerShell、Azure CLI、または REST API を使用します。
全体管理者としてサインアウトします。
Privileged Identity Management を使用している場合は、全体管理者ロールの割り当てを非アクティブ化します。
Note
Privileged Identity Management を使用している場合、ロールの割り当てを非アクティブにしても、Azure リソースのアクセス管理 トグルは [いいえ] に切り替わりません。 最小限の特権アクセスを維持するために、ロールの割り当てを非アクティブ化する前に、この切り替えを [いいえ] に設定することをお勧めします。
手順 1: 全体管理者のアクセス権を昇格する
Azure portal または REST API を使用して、全体管理者のアクセス権を昇格します。
手順 2: ルート スコープ (/) のロールの割り当てを一覧表示する
昇格されたアクセス権の取得後に、ルート スコープ (/
) のユーザーについてユーザー アクセス管理者ロールの割り当てを一覧表示するには、Get-AzRoleAssignment コマンドを使用します。
Get-AzRoleAssignment | where {$_.RoleDefinitionName -eq "User Access Administrator" `
-and $_.SignInName -eq "<username@example.com>" -and $_.Scope -eq "/"}
RoleAssignmentId : /providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111
Scope : /
DisplayName : username
SignInName : username@example.com
RoleDefinitionName : User Access Administrator
RoleDefinitionId : 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
ObjectId : 22222222-2222-2222-2222-222222222222
ObjectType : User
CanDelegate : False
手順 3: 昇格されたアクセス権を削除する
自分か他のユーザーのためにルート スコープ (/
) でユーザー アクセス管理者ロールの割り当てを削除するには、次の手順を行います。
昇格させたアクセス権を削除できるユーザーでサインインします。 これはアクセス権を昇格させたときと同じユーザーかルート スコープでアクセス権が昇格されている別の全体管理者になります。
ユーザー アクセス管理者ロールの割り当てを削除するには、Remove-AzRoleAssignment コマンドを使用します。
Remove-AzRoleAssignment -SignInName <username@example.com> `
-RoleDefinitionName "User Access Administrator" -Scope "/"
手順 1: 全体管理者のアクセス権を昇格する
Azure CLI を使用して全体管理者のアクセス権を昇格するには、以下の基本的な手順を実行します。
az rest コマンドを使用して elevateAccess
エンドポイントを呼び出します。これにより、ユーザー アクセス管理者ロールがルート スコープ (/
) で付与されます。
az rest --method post --url "/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
昇格させたアクセス権で必要な変更を加えます。
ロールの割り当ての詳細については、「Azure CLI を使用して Azure ロールを割り当てる 」をご覧ください。
後述のセクションの手順を実行して、昇格したアクセス権を削除します。
手順 2: ルート スコープ (/) のロールの割り当てを一覧表示する
昇格されたアクセス権の取得後に、ルート スコープ (/
) のユーザーについてユーザー アクセス管理者ロールの割り当てを一覧表示するには、az role assignment list コマンドを使用します。
az role assignment list --role "User Access Administrator" --scope "/"
[
{
"canDelegate": null,
"id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
"name": "11111111-1111-1111-1111-111111111111",
"principalId": "22222222-2222-2222-2222-222222222222",
"principalName": "username@example.com",
"principalType": "User",
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
"roleDefinitionName": "User Access Administrator",
"scope": "/",
"type": "Microsoft.Authorization/roleAssignments"
}
]
手順 3: 昇格されたアクセス権を削除する
自分か他のユーザーのためにルート スコープ (/
) でユーザー アクセス管理者ロールの割り当てを削除するには、次の手順を行います。
昇格させたアクセス権を削除できるユーザーでサインインします。 これはアクセス権を昇格させたときと同じユーザーかルート スコープでアクセス権が昇格されている別の全体管理者になります。
ユーザー アクセス管理者ロールの割り当てを削除するには、az role assignment delete コマンドを使用します。
az role assignment delete --assignee username@example.com --role "User Access Administrator" --scope "/"
前提条件
次のバージョンを使用する必要があります。
ロール割り当てを一覧表示および削除するには 2015-07-01
以降
アクセス権を昇格するには 2016-07-01
以降
拒否の割り当てを一覧表示するには 2018-07-01-preview
以降
詳細については、Azure RBAC REST API の API バージョン に関するページを参照してください。
手順 1: 全体管理者のアクセス権を昇格する
REST API を使用して全体管理者のアクセス権を昇格するには、以下の基本的な手順を実行します。
REST を使用して elevateAccess
を呼び出します。これにより、ユーザー アクセス管理者ロールがルート スコープ (/
) で付与されます。
POST https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01
昇格させたアクセス権で必要な変更を加えます。
ロールの割り当ての詳細については、「REST API を使用して Azure ロールを割り当てる 」をご覧ください。
後述のセクションの手順を実行して、昇格したアクセス権を削除します。
手順 2: ルート スコープ (/) のロールの割り当てを一覧表示する
昇格されたアクセス権の取得後に、ルート スコープ (/
) のユーザーについてすべてのロールの割り当てを一覧表示することができます。
Role Assignments - List For Scope を呼び出します。{objectIdOfUser}
は、ロールの割り当てを取得するユーザーのオブジェクト ID です。
GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectIdOfUser}'
手順 3: ルート スコープ (/) の拒否の割り当てを一覧表示する
昇格されたアクセス権の取得後に、ルート スコープ (/
) のユーザーについてすべての拒否の割り当てを一覧表示することができます。
Deny Assignments - List For Scope を呼び出します。{objectIdOfUser}
は、拒否の割り当てを取得するユーザーのオブジェクト ID です。
GET https://management.azure.com/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01&$filter=gdprExportPrincipalId+eq+'{objectIdOfUser}'
手順 4: 昇格されたアクセス権を削除する
elevateAccess
を呼び出すと、自分自身に対するロールの割り当てが作成されます。このため、これらの権限を取り消すには、ルート スコープ (/
) で、ユーザー アクセス管理者ロールの割り当てを自分で削除する必要があります。
Role Definitions - Get を呼び出します。この roleName
はユーザー アクセス管理者であり、ユーザー アクセス管理者ロールの名前 ID を判別します。
GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?api-version=2022-04-01&$filter=roleName+eq+'User Access Administrator'
{
"value": [
{
"properties": {
"roleName": "User Access Administrator",
"type": "BuiltInRole",
"description": "Lets you manage user access to Azure resources.",
"assignableScopes": [
"/"
],
"permissions": [
{
"actions": [
"*/read",
"Microsoft.Authorization/*",
"Microsoft.Support/*"
],
"notActions": []
}
],
"createdOn": "0001-01-01T08:00:00.0000000Z",
"updatedOn": "2016-05-31T23:14:04.6964687Z",
"createdBy": null,
"updatedBy": null
},
"id": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
"type": "Microsoft.Authorization/roleDefinitions",
"name": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9"
}
],
"nextLink": null
}
この場合の 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
では、name
パラメーターの ID を省略できます。
また、テナント スコープでテナント管理者のロール割り当ての一覧を表示する必要もあります。 アクセス権の昇格呼び出しを行ったテナント管理者の principalId
について、テナント スコープの割り当て一覧を表示します。 これにより、objectid についてテナントの割り当ての一覧が表示されます。
GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectid}'
Note
テナント管理者は、多くの割り当てを持たないようにする必要があります。 前のクエリから返される割り当てが多すぎる場合は、テナント スコープのみですべての割り当てのクエリを実行してから、結果をフィルターすることもできます: GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope()
前の呼び出しは、ロール割り当ての一覧を返します。 スコープが "/"
で、roleDefinitionId
が手順 1 で見つかったロール名 ID で終了し、principalId
がテナント管理者の objectId と一致する、ロール割り当てを検索します。
サンプル ロールの割り当て
{
"value": [
{
"properties": {
"roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
"principalId": "{objectID}",
"scope": "/",
"createdOn": "2016-08-17T19:21:16.3422480Z",
"updatedOn": "2016-08-17T19:21:16.3422480Z",
"createdBy": "22222222-2222-2222-2222-222222222222",
"updatedBy": "22222222-2222-2222-2222-222222222222"
},
"id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
"type": "Microsoft.Authorization/roleAssignments",
"name": "11111111-1111-1111-1111-111111111111"
}
],
"nextLink": null
}
繰り返しになりますが、name
パラメーターの ID を保存します。今回は 11111111-1111-1111-1111-111111111111 です。
最後に、ロール割り当て ID を使用して、elevateAccess
によって追加された割り当てを削除します。
DELETE https://management.azure.com/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111?api-version=2022-04-01
昇格されたアクセス権を持つユーザーを表示する
昇格されたアクセス権を持つユーザーがいる場合は、Azure portal のいくつかの場所にバナーが表示されます。 このセクションでは、自分のテナントに昇格されたアクセス権を持つユーザーがいるかどうかを確認する方法について説明します。 この機能は段階的に展開されているため、お使いのテナントでまだ使用できない場合があります。
オプション 1
Azure portal で、[Microsoft Entra ID] >[管理] >[プロパティ] に移動します。
[Azure リソースのアクセス管理] で、次のバナーを探します。
You have X users with elevated access. Microsoft Security recommends deleting access for users who have unnecessary elevated access. Manage elevated access users
[昇格されたアクセスを持つユーザーを管理します] リンクを選ぶと、昇格されたアクセス権を持つユーザーの一覧が表示されます。
オプション 2
Azure portal で、サブスクリプションに移動します。
[アクセス制御 (IAM)] を選択します。
ページの上部で、次のバナーを探します。
Action required: X users have elevated access in your tenant. You should take immediate action and remove all role assignments with elevated access. View role assignments
[ロールの割り当ての表示] リンクを選ぶと、昇格されたアクセス権を持つユーザーの一覧が表示されます。
ユーザーの昇格されたアクセス権を削除する
昇格されたアクセス権を持つユーザーがいる場合は、速やかに対処して、そのアクセス権を削除する必要があります。 これらのロール割り当てを削除するには、自分も昇格されたアクセス権を持っている必要があります。 このセクションでは、Azure portal を使って自分のテナント内のユーザーの昇格されたアクセス権を削除する方法について説明します。 この機能は段階的に展開されているため、お使いのテナントでまだ使用できない場合があります。
Azure Portal に全体管理者としてサインインします。
[Microsoft Entra ID] >[管理] >[プロパティ] に移動します。
[Azure リソースのアクセス管理] で、前の「手順 1: 全体管理者のアクセス権を昇格する 」で説明したようにトグルを [はい] に設定します。
[昇格されたアクセスを持つユーザーを管理します] リンクを選びます。
[昇格されたアクセス権を持つユーザー] ペインに、自分のテナント内で昇格されたアクセス権を持つユーザーの一覧が表示されます。
ユーザーの昇格されたアクセス権を削除するには、ユーザーの横のチェック ボックスをオンにして、[削除] を選びます。
昇格アクセス ログ エントリを表示する
アクセスが昇格されるまたは削除されると、ログにエントリが追加されます。 Microsoft Entra ID における管理者として、アクセスがいつ昇格され、誰がそれを実行したかを確認したい場合があります。
昇格アクセス ログ エントリは、Microsoft Entra ディレクトリ監査ログと Azure アクティビティ ログの両方において表示されます。 ディレクトリ監査ログとアクティビティ ログの昇格アクセス ログ エントリには、同様の情報が含まれます。 ただし、ディレクトリ監査ログはフィルター処理およびエクスポートするのが簡単です。 また、エクスポート機能を使用するとアクセス イベントをストリームできるようになり、Microsoft Sentinel またはその他のシステムなどのアラートと検出ソリューションに使用できます。 さまざまな宛先にログを送信する方法については、「アクティビティ ログについて Microsoft Entra 診断設定を構成する 」を参照してください。
このセクションでは、アクセス権の昇格ログのエントリを表示するさまざまな方法について説明します。
重要
Microsoft Entra ディレクトリ監査ログにおける昇格アクセス ログ エントリは、現在プレビュー段階です。
このプレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。
詳しくは、Microsoft Azure プレビューの追加使用条件 に関するページをご覧ください。
Azure Portal に全体管理者としてサインインします。
[Microsoft Entra ID] >[監視] >[監査ログ] に移動します。
[サービス] フィルター内で、[Azure RBAC (昇格されたアクセス)] を選択してから [適用] を選択します。
昇格アクセス ログが表示されます。
アクセスが昇格または削除された際の詳細を表示するには、その監査ログ エントリを選択します。
User has elevated their access to User Access Administrator for their Azure Resources
The role assignment of User Access Administrator has been removed from the user
ログ エントリのペイロードを JSON 形式でダウンロードおよび表示するには、[ダウンロード] と [JSON] を選択します。
Azure portal を使用してアクセス権の昇格ログのエントリを表示する
Azure Portal に全体管理者としてサインインします。
[監視] >[アクティビティ ログ] に移動します。
[アクティビティ] リストを [ディレクトリ アクティビティ] に変更します。
アクセス権を昇格させるアクションを示す、次の操作を探します。
Assigns the caller to User Access Administrator role
Azure CLI を使用してアクセス権の昇格ログのエントリを表示する
az login コマンドを使用して、全体管理者としてサインインします。
az rest コマンドを使用して、以下の呼び出しを行います。ここでは、タイムスタンプの例に示すように日付でフィルター処理を行い、ログを格納するファイル名を指定する必要があります。
url
は API を呼び出して、Microsoft.Insights のログを取得します。 出力は指定したファイルに保存されます。
az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt
出力ファイルで、elevateAccess
を検索します。
ログは次のようになります。ここでは、アクションが発生したタイミングを示すタイムスタンプと、呼び出したユーザーが表示されています。
"submissionTimestamp": "2021-08-27T15:42:00.1527942Z",
"subscriptionId": "",
"tenantId": "33333333-3333-3333-3333-333333333333"
},
{
"authorization": {
"action": "Microsoft.Authorization/elevateAccess/action",
"scope": "/providers/Microsoft.Authorization"
},
"caller": "user@example.com",
"category": {
"localizedValue": "Administrative",
"value": "Administrative"
},
アクセスをグループに委任して、Azure CLI を使用してアクセス権の昇格ログのエントリを表示する
アクセス権の昇格ログのエントリを定期的に取得できるようにしたい場合は、アクセス権をグループに委任してから、Azure CLI を使用します。
[Microsoft Entra ID] >[グループ] に移動します。
新しいセキュリティ グループを作成し、グループ オブジェクト ID をメモします。
az login コマンドを使用して、全体管理者としてサインインします。
az role assignment create コマンドを使って、Microsoft/Insights
にあるテナント レベルのログを読むことだけできるグループに閲覧者 ロールを割り当てます。
az role assignment create --assignee "{groupId}" --role "Reader" --scope "/providers/Microsoft.Insights"
事前に作成したグループに、ログの閲覧を行うユーザーを追加します。
これで、グループ内のユーザーが定期的に az rest コマンドを実行して、アクセス権の昇格ログのエントリを表示できるようになりました。
az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt
次のステップ