Terraform Cloud に Insufficient rights って言われた
Terraform Cloud で API Token を使ったときに権限不足でうまくいかなかった
Error: Insufficient rights to generate a plan The provided credentials have insufficient rights to generate a plan. In order to generate plans, at least plan permissions on the workspace are required.
公式ドキュメントを見ると, Terraform Cloud には User, Team, Organization の3つの API Token があるらしい
https://www.terraform.io/docs/cloud/users-teams-organizations/users.html#api-tokens
User token
ユーザが持っている権限と同じ
terraform login
したときは User Token が作られる
Team token
Terraform Cloud はチームベースに権限を管理していて, チームに対して organization と workspace への権限を定義できる
organization への権限はつけたりつけなかったりできる
workspace への権限管理のために設計されてるのと workspace 内だけで活動するのあれば organization の権限はなくてよい
workspace への権限としては Read/Plan/Write/Admin のプリセットの権限がある
plan と read と write が別れてるのが便利
あとどうでもいいけど適当に作りすぎて reader に write 権限つけちゃってるのがおもしろい
新機能として細かく権限設定ができるようになってた
ここで言ってる workspace は Terraform Cloud の workspace のことで terraform workspace
のことではない
あと Terraform Cloud で terraform workspace
は使えない
難しいね...........
チームと同じ権限を持つAPI Tokenを作れるけど1チーム 1Token という制約がある
owners っていうデフォルトである強いチームと同じ権限をもたせることもできる
なので team token で実質 organization token になれるけど用途が違うのでメリットもなさそう
Organization token
organization レベルの設定ができる API Token を発行できて, チームや workspace の管理のために使われる
これも team token と同じで1チーム 1Token という制約がある
Terraform Cloud で workspace を作るまでを想定した token なので workspace への操作はできるけど plan とかはできない
ここまで読むとたしかに Organization で発行された Token は使えない気配しかなかった
workspace 1つずつに team を設定していくのがめんどうで organization で発行して使おうとしてたのがそもそも制約上NGだった....
それを管理するための organization token だけど...
organization はある程度大きな単位で作成して, workspace で分けていく想定で作られているのかな
API も Organization token を受け付けない
The organization token cannot perform plans and applies.
使えないぞってはっきり書いてある
権限管理めんどくさくて嫌になるけどこれくらいシンプルで用途を明示してくれてるのでやりやすくてよい