👏
Google Cloud へ terraform 実行時の「oauth2: cannot fetch token」の解決
発生事象
Macマシンでローカルから、Google Cloud に向けて terraform apply
を実行した際に、以下のようなエラーが発生しました。
╷
│ Error: Error when reading or editing Project Service : Request `List Project Services <REPLACE>` returned error: Batch request and retried single request "List Project Services <REPLACE>" both failed. Final error: Failed to list enabled services for project <REPLACE>: Get "https://serviceusage.googleapis.com/v1/projects/<REPLACE>/services?alt=json&fields=services%2Fname%2CnextPageToken&filter=state%3AENABLED&prettyPrint=false": oauth2: cannot fetch token: 400 Bad Request
│ Response: {"error":"invalid_grant","error_description":"Invalid grant: account not found"}
│
│ with google_project_service.project_services["cloudbuild.googleapis.com"],
│ on services.tf line 8, in resource "google_project_service" "project_services":
│ 8: resource "google_project_service" "project_services" {
│
╵
解決方法
以下のコマンドが解決になるかもしれません。
$ gcloud auth application-default login
$ export GOOGLE_APPLICATION_CREDENTIALS=~/.config/gcloud/application_default_credentials.json
これは、Google Cloud のデフォルトの認証情報を設定して .json ファイルに格納したのち、 terraform などのツールが認証情報を取得するための環境変数 GOOGLE_APPLICATION_CREDENTIALS
にそのファイルパスを指定しています。
もしくはドキュメントをご覧ください。
Discussion