【GitLab 18.11】無料ユーザーも使える!Terraform モジュールのパッケージ保護機能が追加されました
はじめに
2026年4月16日にリリースされた GitLab 18.11 で、Terraform モジュールに対するパッケージ保護ルールのサポートが追加されました。この機能は Free、Premium、Ultimate すべてのティアで利用可能 です。
GitLab を使って Terraform モジュールを管理している方にとって、これは大きな前進です。今まで「誰がモジュールの新バージョンをプッシュできるのか」を制限する方法がありませんでしたが、この機能によってプロジェクトレベルで細かく制御できるようになりました。
パッケージ保護機能とは
パッケージ保護機能を使うと、特定のパッケージに対して「誰が変更できるか」を制限できます。
通常の状態(保護ルールなし):
- Developer、Maintainer、Owner ロールを持つユーザーは、誰でもパッケージをプッシュ・削除できる
保護ルールを設定すると:
- 例えば「プッシュには Maintainer 以上が必要」と設定すれば、Developer ロールのユーザーはプッシュできなくなる
- 「削除には Owner のみ」と設定すれば、Maintainer でも削除できなくなる
GitLab 18.11 以前は npm、PyPI、Maven、Conan パッケージがサポートされていましたが、今回 Terraform モジュール が新たに対応しました。
なぜ Terraform モジュールの保護が重要なのか
Terraform モジュールは、インフラストラクチャをコードで管理する際の重要な構成要素です。組織内で共有される Terraform モジュールに対して、誰でも新しいバージョンをプッシュできてしまうと、以下のようなリスクがあります。
- 意図しない変更が本番環境のインフラに影響を与える
- 標準化されたモジュールが勝手に変更される
- セキュリティポリシーに準拠しない変更が混入する
パッケージ保護ルールを設定することで、これらのリスクを軽減できます。
設定方法
前提条件
- Maintainer または Owner ロールが必要です
保護ルールの追加手順
- プロジェクトのページで「Settings > Packages and registries」を選択
- 「Package registry」を展開
- 「Protected packages」の下にある「Add protection rule」を選択
- 以下の項目を入力します
-
Name pattern: 保護したいパッケージ名のパターン(ワイルドカード
*が使用可能) -
Package type:
terraform_moduleを選択 - Minimum access level for push: プッシュに必要な最小ロール
- Minimum access level for delete: 削除に必要な最小ロール
-
Name pattern: 保護したいパッケージ名のパターン(ワイルドカード
- 「Protect」を選択
これで保護ルールが作成され、設定画面に表示されます。
複数のパッケージをまとめて保護する
ワイルドカード(*)を使うことで、複数のパッケージを一つのルールで保護できます。例えば、CI/CD パイプラインで一時的に作成されるモジュールをまとめて保護することができます。
パターンの例:
| パッケージ名パターン | マッチするパッケージ例 |
|---|---|
terraform-module-* |
terraform-module-prod, terraform-module-staging
|
*-network |
vpc-network, subnet-network
|
infra-*-module |
infra-vpc-module, infra-sg-module
|
同じパッケージに複数の保護ルールを適用することも可能です。いずれか一つでも適用されれば、そのパッケージは保護されます。
保護ルールの削除
- プロジェクトのページで「Settings > Packages and registries」を選択
- 「Package registry」を展開
- 「Protected packages」で、削除したいルールの横にある「Delete」を選択
- 確認ダイアログで「Delete」を選択
これで保護ルールが削除され、パッケージの保護が解除されます。
利用可能なインターフェース
Terraform モジュールの保護ルールは、以下のすべてのインターフェースでサポートされています。
- Web UI のパッケージタイプドロップダウン
- REST API
- GraphQL API
- GitLab Terraform Provider リソース
API を使った自動化や、Terraform でインフラとともに保護ルールを管理することも可能です。
まとめ
GitLab 18.11 の Terraform モジュール保護機能により、インフラコードの管理がより安全になりました。無料で使える機能ですので、Terraform モジュールを GitLab で管理している方は、ぜひこの機会に保護ルールを設定してみてください。
GitLab には、まだまだ知られていない便利な機能がたくさんあります。公式ドキュメントを定期的にチェックして、ぜひもっと GitLab を使いこなしてくださいね。