【ぽりしーあずこーど】

Policy as Code とは?

最終更新:
💡 ルールをコードにして、同じ基準でチェック

アクセスや設定などのルールを、機械で評価できるコードとして記述・管理する手法です。変更履歴やテストを持たせ、自動チェックや許可・拒否の判断に利用します。

📌 このページのポイント
ルールを評価し、結果を運用へつなぐルールのコード履歴・テスト調べるデータ設定・利用者などポリシーの評価例:OPA判定結果✓ 条件を満たす許可する処理へ× 条件に合わない止める処理へ
判定を適用する処理も必要です。未判定・エラー時の扱いは別途決め、検査を通らない経路も確認します。
ひよこ ひよこ
Policy as Codeは、ルールを文書に書くのと何が違うの?
ペンギン先生 ペンギン先生
機械が評価できる形でルールを書くんだよ。たとえば「本番への変更には承認が必要」という条件を、変更データと照合して判定できるようにする。コードなので、履歴・レビュー・テストも管理できるんだ。
ひよこ ひよこ
どこでチェックするの?
ペンギン先生 ペンギン先生
CI/CDで設定や変更予定を検査したり、APIで利用者がその操作をしてよいか判断したりするよ。OPAはそのためのツールの例で、Regoという言語のルールと入力データから判定を返すんだ。
ひよこ ひよこ
違反ならOPAが勝手にデプロイを止めてくれる?
ペンギン先生 ペンギン先生
OPAは判断する部分と、その結果を実際に適用する部分を分けているよ。パイプラインなどが判定を受け取り、変更を止める処理につなぐ必要がある。ツールを置くだけで全部の経路が守られるわけではないんだ。
ひよこ ひよこ
同じコードなら、チェックの間違いはなくなる?
ペンギン先生 ペンギン先生
同じ入力を同じルールで評価しやすくなるけれど、ルールの誤りや情報の不足は残るよ。許可すべき例と拒否すべき例をテストし、チェックを通らない経路や、エラー・判定なしの場合の扱いも確認しよう。
ひよこ ひよこ
コード化したら、人の確認はもういらない?
ペンギン先生 ペンギン先生
方針の意味、例外、法令や組織の変更は人が判断する必要があるよ。自動チェックは繰り返しの検査を助けるもの。更新したルールが実際に配布・適用されているか、記録と運用も見直そう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Policy as Code」って出てきたら「ルールをコードで管理し、機械でチェックする手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Policy as Code」 = ポリシーをコードとして管理する
💬 policyは方針やルール、as codeはコードとして扱うという意味だよ。

参考資料

← 用語集にもどる