Azure 節約プランを表示および管理するためのアクセス許可

この記事では、節約プランのアクセス許可のしくみと、ユーザーが Azure portal で Azure の節約プランを表示および管理する方法について説明します。

既定で節約プランを管理できるユーザー

節約プランに対するアクセス許可をユーザーが表示、管理、および委任する機能は、2 つの異なる承認方法が制御します。 それらは課金管理者ロールと、節約プランのロールベースのアクセス制御 (RBAC) ロールです。

請求管理者ロール

組み込みの請求管理者ロールを使用して、節約プランに対するアクセス許可を表示、管理、および委任できます。 Microsoft 顧客契約および Enterprise Agreement 課金ロールの詳細については、それぞれ「Azure での Microsoft 顧客契約の管理ロールを理解する」および「Azure におけるマイクロソフト エンタープライズ契約のロールの管理」を参照してください。

節約プランのアクションに必要な請求管理者ロール

  • 節約プランを表示する:
    • Microsoft 顧客契約: 課金プロファイル閲覧者以上のユーザー
    • Enterprise Agreement: エンタープライズ管理者 (読み取り専用) 以上のユーザー
    • Microsoft Partner Agreement: サポートされません
  • 節約プランを管理する (請求プロファイル/登録全体のアクセス許可を委任することで実現されます):
    • Microsoft 顧客契約: 課金プロファイル共同作成者以上のユーザー
    • Enterprise Agreement: Enterprise Agreement 管理者以上のユーザー
    • Microsoft Partner Agreement: サポートされません
  • 節約プランのアクセス許可を委任する:
    • Microsoft 顧客契約: 課金プロファイル共同作成者以上のユーザー
    • Enterprise Agreement: Enterprise Agreement 購入者以上のユーザー
    • Microsoft Partner Agreement: サポートされません

課金管理者として節約プランを表示および管理する

課金ロール ユーザーの場合は、次の手順に従って、Azure portal ですべての節約プランと節約プランの取引を表示および管理します。

  1. Azure portal にサインインし、[コストの管理と請求] に移動します。
    • Enterprise Agreement アカウントを使用している場合は、左側のメニューで [課金スコープ] を選びます。 次に、[課金スコープ] の一覧からいずれかを選びます。
    • Microsoft 顧客契約アカウントを使用している場合は、左側のメニューで [課金プロファイル] を選びます。 課金プロファイルの一覧でプロファイルを選択します。
  2. 左側のメニューで、[製品とサービス]>[節約プラン] を選びます。 Enterprise Agreement 加入契約または Microsoft 顧客契約の課金プロファイルの節約プランの全一覧が表示されます。
  3. 課金ロール ユーザーは、 節約プランの注文 - REST API を昇格させて Azure RBAC ロールを付与することで、節約プランの所有権を取得できます。

課金管理者を追加する

Azure portal で、Enterprise Agreement または Microsoft 顧客契約に、課金管理者としてユーザーを追加します。

  • Enterprise Agreement: Enterprise Agreement に適用されるすべての節約プランの注文を表示および管理するために、エンタープライズ管理者ロールを持つユーザーを追加します。 エンタープライズ管理者は、[コストの管理と請求] で節約プランを表示および管理できます。
    • エンタープライズ管理者 (読み取り専用) ロールを持つユーザーは、[コストの管理と請求] からのみ節約プランを表示できます。
    • 部署管理者とアカウント所有者は、[アクセス制御 (IAM)] を使って明示的にこれらに追加されていない限り、節約プランを表示できません。 詳細については、Azure エンタープライズ ロールの管理に関する記事を参照してください。
  • Microsoft 顧客契約: 課金プロファイル所有者ロールまたは課金プロファイル共同作成者ロールを持つユーザーは、課金プロファイルを使って行われたすべての節約プランの購入を管理できます。
    • 課金プロファイル閲覧者と請求書管理者は、課金プロファイルを使って支払われるすべての節約プランを表示できます。 ただし、節約プランを変更することはできません。 詳細については、「課金プロファイルのロールとタスク」を参照してください。

節約プランの RBAC ロール

