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

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

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

ユーザーの表示機能を制御し、アクセス許可を管理して節約プランに委任する承認メソッドには、請求管理者ロールと節約プラン RBAC ロールの異なる 2 種類があります。

請求管理者ロール

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

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

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

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

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

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

課金管理者を追加する

Azure portal で、ユーザーを課金管理者としてマイクロソフト エンタープライズ契約または Microsoft 顧客契約に追加します。

  • マイクロソフト エンタープライズ契約の場合、マイクロソフト エンタープライズ契約に適用されるすべての節約プランの注文を表示および管理するには、"エンタープライズ管理者" ロールを持つユーザーを追加します。 エンタープライズ管理者は、[コストの管理と請求] で節約プランを表示および管理できます。
    • "エンタープライズ管理者 (読み取り専用)" ロールを持つユーザーは、[コストの管理と請求] から節約プランの表示のみを行うことができます。
    • 部署管理者とアカウント所有者は、アクセス制御 (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 ロールを委任する」を参照してください。

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

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

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

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

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

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 ObjectId。

  • 種類: 文字列
  • エイリアス: Id、PrincipalId
  • 位置: Named
  • 既定値: なし
  • パイプライン入力を許可する: True
  • ワイルドカード文字を許可する: False

-TenantId テナントの一意識別子。

  • 型: String
  • 位置: 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 ObjectId。

  • 種類: 文字列
  • エイリアス: Id、PrincipalId
  • 位置: Named
  • 既定値: なし
  • パイプライン入力を許可する: True
  • ワイルドカード文字を許可する: False

-TenantId テナントの一意識別子。

  • 型: String
  • 位置: 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 ObjectId。

  • 種類: 文字列
  • エイリアス: Id、PrincipalId
  • 位置: Named
  • 既定値: なし
  • パイプライン入力を許可する: True
  • ワイルドカード文字を許可する: False

-TenantId テナントの一意識別子。

  • 型: String
  • 位置: 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 ObjectId。

  • 種類: 文字列
  • エイリアス: Id、PrincipalId
  • 位置: Named
  • 既定値: なし
  • パイプライン入力を許可する: True
  • ワイルドカード文字を許可する: False

-TenantId テナントの一意識別子。

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

次のステップ