管理グループで Azure サブスクリプションを大規模に管理する

組織に多数のサブスクリプションがある場合は、これらのサブスクリプションのアクセス、ポリシー、およびコンプライアンスを効率的に管理する方法が必要になることがあります。 Azure 管理グループの範囲は、サブスクリプションを上回ります。 "管理グループ" と呼ばれるコンテナーにサブスクリプションを整理して、管理グループに管理条件を適用できます。 管理グループ内のすべてのサブスクリプションは、管理グループに適用された条件を自動的に継承します。

管理グループを使うと、サブスクリプションの種類に関係なく、大きな規模でエンタープライズ レベルの管理を行うことができます。 管理グループの詳細については、「Azure 管理グループでリソースを整理する」を参照してください。

Note

この記事は、デバイスまたはサービスから個人データを削除する手順について説明しており、GDPR の下で義務を果たすために使用できます。 GDPR に関する一般情報については、Microsoft Trust Center の GDPR に関するセクションおよび Service Trust Portal の GDPR に関するセクションをご覧ください。

重要

Azure Resource Manager のユーザー トークンと管理グループ キャッシュは、強制的に更新されるまで 30 分間継続します。 管理グループまたはサブスクリプションの移動などの操作を行った後、表示されるまでに最大 30 分かかることがあります。 更新プログラムをすぐに確認するには、ブラウザーを更新するか、サインインしてからサインアウトするか、新しいトークンを要求して、トークンを更新する必要があります。

重要

AzManagementGroup に関連する Az PowerShell コマンドレットでは、 -GroupId-GroupName パラメーターのエイリアスであることが示されています。そのため、そのいずれを使用しても、管理グループ ID を文字列値として指定できます。

管理グループの名前を変更する

管理グループの名前を変更するには、ポータル、PowerShell、または Azure CLI を使用します。

ポータルでの名前の変更

  1. Azure Portal にログインします。

  2. [すべてのサービス]>[管理グループ] を選択します。

  3. 名前を変更する管理グループを選択します。

  4. 詳細を選択します。

  5. ページの上部にある [グループ名の変更] オプションを選択します。

    [管理グループ] ページの操作バーと [グループ名の変更] ボタンのスクリーンショット。

  6. メニューが開いたら、表示する新しい名前を入力します。

    [グループ名の変更] ウィンドウと、管理グループの名前を変更するためのオプションのスクリーンショット。

  7. [保存] を選択します。

PowerShell での名前の変更

表示名を更新するには、Update-AzManagementGroup を使用します。 たとえば、管理グループの表示名を "Contoso IT" から "Contoso Group" に変更するには、次のコマンドを実行します。

Update-AzManagementGroup -GroupId 'ContosoIt' -DisplayName 'Contoso Group'

Azure CLI での名前の変更

Azure CLI を使用する場合は、update コマンドを使用します。

az account management-group update --name 'Contoso' --display-name 'Contoso Group'

管理グループの削除

管理グループを削除するには、次の要件を満たす必要があります。

  1. 管理グループの下に子管理グループやサブスクリプションがないこと。 サブスクリプションまたは管理グループを別の管理グループに移動するには、階層内での管理グループおよびサブスクリプションの移動に関する記事を参照してください。

  2. 管理グループに対する書き込みアクセス許可 ("所有者"、"共同作成者"、または "管理グループ共同作成者") が必要です。 どのアクセス許可があるかを確認するには、管理グループを選択し、 [IAM] を選択します。 Azure ロールの詳細については、Azure ロールベースのアクセス制御 (Azure RBAC) に関するページを参照してください。

