Terraform
Terraform で管理されているプロジェクトの請求先アカウントを切り替えるには、DoiT が提供する Cloud Billing アカウントに対して Terraform サービスアカウントに適切な権限を付与し、スクリプト内の billing_account の値を更新する必要があります。
先に進む前に、marketplace subscriptions と spend-based CUDs を必ず確認してください。確認を怠るとデータが失われる可能性があります。
Grant permission
Terraform サービスアカウントに権限を付与するには:
-
DoiT の Cloud Billing アカウントで Billing Account Administrator ロールを持つアカウントを使用して、Google Cloud Console にサインインします。
-
Cloud Console のナビゲーションメニューを開き、Billing を選択します。
複数の Cloud Billing アカウントがある場合:
-
現在のプロジェクトの Cloud Billing を管理するには、Go to linked billing account を選択します。
-
別の Cloud Billing アカウントを使用するには、Manage billing accounts を選択し、目的のアカウントを選びます。
-
-
Billing Account Overview ウィンドウで、請求先アカウントの横にある Manage オプションを選択します。

-
右側の Info Panel ペインで、Add Principal を選択します。
-
New principals フィールドに、Terraform サービスアカウントを入力します。
-
Select a role のドロップダウンリストから、Billing Account Administrator ロールを選択します。
ヒントプロジェクトレベル(Project Billing Manager または Project Owner ロール)でプロジェクトのリンクを解除する場合は、Billing Account Administrator ロールの代わりに Terraform サービスアカウントに Billing Account User ロールを付与できます。
-
変更を保存します。
-
Google Cloud Docs: Overview of Cloud Billing roles in IAM
-
Google Cloud Docs: Enable, disable, or change billing for a project
Set/Replace value for billing_account
Terraform documentation for Google Cloud Platform google_project に記載されているとおり、サポートされる引数のひとつに billing_account があります。
プロジェクトを関連付けるには、この値を DoiT の Billing アカウント ID に設定または置換します。
例:
resource "google_project" "my_project" {
name = "My Project"
project_id = "your-project-id"
org_id = "1234567"
billing_account = "DoiT-Billing-Account-ID"
}
単一の請求先アカウントにしかアクセスできないアイデンティティ(この場合は Terraform サービスアカウント)の場合、Google Cloud は Terraform におけるデフォルトの billing_account の値としてそのアカウントを使用します。
DoiT の Billing アカウントがデフォルトとして選択されるようにするには、Terraform サービスアカウントの他の請求先アカウントに対する権限を削除するか、Terraform スクリプトで DoiT の Billing アカウント ID を明示的に設定してください。