メインコンテンツまでスキップ

予算権限の管理

この記事では、Databricksアカウントで予算を表示および管理できるユーザーを制御する方法について説明します。

予算はアカウントレベルのオブジェクトであり、アカウント全体の使用状況を監視したり、特定のチーム、プロジェクト、またはワークスペースに追跡の範囲を限定したりすることができます。「予算の作成と監視」を参照してください。予算へのアクセスはアクセスコントロールリスト(ACL)によって管理されます。各予算には、プリンシパル(ユーザー、グループ、または Databricks の Service Principal)にロールを割り当てる一連の付与ルールがあります。

アカウント管理者およびワークスペース管理者は、予算を作成できます。予算を作成すると、その予算に対する Budget Manager ロールが自動的に付与されます。

予算ロール​

予算に付与できるロールには、 予算マネージャー と 予算ビューア の 2 つがあります。

ロール

付与名

説明

予算マネージャー

roles/budget.manager

予算を表示し、使用量のブロックの適用や外部のEメール アラート ターゲットを含むthresholdとアラートの設定を編集し、他のプリンシパルに対してロールを付与または取り消すことでその権限を管理します。

予算閲覧者

roles/budget.viewer

予算とその構成を表示します。予算の編集、ユーザーごとのオーバーライドの編集、または権限の管理を行うことができません。

ロール

付与名

説明

予算マネージャー

roles/budget.manager

予算を表示し、使用量のブロックの適用や外部のEメール アラート ターゲットを含むthresholdとアラートの設定を編集し、他のプリンシパルに対してロールを付与または取り消すことでその権限を管理します。

予算閲覧者

roles/budget.viewer

予算とその構成を表示します。予算の編集、ユーザーごとのオーバーライドの編集、または権限の管理を行うことができません。

注記

予算のフィルターは予算の作成時に設定され、後から編集することはできません。ロールを取り消しても、予算に対する他の付与にはカスケードされません。

defaultの権限​

予算へのdefaultアクセス権は、管理者のロールによって異なります。

  • アカウント管理者は、アカウント内のすべての予算に対する完全なスーパーユーザーアクセス権を持っています。付与内容に関係なく、任意の予算の表示、編集、削除、および権限の管理を行うことができます。このアクセス権は、個別の予算レベルで取り消すことはできません。
  • ワークスペース管理者は、自分が管理するワークスペースにスコープを設定した予算を作成できます。これらは、作成した予算に対してのみ 予算マネージャー ロールを受け取り、明示的にロールが付与されていない限り、他のユーザーによって作成された予算へのアクセス権を持ちません。
  • 予算作成者には、作成した予算に対して 予算マネージャー ロールが自動的に付与されます。アカウント管理者または別の予算マネージャーが後でそれを取り消すことができます。
注記

権限の変更がシステム全体に反映されるまでに 30 秒以上かかる場合があります。

権限の割り当てについて​

アクセス権は、アカウント内のロール、および API または予算 UI のどちらを使用するかによって異なります。予算 UI は、ガバナンスハブ UI およびアカウントコンソールの使用量 UI で利用できます。

注記

予算 UI は、アカウント管理者とワークスペース管理者のみが利用できます。 予算マネージャー または 予算ビューア ロールを保持しているが管理者ではないユーザーは、予算 API を使用して予算を表示および管理します。Budget APIは、アカウント管理者、ワークスペース管理者、および予算に対して Budget Manager または Budget Viewer ロールを付与されたすべてのユーザーがアクセスできます。

操作

アカウント管理者

ワークスペース管理者

予算管理者(非管理者)

予算ビューア(非管理者)

予算を作成

すべての予算 (UI および API)

管理するワークスペースの予算(UI および API)

—

—

予算の表示または一覧表示

すべての予算 (UI および API)

管理または表示する予算(UIおよびAPI)

管理対象の予算 (API)

表示する予算(API)

予算を編集

すべての予算 (UI および API)

管理する予算 (UI および API)

管理対象の予算 (API)

—

権限管理

すべての予算 (UI および API)

管理する予算 (UI および API)

管理対象の予算 (API)

—

操作

アカウント管理者

ワークスペース管理者

予算管理者(非管理者)

予算ビューア(非管理者)

予算を作成

すべての予算 (UI および API)

