お元気そうで残念です

もんじゃ焼きが転がってるところにいます。

GCPでIAM conditionをいじったあとterraformが通らなくなった貴方へ

以下のエラーで悩んでる自分に贈るメモ。

googleapi: Error 400: Requested policy version (1) cannot be less than the existing policy version (3). For more information, please refer to https://cloud.google.com/iam/docs/policies#versions., badRequest

解決方法

provider "google-beta" のversion 2.20.1以上を使う。

Error 400: Requested policy version (1) cannot be less than the existing policy version (3) · Issue #5218 · terraform-providers/terraform-provider-google · GitHub

ここを見て provider "google"のversion 2.20.1以上を試して解決せず悩んでいたが、"google-beta"を使う必要があった。

このエラーになった経緯

  • Terraformでservice_account(google_service_account)やiam(google_project_iam_member)を設定していた。
  • 諸事情でIAM conditionをweb consoleから設定した。
  • IAM policyの実態がversion 3になった。 https://cloud.google.com/iam/docs/policies#versions
  • Terraformでiam(IAM policyを設定したものとは別のもの)をいじろうとした。
  • version違うからダメやでと言われるようになってしまった。