Google Distributed Cloud(GDC)のエアギャップ環境では、プロジェクトと組織の費用を追跡するために請求先アカウントが必要です。請求先アカウントを組織またはプロジェクトにリンクしないと、リソースに関連付けられた費用データが失われます。
サービスの使用料金を顧客に請求するには、組織内のすべての請求先アカウントで単一の料金表を使用します。
始める前に
組織の IAM 管理者に、次の必要なロールを付与するよう依頼します。これらのロールは、プロジェクト レベルの課金の場合はプロジェクト Namespace に、組織レベルの課金の場合はプラットフォーム Namespace にバインドされます。
組織の請求先アカウント管理者:
BillingAccount
リソースの作成、管理、バインドを行います。組織の IAM 管理者にorganization-billing-account-admin
ロールを付与するよう依頼します。組織の請求先アカウント ユーザー:
BillingAccount
リソースの読み取り、一覧表示、バインドを行います。組織の IAM 管理者にorganization-billing-account-user
ロールを付与するよう依頼します。組織の請求先アカウント管理者:
BillingAccountBinding
リソースの読み取り、一覧表示、作成、更新を行います。組織の IAM 管理者にorganization-billing-manager
ロールを付与するよう依頼します。
kubeconfig ファイルを取得する
Management API サーバーに対してコマンドを実行するには、次のリソースがあることを確認します。
Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。
これらの手順では、Management API サーバーの kubeconfig ファイルのパスを使用して
MANAGEMENT_API_SERVER_KUBECONFIG
を置き換えます。
新しい請求先アカウントの作成
請求先アカウントは、name
と namespace
によって一意に識別されます。請求先アカウントを作成するには、カスタム リソースを使用して name
と namespace
を確立します。
YAML ファイルを作成し、
BillingAccount
カスタム リソースと次の内容を追加します。apiVersion: billing.gdc.goog/v1 kind: BillingAccount metadata: namespace: platform name: BIL_ACCOUNT_NAME spec: displayName: BIL_DISPLAY_NAME paymentSystemConfig: cloudBillingConfig: accountID: "012345-6789AB-CDEF01"
次の変数を置き換えます。
- BIL_ACCOUNT_NAME: 請求先アカウントの名前。例:
test-billing-account
- BIL_DISPLAY_NAME: 請求先アカウントの表示名。例:
"Test Billing Account"
- BIL_ACCOUNT_NAME: 請求先アカウントの名前。例:
お支払い構成のタイプを確認します。Distributed Cloud 請求先アカウントには、次のいずれかの支払い構成が必要です。
cloudBillingConfig
: デフォルトの支払い構成。この構成には、Cloud 請求先アカウント ID が保存されます。customConfig
: パートナーが組織に請求するための支払い構成を保存するためのカスタム構成。customConfig
は、Key-Value 文字列のディクショナリをサポートしています。必須のキーはpayment-config-type
です。
次の例は、さまざまな支払い構成の
BillingAccount
YAML ファイル スニペットを示しています。cloudBillingConfig
spec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_ID
CLOUD_BILLING_ACCOUNT_ID
は、実際のGoogle Cloud 請求先アカウント ID に置き換えます。customConfig
spec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPE
PAYMENT_CONFIG_TYPE
は、カスタム課金構成用に選択したお支払い構成タイプに置き換えます。組織の
customConfig
構成に関する情報がない場合は、次の詳細を入力します。spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"
次の YAML ファイルは、
cloudBillingConfig
構成を含む完全なBillingAccount
リソースを示しています。apiVersion: billing.gdc.goog/v1 kind: BillingAccount metadata: namespace: platform name: test-billing-account spec: displayName: "Test Billing Account" paymentSystemConfig: cloudBillingConfig: accountID: "012345-6789AB-CDEF01"
YAML ファイルを保存します。
kubectl
CLI を実行して、課金対象の特定の組織またはプロジェクトの Management API サーバーにリソースを適用します。kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
MANAGEMENT_API_SERVER_KUBECONFIG
は、Management API サーバーの kubeconfig ファイルに置き換えます。
組織またはプロジェクトを請求先アカウントにリンクする
このセクションでは、組織またはプロジェクトを BillingAccount
にリンクする手順について説明します。
プロジェクトをリンク
プロジェクトを BillingAccount
にリンクする手順は次のとおりです。
ファイル
billingaccountbinding.yaml
に次の内容を追加します。billingAccountRef
セクションで、リンクするBillingAccount
のname
フィールドのコンテンツをname
フィールドに入力します。metadata
セクションで、namespace
フィールドにBillingAccount
リソースの同じフィールドのコンテンツを入力します。
この例では、プロジェクトの Namespace は PROJECT_NAME です。
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: PROJECT_NAME spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform
PROJECT_NAME
は、請求先アカウントにバインドされているプロジェクトの名前に置き換えます。次の
kubectl
コマンドを実行してbillingaccountbinding.yaml
ファイルを適用します。kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
組織をリンクする
組織を BillingAccount
にリンクする手順は次のとおりです。
YAML ファイル
billingaccountbinding.yaml
に次の内容を追加します。billingAccountRef
セクションで、リンクするBillingAccount
のname
フィールドの内容をname
フィールドに入力します。metadata
セクションで、namespace
フィールドにBillingAccount
リソースの同じフィールドのコンテンツを入力します。この例では、組織の Namespace はplatform
です。
apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: platform spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform
次の
kubectl
コマンドを実行してbillingaccountbinding.yaml
ファイルを適用します。kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
組織またはプロジェクトから請求先アカウントのリンクを解除する
Distributed Cloud では、請求先アカウントを削除できません。請求構成の変更が必要な場合は、BillingAccountBinding
を変更して、既存の請求先アカウントから組織またはプロジェクトのリンクを解除する必要があります。このユースケースのシナリオには、次のような例があります。
- 社内の会計ルールで、デベロッパー レベルと本番環境レベルのワークロードに関連する料金を別のアカウントに分割する必要がある。
- 請求先アカウントを作成して、顧客契約に 1 年間の料金を請求します。契約の有効期限が切れた場合は、1 年を超える残りの期間の料金を請求する必要があります。
請求先アカウントと組織またはプロジェクトのリンクを解除する手順は次のとおりです。
プロジェクトにリンクする新しい
BillingAccount
を作成します。このアカウントは古いアカウントに置き換わります。プロジェクトまたは
platform
Namespace でBillingAccountBinding
リソース YAML ファイルを見つけて、次のフィールドを変更します。billingAccountRef
セクションで、name
フィールドに新しいBillingAccount
名を入力します。
次の例は、アカウント expired-billing-account
がプロジェクト project-one
にリンクされている BillingAccountBinding
YAML ファイルを示しています。
apiVersion: billing.gdc.goog/v1
kind: BillingAccountBinding
metadata:
# The name of a BillingAccountBinding will typically always be `billing`.
name: billing
# This is the project.
namespace: project-one
spec:
billingAccountRef:
# This is an example of a BillingAccount that has expired.
name: expired-billing-account
namespace: platform
次の例は、新しいアカウント new billing account
をリンクするように変更された、前の例の BillingAccountBinding
YAML ファイルを示しています。
apiVersion: billing.gdc.goog/v1
kind: BillingAccountBinding
metadata:
name: billing
# This is the project.
namespace: project-one
spec:
billingAccountRef:
# This is the example of the new BillingAccount.
name: new-billing-account
namespace: platform