OpenTacoのGitHub CODEOWNERS統合でTerraform適用の承認制御を実現する

OpenTacoのGitHub CODEOWNERS統合でTerraform適用の承認制御を実現する

2026.01.25

「本番環境のTerraform適用は特定ユーザーの承認を経たうえで実行したい」ケースがあると思います。

OpenTacoのGitHub CODEOWNERS統合を利用することでこれを実現できます。

CODEOWNERSの詳細は以下をご確認ください。

https://dev.classmethod.jp/articles/mandatory-code-review-for-github-pull-requests-with-branch-protection-and-codeowners/

以下を参考に試してみました。

https://docs.opentaco.dev/ce/howto/codeowners

ディレクトリ構成

以下のディレクトリ構成のリポジトリで設定しました。

├── .github
│   └── digger_workflow.yml
├── digger.yml
├── prod
│   └── main.tf
└── README.md

CODEOWNERSファイルを追加する

.github/CODEOWNERS
prod @hoge-user

ブランチ保護設定の追加

GitHubリポジトリ -> Settings -> Rules -> <Rule>名 -> Branch Rules -> Require a pull request before mergingにチェックを入れます。

以下を設定します。

  • Required approvals: 1
  • Require review from Code Owners: チェック

Settings_·_Rulesets_·_quickstart-actions-aws.png

動作確認

動作確認のために、PRを作成しました。

通常通り、PR作成時点でPlanが実行されました。

Update_main_tf_by_cm-sato-masaki_·_Pull_Request__17_·_msato0731_quickstart-actions-aws.png

レビュー担当者のApprove前にTerraformを適用する場合: digger apply失敗

Approve前にdigger applyを実行してみます。

適用条件(今回はレビュー担当者によるレビュー)を満たしていない旨のエラーがでて、digger applyが失敗しました。

Xau3a2PqOeU5_png__2036×1066_.png

レビュー担当者のApprove後にTerraformを適用する場合: digger apply成功

レビュー担当者がApproveを行いました。

その後digger applyを実行してみます。

今回は適用条件を満たしているため、digger applyが成功しました

Update_main_tf_by_cm-sato-masaki_·_Pull_Request__17_·_msato0731_quickstart-actions-aws.png

CODEOWNERSで指定していないユーザーでApproveしてTerraform適用する場合: digger apply失敗

CODEOWNERSで指定していないユーザーでApproveして、digger applyを試してみました。

Approve 1以上の条件は満たしていますが、CODEOWNERSからのApproveではないためdigger applyに失敗します。

Update_main_tf_by_cm-sato-masaki_·_Pull_Request__23_·_msato0731_quickstart-actions-aws.png

おわりに

OpenTacoのGitHub CODEOWNERS統合を利用することで、Terraform適用の承認制御を簡単に実現できました。

特定ユーザーの承認を必須化することで、本番環境への変更適用をより安全に実行できるようになります。

ブランチ保護設定と組み合わせることで、セキュリティと責任分離の両方を効
率的に強化できます。

他の承認制御機能として、digger.yamlで設定できるApply Requirementsという機能もあります。

apply_requirementsフィールドにapprovedを設定することで1つ以上のApproveがないとApplyできないように制御できます。

こちらはプロジェクトレベルで設定可能です。詳細は以下をご確認ください。

https://docs.opentaco.dev/ce/howto/apply-requirements

この記事をシェアする

FacebookHatena blogX

関連記事