ポータルでの削除

  1. Azure Portal にログインします。

  2. [すべてのサービス]>[管理グループ] を選択します。

  3. 削除する管理グループを選択します。

  4. 詳細を選択します。

  5. [削除] を選択します

    [削除] ボタンが強調表示されている [管理グループ] ページのスクリーンショット。

    ヒント

    アイコンが無効になっている場合は、アイコンの上にマウス セレクターを置くと理由が表示されます。

  6. 管理グループを削除することを確認するウィンドウが開きます。

    管理グループを削除するための [グループの削除] 確認ダイアログのスクリーンショット。

  7. [はい] を選択します。

PowerShell での削除

管理グループを削除するには、PowerShell で Remove-AzManagementGroup コマンドを使用します。

Remove-AzManagementGroup -GroupId 'Contoso'

Azure CLI での削除

Azure CLI で、az account management-group delete コマンドを使用します。

az account management-group delete --name 'Contoso'

管理グループの表示

直接または継承された Azure ロールがある管理グループを表示することができます。

ポータルでの表示

  1. Azure Portal にログインします。

  2. [すべてのサービス]>[管理グループ] を選択します。

  3. 管理グループ階層ページが読み込まれます。 このページで、アクセスできるすべての管理グループとサブスクリプションを調べることができます。 グループ名を選択すると、階層の下位レベルに移動します。 ナビゲーションは、ファイル エクスプローラーと同じように機能します。

  4. 管理グループの詳細を表示するには、管理グループのタイトルの横にある [(詳細]) リンクを選択します。 このリンクを使用できない場合は、その管理グループを表示するアクセス許可がありません。

    子管理グループとサブスクリプションが表示されている [管理グループ] ページのスクリーンショット。

PowerShell での表示

すべてのグループを取得するには、Get-AzManagementGroup コマンドを使用します。 管理グループの GET PowerShell コマンドの一覧については、Az.Resources モジュールを参照してください。

Get-AzManagementGroup

1 つの管理グループの情報の場合は、-GroupId パラメーターを使用します

Get-AzManagementGroup -GroupId 'Contoso'

特定の管理グループとその下の階層のすべてのレベルを返すには、 -Expand パラメーターと -Recurse パラメーターを使用します。

PS C:\> $response = Get-AzManagementGroup -GroupId TestGroupParent -Expand -Recurse
PS C:\> $response

Id                : /providers/Microsoft.Management/managementGroups/TestGroupParent
Type              : /providers/Microsoft.Management/managementGroups
Name              : TestGroupParent
TenantId          : 00000000-0000-0000-0000-000000000000
DisplayName       : TestGroupParent
UpdatedTime       : 2/1/2018 11:15:46 AM
UpdatedBy         : 00000000-0000-0000-0000-000000000000
ParentId          : /providers/Microsoft.Management/managementGroups/00000000-0000-0000-0000-000000000000
ParentName        : 00000000-0000-0000-0000-000000000000
ParentDisplayName : 00000000-0000-0000-0000-000000000000
Children          : {TestGroup1DisplayName, TestGroup2DisplayName}

PS C:\> $response.Children[0]

Type        : /managementGroup
Id          : /providers/Microsoft.Management/managementGroups/TestGroup1
Name        : TestGroup1
DisplayName : TestGroup1DisplayName
Children    : {TestRecurseChild}

PS C:\> $response.Children[0].Children[0]

Type        : /managementGroup
Id          : /providers/Microsoft.Management/managementGroups/TestRecurseChild
Name        : TestRecurseChild
DisplayName : TestRecurseChild
Children    :

Azure CLI での表示

すべてのグループを取得するには、list コマンドを使用します。

az account management-group list

1 つの管理グループの情報の場合は、show コマンドを使用します

az account management-group show --name 'Contoso'

特定の管理グループとその下の階層のすべてのレベルを返すには、 -Expand パラメーターと -Recurse パラメーターを使用します。

az account management-group show --name 'Contoso' -e -r

管理グループとサブスクリプションの移動

管理グループを作成する理由の 1 つは、サブスクリプションをバンドルするためです。 管理グループとサブスクリプションのみが別の管理グループの子になることができます。 管理グループに移動するサブスクリプションは、親管理グループからすべてのユーザー アクセスとポリシーを継承します。

