請求先アカウントを作成してリンクする

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 サーバーに対してコマンドを実行するには、次のリソースがあることを確認します。

  1. Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。

  2. これらの手順では、Management API サーバーの kubeconfig ファイルのパスを使用して MANAGEMENT_API_SERVER_KUBECONFIG を置き換えます。

新しい請求先アカウントの作成

請求先アカウントは、namenamespace によって一意に識別されます。請求先アカウントを作成するには、カスタム リソースを使用して namenamespace を確立します。

  1. 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"
  2. お支払い構成のタイプを確認します。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"
    
  3. YAML ファイルを保存します。kubectl CLI を実行して、課金対象の特定の組織またはプロジェクトの Management API サーバーにリソースを適用します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yaml
    

    MANAGEMENT_API_SERVER_KUBECONFIG は、Management API サーバーの kubeconfig ファイルに置き換えます。

このセクションでは、組織またはプロジェクトを BillingAccount にリンクする手順について説明します。

プロジェクトを BillingAccount にリンクする手順は次のとおりです。

  1. ファイル billingaccountbinding.yaml に次の内容を追加します。

    • billingAccountRef セクションで、リンクする BillingAccountname フィールドのコンテンツを 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 は、請求先アカウントにバインドされているプロジェクトの名前に置き換えます。

  2. 次の kubectl コマンドを実行して billingaccountbinding.yaml ファイルを適用します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

組織を BillingAccount にリンクする手順は次のとおりです。

  1. YAML ファイル billingaccountbinding.yaml に次の内容を追加します。

    • billingAccountRef セクションで、リンクする BillingAccountname フィールドの内容を 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
    
  2. 次の kubectl コマンドを実行して billingaccountbinding.yaml ファイルを適用します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
    

Distributed Cloud では、請求先アカウントを削除できません。請求構成の変更が必要な場合は、BillingAccountBinding を変更して、既存の請求先アカウントから組織またはプロジェクトのリンクを解除する必要があります。このユースケースのシナリオには、次のような例があります。

  • 社内の会計ルールで、デベロッパー レベルと本番環境レベルのワークロードに関連する料金を別のアカウントに分割する必要がある。
  • 請求先アカウントを作成して、顧客契約に 1 年間の料金を請求します。契約の有効期限が切れた場合は、1 年を超える残りの期間の料金を請求する必要があります。

請求先アカウントと組織またはプロジェクトのリンクを解除する手順は次のとおりです。

  1. プロジェクトにリンクする新しい BillingAccount を作成します。このアカウントは古いアカウントに置き換わります。

  2. プロジェクトまたは 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