データ周りのお仕事をしています!モリヤス(@_moriyas)です!
最近「Google Cloud × Terraform」の学習をしております。
今回はTerraformでGoogle Cloudのサービスアカウントの作成をしていきたいと思います!
環境
- Mac OS(Intel)
- Terraform v1.7.3
※Terraformやgcloud CLIのインストール、Google Cloudのプロジェクトの作成は完了している前提の記事になります。
コード
今回の検証用のフォルダ(「my_blog_analysis」とします)の中に下記のファイルを作成します。
terraform {
required_version = "1.7.3"
required_providers {
google = {
source = "hashicorp/google"
version = ">= 5.40"
}
}
}
provider "google" {
project = var.project_id
region = var.region
}
resource "google_service_account" "dbt_runner" {
account_id = "my-blog-analysis-sa"
display_name = "my_blog_analysis用のService Account"
}
variable "project_id" {
description = "Google CloudのProject ID"
type = string
}
variable "region" {
description = "Google Cloudのregion"
type = string
default = "asia-northeast1"
}
project_id = "project-id"
region = "asia-northeast1"
※ご自身で作成したのGoogle Cloudのプロジェクトのproject_idやregionを設定してください。
上記で準備はOKです。
コマンド実行
では「my_blog_analysis」フォルダで、下記のコマンドを実行してみます。
terraform init
下記のように「Terraform has been successfully initialized!」と表示されればTerraformのプロジェクトの初期化が完了です。

続いて、コードのフォーマットを整えるために下記のコマンドを実行します。(上記コピペしているのであればおそらく差分はないはずですが、念の為!)
terraform fmt -recursive
次に下記のコマンドで.tfファイルの設定を反映してサービスアカウントを作成してみます。
terraform apply
すると下記の画像のようなメッセージが表示され

「Do you want to perform these actions?」と聞かれるので、「Enter a value:」に「yes」と入力してEnterを押します。
下の画像のように「Apply complete! Resources: 1 added. changed. 0 destroved.」となっていれば成功しているはずです。

Google Cloud上で確認
実際にGoogle Cloudの設定してプロジェクトにサービスアカウントが作成されているかを確認したところ、しっかりと作成されているのが確認できました。

参考記事