管理するワークスペースの予算(UI および API)

—

—

予算の表示または一覧表示

すべての予算 (UI および API)

管理または表示する予算(UIおよびAPI)

管理対象の予算 (API)

表示する予算(API)

予算を編集

すべての予算 (UI および API)

管理する予算 (UI および API)

管理対象の予算 (API)

—

権限管理

すべての予算 (UI および API)

管理する予算 (UI および API)

管理対象の予算 (API)

—

注記

リストAPIは包括的なセットを返します。ワークスペースのスコープに関係なく、アカウント全体で表示できるすべての予算が含まれます。

Databricks CLI を使用して予算の権限を管理する​

予算の ACL はルールセットとして保存されます。これは、予算にアタッチされた名前付き ACL です。アカウントをスコープとする Databricks CLIaccount access-control 内の コマンド グループを使用して、予算の権限を読み取りおよび変更します。Databricks CLI のインストールと認証に関する情報については、Databricks CLI を参照してください。

また、ルールセットAPIを使用して予算の権限を管理することもできます。

予算のルールセットの名前:

accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default

予算の権限の読み取り​

account access-control コマンドグループは、楽観的同時実行制御に etag フィールドを使用します。ロールを付与または取り消すには、まず get-rule-set をランして現在のルールセットとその etag を読み取り、変更をローカルに適用してから、その update-rule-set を指定して etag をランします。

現在の権限を読み取るには次のコマンドを実行し、etag に空の文字列を渡して新しさの要件がないことを示します。

Bash
databricks account access-control get-rule-set \
"accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default" ""

以下のように置き換えてください。

  • <ACCOUNT_ID> をアカウント ID で指定します。
  • <BUDGET_ID> 予算 ID を指定します。

応答例:

JSON
{
"etag": "1790271814348000",
"grant_rules": [
{ "principals": ["users/manager@example.com"], "role": "roles/budget.manager" },
{ "principals": ["users/viewer@example.com"], "role": "roles/budget.viewer" }
],
"name": "accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default"
}

更新リクエストのために、応答からetagフィールドをコピーします。

権限の付与または取り消し​

ロールを付与するには、プリンシパルを関連する grant_rules エントリに追加します。ロールを取り消すには、そのプリンシパルを除外して更新を再度ランします。更新によって grant_rules リスト全体が置き換えられるため、新しい付与だけでなく、保持するすべての付与を含めてください。すべての権限をクリアするには、空の grant_rules リストを渡します。

ルールの最終状態を記載した rule-set.json ファイルを作成します。get-rule-set の応答からコピーした etag を使用します。

JSON
{
"name": "accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default",
"rule_set": {
"name": "accounts/<ACCOUNT_ID>/budgets/<BUDGET_ID>/ruleSets/default",
"etag": "1790271814348000",
"grant_rules": [
{ "role": "roles/budget.manager", "principals": ["users/manager@example.com"] },
{ "role": "roles/budget.viewer", "principals": ["users/viewer@example.com", "groups/cost-team"] }
]
}
}

次に、更新を適用します。

Bash
databricks account access-control update-rule-set --json @rule-set.json
重要

この更新によりルールセット全体が置き換えられるため、既存のロールはすべて上書きされます。既存のロールを維持するには、それらを grant_rules リストに含めます。古い etag は拒否されるため、常に直近の get-rule-set 応答から etag を使用してください。

次の形式を使用してプリンシパルを指定します。

Type

フォーマット

ユーザー

users/<email>

グループ

groups/<group-name>

サービスプリンシパル

servicePrincipals/<application-id>

Type

フォーマット

ユーザー

users/<email>

グループ

groups/<group-name>

サービスプリンシパル

servicePrincipals/<application-id>

付与された権限で予算を使用する​

アカウント管理者、ワークスペース管理者、および 予算マネージャー または 予算閲覧者 のロールを付与されたユーザーは、Budget API を使用して予算を操作します。ロールによって実行できるオペレーションが決まります:

ロール

一覧表示と取得

更新と削除

権限管理

マネージャー

✔

✔

✔

閲覧者

✔

✘

✘

ロール

一覧表示と取得

更新と削除

権限管理

マネージャー

✔

✔

✔

閲覧者

✔

✘

✘

その他のリソース​