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です。
次の例は、さまざまな支払い構成の
BillingAccountYAML ファイル スニペットを示しています。cloudBillingConfigspec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_IDCLOUD_BILLING_ACCOUNT_IDは、実際のGoogle Cloud 請求先アカウント ID に置き換えます。customConfigspec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPEPAYMENT_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 ファイルを保存します。
kubectlCLI を実行して、課金対象の特定の組織またはプロジェクトの Management API サーバーにリソースを適用します。kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yamlMANAGEMENT_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: platformPROJECT_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を作成します。このアカウントは古いアカウントに置き換わります。プロジェクトまたは
platformNamespace で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