📝
gcloudコマンドは成功するのに、Terraformが失敗するときの対処法
記事の内容
gcloudコマンドで直接GCPリソースを作成することはできたが、Terraformにて同じProjectに対してリソースを作ることができなかった(権限エラー)になった時の対処法
記事の長さ
1分で読めます
事象
- gcloud コマンドで特定のProjectに対して、リソースを作成することはできた
- 同じターミナルでTerraformを実行し、同じProjectに対してリソースを作成しようとしたが、権限エラーで作成できなかった
google_sql_database_instance.instance: Creating...
╷
│ Error: Error, failed to create instance instance-1: googleapi: Error 403: The client is not authorized to make this request., notAuthorized
│
│ with google_sql_database_instance.instance,
│ on main.tf line 8, in resource "google_sql_database_instance" "instance":
│ 8: resource "google_sql_database_instance" "instance" {
│
╵
原因
~/.config/gcloud/credentials.db
ファイルは、gcloud auth login
コマンドにて、変更されていたが、
~/.config/gcloud/application_default_credentials.json.db
ファイルが変更されていなかった。
詳細
~/.config/gcloud/credentials.db
は、gcloudコマンドなどを利用する際に参照されるファイルで、
~/.config/gcloud/application_default_credentials.json.db
は、GCPのSDKを利用したプログラムを利用する際に利用されるファイルです。
そのため、Terraformは後者のファイルに設定されているCredentialsを参照します。
対応
gcloud auth application-default login
を実行する
note
勉強法やキャリア構築法など、エンジニアに役立つ記事をnoteで配信しています。
Discussion