節約プランのライフサイクルは、Azure サブスクリプションから独立しています。 節約プランには、購入後にサブスクリプションからアクセス許可が継承されません。 節約プランは、独自の Azure RBAC アクセス許可を持つテナント レベルのリソースです。

概要

節約プラン固有の RBAC ロールには、次の 4 つがあります。

  • 節約プラン管理者: テナント内の 1 つ以上の節約プランを管理し、他のユーザーに RBAC ロールを委任できます。
  • 節約プラン購入者: 指定されたサブスクリプションで節約プランを購入できます。
  • 節約プラン共同作成者: テナント内の 1 つ以上の節約プランを管理できますが、他のユーザーに RBAC ロールを委任することはできません。
  • 節約プラン閲覧者: テナント内の 1 つ以上の節約プランに読み取り専用でアクセスできます。

これらのロールのスコープを、特定のリソース エンティティ (サブスクリプションや節約プランなど) または Microsoft Entra テナント (ディレクトリ) に設定できます。 Azure RBAC の詳細については、「Azure ロールベースのアクセス制御 (Azure RBAC) とは」を参照してください。

節約プランのアクションに必要な節約プラン RBAC ロール

  • 節約プランを表示する:
    • テナント スコープ: 節約プラン閲覧者以上のユーザー。
    • 節約プラン スコープ: 組み込みの閲覧者以上。
  • 節約プランを管理する:
    • テナント スコープ: 節約プラン共同作成者以上のユーザー。
    • 節約プラン スコープ: 組み込みの共同作成者または所有者ロール、あるいは節約プラン共同作成者以上。
  • 節約プランのアクセス許可を委任する:
    • テナント スコープ: テナントのすべての節約プランに RBAC ロールを付与するには、ユーザー アクセス管理者権限が必要です。 これらの権限を得るには、アクセス権を昇格するの手順に従ってください。
    • 節約プラン スコープ: 節約プラン管理者またはユーザー アクセス管理者。

さらに、節約プランの購入にサブスクリプションが使用されたときにサブスクリプションの所有者ロールを持っていたユーザーは、購入した節約プランのアクセス許可の表示、管理、および委任を行うこともできます。

RBAC のアクセス権で節約プランを表示する

節約プラン固有の RBAC ロール (節約プラン管理者、購入者、共同作成者、閲覧者) を持っているか、節約プランを購入したか、節約プランの所有者として追加された場合は、Azure portal で次の手順に従って節約プランを表示および管理します。

  1. Azure portal にサインインします。
  2. [ホーム]>[節約プラン] を選択して、自分がアクセスできる節約プランの一覧を表示します。

ユーザーとグループに RBAC ロールを追加する

節約プランの RBAC ロールの委任については、「節約プランの RBAC ロールを委任する」を参照してください。

エンタープライズ管理者は、節約プランの注文の所有権を取得できます。 次を使用して、他のユーザーを節約プランに追加できます。 [アクセス制御 (IAM)]

PowerShell でアクセス権を付与する

節約プランの注文に対する所有者アクセス権を持つユーザー、昇格されたアクセス権を持つユーザー、およびユーザー アクセス管理者は、アクセスできるすべての節約プランの注文のアクセス管理を委任できます。

PowerShell を使用して付与されたアクセス権は、Azure portal には表示されません。 代わりに、次のセクションの get-AzRoleAssignment コマンドを使用して、割り当てられたロールを表示します。

すべての節約プランに所有者ロールを割り当てる

ユーザーに Microsoft Entra テナント (ディレクトリ) 内のすべての節約プランの注文に対する Azure RBAC アクセス権を付与するには、次の Azure PowerShell スクリプトを使用します。

Import-Module Az.Accounts
Import-Module Az.Resources

Connect-AzAccount -Tenant <TenantId>
$response = Invoke-AzRestMethod -Path /providers/Microsoft.BillingBenefits/savingsPlans?api-version=2022-11-01 -Method GET
$responseJSON = $response.Content | ConvertFrom-JSON
$savingsPlanObjects = $responseJSON.value

