Azure のすべてのサブスクリプションと管理グループを管理する目的でアクセス権限を昇格させる

Microsoft Entra ID の全体管理者には、自分のディレクトリ内にすべてのサブスクリプションと管理グループにアクセスする権限が与えられていない場合があります。 この記事では、すべてのサブスクリプションと管理グループにアクセスできるよう、権限を昇格させる方法について説明します。

Note

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

アクセス権を昇格が必要な理由

全体管理者であれば、次のような操作を行う場合が考えられます。

  • ユーザーが 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 を使用して削除できます。

昇格したこのアクセス権は、ルート範囲で必要な変更を行ったら削除してください。

Elevate access

ルート スコープで手順を実行する

手順 1: 全体管理者のアクセス権を昇格する

Azure portal を使用して全体管理者のアクセス権を昇格するには、次の手順に従います。

  1. Azure Portal に全体管理者としてサインインします。

    Microsoft Entra Privileged Identity Management を使用している場合は、全体管理者ロールの割り当てをアクティブにします

  2. Microsoft Entra ID を開きます。

  3. [管理] の下で、 [プロパティ] を選択します。

    Select Properties for Microsoft Entra properties - screenshot

  4. [Azure リソースのアクセス管理] の下で [はい] に切り替えます。

    Access management for Azure resources - screenshot

    [はい] に切り替えると、Azure RBAC のルート範囲 (/) でユーザー アクセス管理者ロールが割り当てられます。 これにより、この Microsoft Entra ディレクトリに関連付けられているすべての Azure サブスクリプションと管理グループでロールを割り当てるアクセス許可が付与されます。 この切り替えは、Microsoft Entra ID で全体管理者ロールが割り当てられたユーザーのみ利用できます。

    [いいえ] に切り替えると、Azure RBAC のユーザー アクセス管理者ロールがユーザー アカウントから削除されます。 この Microsoft Entra ディレクトリに関連付けられているすべての Azure サブスクリプションと管理グループでロールを割り当てることができなくなります。 自分にアクセス権が割り当てられている Azure サブスクリプションと管理グループのみを表示し、管理できます。

    Note

    Privileged Identity Management を使用している場合、ロールの割り当てを非アクティブにしても、Azure リソースのアクセス管理トグルは [いいえ] に切り替わりません。 最小限の特権アクセスを維持するために、ロールの割り当てを非アクティブ化する前に、この切り替えを [いいえ] に設定することをお勧めします。

  5. [保存] をクリックして設定を保存します。

    この設定はグローバル プロパティではなく、現在サインインしているユーザーのみに適用されます。 全体管理者ロールのすべてのメンバーを対象にアクセス権限を昇格させることはできません。

  6. サインアウトし、もう一度サインインするとアクセス権限が更新されます。

    これで自分のディレクトリにあるすべてのサブスクリプションと管理グループにアクセスできます。 [アクセス制御 (IAM)] ウィンドウを表示すると、ルート スコープでユーザー アクセス管理者ロールが割り当てられていることがわかります。

    Subscription role assignments with root scope - screenshot

  7. 昇格させたアクセス権で必要な変更を加えます。

    ロールの割り当ての詳細については、「Azure portal を使用して Azure ロールを割り当てる」をご覧ください。 Privileged Identity Management を使用している場合、管理する Azure リソースの検出または Azure リソース ロールの割り当てに関するページを参照してください。

  8. 次のセクションの手順を実行し、昇格したアクセス権を削除します。

手順 2: 昇格されたアクセス権を削除する

ルート スコープ (/) でユーザー アクセス管理者ロールの割り当てを削除するには、次の手順を行います。

  1. アクセス権の昇格に使用された同じユーザーでサインインします。

  2. ナビゲーション リストで [Microsoft Entra ID][プロパティ] の順にクリックします。

  3. [Azure リソースのアクセス管理][いいえ] に戻します。 これはユーザー別の設定であるため、アクセス権限の昇格に使用したユーザーでサインインする必要があります。

    [アクセス制御 (IAM)] ウィンドウでユーザー アクセス管理者ロールの割り当てを削除しようとすると、次のメッセージが表示されます。 ロールの割り当てを削除するには、トグルの設定を [いいえ] に戻すか、Azure PowerShell、Azure CLI、または REST API を使用します。

    Remove role assignments with root scope

  4. 全体管理者としてサインアウトします。

    Privileged Identity Management を使用している場合は、全体管理者ロールの割り当てを非アクティブ化します。

    Note

    Privileged Identity Management を使用している場合、ロールの割り当てを非アクティブにしても、Azure リソースのアクセス管理トグルは [いいえ] に切り替わりません。 最小限の特権アクセスを維持するために、ロールの割り当てを非アクティブ化する前に、この切り替えを [いいえ] に設定することをお勧めします。

ディレクトリ アクティビティ ログの昇格アクセス ログ エントリを表示する

アクセス許可が昇格されると、ログにエントリが 1 つ追加されます。 Microsoft Entra ID のグローバル管理者として、アクセスがいつ昇格され、誰がアクセスしたかを確認できます。 アクセス許可の昇格ログのエントリは、標準のアクティビティ ログではなく、ディレクトリ アクティビティ ログに表示されます。 このセクションでは、アクセス権の昇格ログのエントリを表示するさまざまな方法について説明します。

Azure portal を使用してアクセス権の昇格ログのエントリを表示する

  1. Azure Portal に全体管理者としてサインインします。

  2. [監視]>[アクティビティ ログ] を開きます。

  3. [アクティビティ] リストを [ディレクトリ アクティビティ] に変更します。

  4. アクセス権を昇格させるアクションを示す、次の操作を探します。

    Assigns the caller to User Access Administrator role

    Screenshot showing directory activity logs in Monitor.

Azure CLI を使用してアクセス権の昇格ログのエントリを表示する

  1. az login コマンドを使用して、全体管理者としてサインインします。

  2. 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
    
  3. 出力ファイルで、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 を使用します。

  1. Microsoft Entra ID>グループを開きます。

  2. 新しいセキュリティ グループを作成し、グループ オブジェクト ID をメモします。

  3. az login コマンドを使用して、全体管理者としてサインインします。

  4. az role assignment create コマンドを使用して、Microsoft/Insights にあるディレクトリ レベルでのみログを読み取りできるグループに Reader ロールを割り当てます。

    az role assignment create --assignee "{groupId}" --role "Reader" --scope "/providers/Microsoft.Insights"
    
  5. 事前に作成したグループに、ログの閲覧を行うユーザーを追加します。

これで、グループ内のユーザーが定期的に 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

次のステップ