管理グループまたはサブスクリプションを移動して別の管理グループの子にする場合、3 つのルールが true として評価される必要があります。

移動アクションを実行する場合は、次の各レイヤーでアクセス許可が必要です。

  • 子サブスクリプションまたは管理グループ
    • Microsoft.management/managementgroups/write
    • Microsoft.management/managementgroups/subscriptions/write (サブスクリプションの場合のみ)
    • Microsoft.Authorization/roleAssignments/write
    • Microsoft.Authorization/roleAssignments/delete
    • Microsoft.Management/register/action
  • ターゲット親管理グループ
    • Microsoft.management/managementgroups/write
  • 現在の親管理グループ
    • Microsoft.management/managementgroups/write

例外: ターゲットまたは既存の親管理グループがルート管理グループである場合、この管理の要件は必要ありません。 すべての新しい管理グループとサブスクリプションは既定でルート管理グループに追加されるため、項目を移動するためにこのグループに対するアクセス許可は不要です。

サブスクリプションの所有者ロールが現在の管理グループから継承される場合、移動先は制限されます。 サブスクリプションは、所有者ロールを持つ別の管理グループにのみ移動できます。 サブスクリプションの所有者ではなくなってしまうので、ご自分が共同作成者である管理グループにサブスクリプションを移動できません。 サブスクリプションの所有者ロールに直接割り当てられている場合、ご自分が共同作成者である任意の管理グループに移動できます。

現在割り当てられているアクセス許可を Azure portal で確認するには、管理グループを選択し、 [IAM] を選択します。 Azure ロールの詳細については、Azure ロールベースのアクセス制御 (Azure RBAC) に関するページを参照してください。

サブスクリプションの移動

ポータルで既存のサブスクリプションを管理グループに追加する

  1. Azure Portal にログインします。

  2. [すべてのサービス]>[管理グループ] を選択します。

  3. 親にする予定の管理グループを選択します。

  4. ページの上部で、 [サブスクリプションの追加] を選択します。

  5. 一覧で、正しい ID を持つサブスクリプションを選択します。

    管理グループに追加する既存のサブスクリプションを選択するための [サブスクリプションの追加] オプションのスクリーンショット。

  6. [保存] を選択します。

ポータルで管理グループからサブスクリプションを削除する

  1. Azure Portal にログインします。

  2. [すべてのサービス]>[管理グループ] を選択します。

  3. 現在親となっている管理グループを選択します。

  4. 一覧内で移動するサブスクリプションの行末にある省略記号を選択します。

    [移動] オプションを選択するサブスクリプションの代替メニューのスクリーンショット。

  5. [移動] を選択します。

  6. 開かれたメニューで、親管理グループを選択します。

    [移動] ウィンドウと、サブスクリプションを別の管理グループに移動するためのオプションのスクリーンショット。

  7. [保存] を選択します。

PowerShell でのサブスクリプションの移動

PowerShell でサブスクリプションを移動するには、New-AzManagementGroupSubscription コマンドを使用します。

New-AzManagementGroupSubscription -GroupId 'Contoso' -SubscriptionId '12345678-1234-1234-1234-123456789012'

サブスクリプションと管理グループ間のリンクを削除するには、Remove-AzManagementGroupSubscription コマンドを使用します。

Remove-AzManagementGroupSubscription -GroupId 'Contoso' -SubscriptionId '12345678-1234-1234-1234-123456789012'

Azure CLI でのサブスクリプションの移動

CLI でサブスクリプションを移動するには、add コマンドを使用します。

az account management-group subscription add --name 'Contoso' --subscription '12345678-1234-1234-1234-123456789012'

管理グループからサブスクリプションを削除するには、サブスクリプションの remove コマンドを使用します。