foreach ($savingsPlan in $savingsPlanObjects)
{
  $savingsPlanOrderId = $savingsPlan.id.substring(0, 84)
  Write-Host "Assigning Owner role assignment to "$savingsPlanOrderId
  New-AzRoleAssignment -Scope $savingsPlanOrderId -ObjectId <ObjectId> -RoleDefinitionName Owner
}

PowerShell スクリプトを使用して所有権のロールを割り当て、それが正常に実行された場合、成功メッセージは返されません。

パラメーター

  • ObjectId: ユーザー、グループ、またはサービス プリンシパルの Microsoft Entra オブジェクト ID

    • 種類: 文字列
    • エイリアス: Id、PrincipalId
    • 位置: 名前付き
    • 既定値: なし
    • パイプライン入力を許可する: True
    • ワイルドカード文字を許可する: False
  • TenantId: テナントの一意識別子

    • 種類: 文字列
    • 位置: 5
    • 既定値: なし
    • パイプライン入力を許可する: False
    • ワイルドカード文字を許可する: False

Azure PowerShell スクリプトを使用して節約プラン管理者ロールをテナント レベルで追加する

PowerShell を使用して節約プラン管理者ロールをテナント レベルで追加するには、次の Azure PowerShell スクリプトを使用します。

Import-Module Az.Accounts
Import-Module Az.Resources
Connect-AzAccount -Tenant <TenantId>
New-AzRoleAssignment -Scope "/providers/Microsoft.BillingBenefits" -PrincipalId <ObjectId> -RoleDefinitionName "Savings plan Administrator"

パラメーター

  • ObjectId: ユーザー、グループ、またはサービス プリンシパルの Microsoft Entra オブジェクト ID

    • 種類: 文字列
    • エイリアス: Id、PrincipalId
    • 位置: 名前付き
    • 既定値: なし
    • パイプライン入力を許可する: True
    • ワイルドカード文字を許可する: False
  • TenantId: テナントの一意識別子

    • 種類: 文字列
    • 位置: 5
    • 既定値: なし
    • パイプライン入力を許可する: False
    • ワイルドカード文字を許可する: False

Azure PowerShell スクリプトを使用して、テナント レベルで節約プラン共同作成者ロールを割り当てる

PowerShell を使用して節約プラン共同作成者ロールをテナント レベルで割り当てるには、次の Azure PowerShell スクリプトを使用します。

Import-Module Az.Accounts
Import-Module Az.Resources
Connect-AzAccount -Tenant <TenantId>
New-AzRoleAssignment -Scope "/providers/Microsoft.BillingBenefits" -PrincipalId <ObjectId> -RoleDefinitionName "Savings plan Contributor"

パラメーター

  • ObjectId: ユーザー、グループ、またはサービス プリンシパルの Microsoft Entra オブジェクト ID

    • 種類: 文字列
    • エイリアス: Id、PrincipalId
    • 位置: 名前付き
    • 既定値: なし
    • パイプライン入力を許可する: True
    • ワイルドカード文字を許可する: False
  • TenantId: テナントの一意識別子

    • 種類: 文字列
    • 位置: 5
    • 既定値: なし
    • パイプライン入力を許可する: False
    • ワイルドカード文字を許可する: False

Azure PowerShell スクリプトを使用して、テナント レベルで節約プラン閲覧者ロールを割り当てる

PowerShell を使用して節約プラン閲覧者ロールをテナント レベルで割り当てるには、次の Azure PowerShell スクリプトを使用します。

Import-Module Az.Accounts
Import-Module Az.Resources
Connect-AzAccount -Tenant <TenantId>
New-AzRoleAssignment -Scope "/providers/Microsoft.BillingBenefits" -PrincipalId <ObjectId> -RoleDefinitionName "Savings plan Reader"

パラメーター

  • ObjectId: ユーザー、グループ、またはサービス プリンシパルの Microsoft Entra オブジェクト ID

    • 種類: 文字列
    • エイリアス: Id、PrincipalId
    • 位置: 名前付き
    • 既定値: なし
    • パイプライン入力を許可する: True
    • ワイルドカード文字を許可する: False
  • TenantId: テナントの一意識別子

    • 種類: 文字列
    • 位置: 5
    • 既定値: なし
    • パイプライン入力を許可する: False
    • ワイルドカード文字を許可する: False

次のステップ