![[アップデート]Terraform CloudにProjectの機能が追加されました](https://devio2023-media.developers.io/wp-content/uploads/2023/02/terraformcloud_1200x630.jpg)
[アップデート]Terraform CloudにProjectの機能が追加されました
この記事は公開されてから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)でした。