az account management-group subscription remove --name 'Contoso' --subscription '12345678-1234-1234-1234-123456789012'

ARM テンプレートでのサブスクリプションの移動

Azure Resource Manager テンプレート (ARM テンプレート) でサブスクリプションを移動するには、次のテンプレートを使用して、それをテナント レベルでデプロイします。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "targetMgId": {
            "type": "string",
            "metadata": {
                "description": "Provide the ID of the management group that you want to move the subscription to."
            }
        },
        "subscriptionId": {
            "type": "string",
            "metadata": {
                "description": "Provide the ID of the existing subscription to move."
            }
        }
    },
    "resources": [
        {
            "scope": "/",
            "type": "Microsoft.Management/managementGroups/subscriptions",
            "apiVersion": "2020-05-01",
            "name": "[concat(parameters('targetMgId'), '/', parameters('subscriptionId'))]",
            "properties": {
            }
        }
    ],
    "outputs": {}
}

または、次の Bicep ファイルを使用します。

targetScope = 'managementGroup'

@description('Provide the ID of the management group that you want to move the subscription to.')
param targetMgId string

@description('Provide the ID of the existing subscription to move.')
param subscriptionId string

resource subToMG 'Microsoft.Management/managementGroups/subscriptions@2020-05-01' = {
  scope: tenant()
  name: '${targetMgId}/${subscriptionId}'
}

管理グループの移動

ポータルでの管理グループの移動

  1. Azure Portal にログインします。

  2. [すべてのサービス]>[管理グループ] を選択します。

  3. 親にする予定の管理グループを選択します。

  4. ページの上部で、 [管理グループの追加] を選択します。

  5. 開いたメニューで、管理グループを新規作成するか、既存のものを使用するかを選択します。

    • 新規作成を選んだ場合、新しい管理グループが作成されます。
    • 既存のものを使用することを選んだ場合は、この管理グループに移動できるすべての管理グループのドロップダウン リストが表示されます。

    新しい管理グループを作成するための [管理グループの追加] オプションのスクリーンショット。

  6. [保存] を選択します。

PowerShell での管理グループの移動

管理グループを別のグループの下に移動するには、PowerShell で Update-AzManagementGroup コマンドを使用します。

$parentGroup = Get-AzManagementGroup -GroupId ContosoIT
Update-AzManagementGroup -GroupId 'Contoso' -ParentId $parentGroup.id

Azure CLI での管理グループの移動

Azure CLI で管理グループを移動するには update コマンドを使用します。

az account management-group update --name 'Contoso' --parent ContosoIT

アクティビティ ログを使用した監査管理グループ

管理グループは、Azure アクティビティ ログ内でサポートされます。 他の Azure リソースと同じ一元的な場所で、管理グループに発生するすべてのイベントのクエリを実行できます。 たとえば、特定の管理グループに対して行われた、ロールの割り当てまたはポリシーの割り当ての変更を、すべて確認できます。

選択した管理グループに関連するアクティビティ ログと操作のスクリーンショット。

Azure portal の外部で管理グループに対するクエリを使用する場合、管理グループのターゲット スコープは、 "/providers/Microsoft.Management/managementGroups/{yourMgID}" のようになります。

他のリソース プロバイダーからの管理グループの参照

他のリソース プロバイダーのアクションから管理グループを参照するときは、スコープとして次のパスを使用します。 このパスは、PowerShell、Azure CLI、REST API を使用しているときに使用されます。

/providers/Microsoft.Management/managementGroups/{yourMgID}

たとえば、PowerShell で管理グループに新しいロール割り当てを行うときにこのパスを使用します。

New-AzRoleAssignment -Scope "/providers/Microsoft.Management/managementGroups/Contoso"

管理グループでポリシー定義を取得するときにも、同じスコープ パスが使用されます。

GET https://management.azure.com/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming?api-version=2019-09-01

次のステップ

管理グループについて詳しくは、以下をご覧ください。