[アップデート]Terraform CloudにProjectの機能が追加されました

2023.01.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

アップデート概要

Projectを使用することで、Workspaceをグループ化することができます。

Terraform Cloud Adds ‘Projects’ to Organize Workspaces at Scale

公式Blog内にある、図を見てもらうとイメージがしやすいと思います。

このアップデートで嬉しい点として、権限管理が楽になることがあげられます。

これまではWorkspace個別に権限を付与する必要がありましたが、Projectに権限を与えることで配下のWorkspaceへの権限が付与されます。

また、セルフサービスを行いやすくもなったと思います。

Workspaceの作成はOwner権限が必要です。Owner権限を全員に付与するのはリスクがあります。

そのため、チームでTerraform運用しているが、Workspace作成のみOwnerに依頼する運用を行なっている場合があるかと思います。

ProjectごとにAdmin権限を与えることで、該当Project内でのみWorkspaceを作ることができます。 チームにWorkspace作成の権限を与えることでセルフサービスも捗りそうです

Policy setsやVariable setsはProjectに割り当てられる?

現時点では不可でした。(2023/1/18)

Policy setsやVariable setsなどは、「すべてのWorkspaceに割り当てる」 or 「特定のWorkspaceに割り当てる」といった感じで適用範囲を設定できます。

この適用範囲にProjectも追加されているかなと思って確認してみましたが、現時点ではProjectは追加されていませんでした。

Variable setsの適用範囲にProjectを選択できるようになりました。(2023/4/28更新)

Policy setsに関しては、Projectは現時点では未対応です。

やってみる

Projectを作成して、既存Workspaceを作成したProjectに移動してみます。

Projectの作成

コンソールを見てみると、以前はworkspacesのみだった部分がProjects & workspacesに変わっています。

以前作成したWorkspaceは、Default Projectに所属しています。

画面右上のNewからProjectを作成します。

今回は、検証環境なのでプロジェクト名はsato-projectとしています。

Projectの権限設定

TeamにProjectの権限を付与します。

選択できる権限は、現状ではReadとAdminの2つです。

  • Read: Project内Workspaceの読み込み権限等
  • Admin: Project内のWorkSpace読み書き、当該Projectの編集等

これで権限の付与が完了しました。

作成したProjectに既存のWorkspaceを移動

Workspaceの右横にある・・・からProjectの変更ができます。

Project移動に伴って、権限が変更される旨の警告が出ています。

Team内のユーザーに切り替えて、権限の確認

Team内のユーザーに切り替えて、該当Projceしか操作できないことを確認します。

Team内のユーザーには、Projectに対してAdmin権限を付与しています。

Default Projectが見えないことを確認できました。

Project内にWorkspaceを作れました。

おわりに

Terraform CloudにProjectレイヤーが追加されたアップデートを紹介しました。

多数のWorkspaceを運用している方にとっては、激アツのアップデートかと思います。

以上、AWS事業本部の佐藤(@chari7311)でした。