3-1-2-Policy as Code (Policy-as-code)

Policy とは

それぞれの企業には、アプリケーションや製品を本番レベルや、ステージングや開発などの他のタイプのレベルにデプロイする前に、考慮しなければならないルール、要件、手順が多数あります。これらのルール、要件、手順はチェックして合格しなければならず、構成ミスがある場合には、修正されるまでプロセスを一時停止する必要があります。

SOC 2, CIS, PCI DSS, ISO 27001 など、業界で認められたフレームワークに準拠しなければならないものもあります。これらのポリシーはビジネスロジックコードの一部であるか、手動で実施されます。組織レベルでフレームワークの定義がないために、それぞれのチームが適当に実施しているため、これらは簡単に追跡できません。

Policy as Code とは

組織の複数のセキュリティチェックリストがあると時間がかかるだけでなく、チームごとに意味や行動が大きく異なります。チェックリストやエクセルを使うのではなく、すべてのポリシーをコードとして管理して、そのすべてをプロアクティブにし、必要な環境ごとに適用できます。このアプローチによって、ポリシーは単なるチェックリストではなくなり、あるチームがその一部を無視したり、一部を見逃すことはできなくなります。

Policy as Code の利点

ポリシー管理 (Policy Management): さまざまな IT チームが管理する複数の場所に分散しているポリシーを一つの場所に一元化することで、ポリシー管理に対してより俊敏で適応性の高いアプローチが可能になります。

バージョン管理 (Version Control): GitHub や GitLab などのバージョン管理システムにポリシーを一元化することで、組織のコントロールと可視性を強化できます。関係者は運用上の変更に簡単にアクセスできるという利点がある一方、自動化されたバージョン管理は更新とロールバックオプションを容易にし、スムーズな移行を確保し、新しいバージョンの潜在的な問題を軽減します。

速くて効率的 (Faster and Efficient): 手動によるポリシーの実施が不要になるため効率が向上し、ポリシーの動的な更新と共有が可能になり、それによりプロセスを合理化します。さらに、一元化とバージョン管理の組み合わせることで、コード実行の再現性と冪等性を促進します。再現性は一貫したコード実行を確保する一方、冪等性は繰り返し実行しても同じ出力をもたらすことを保証します。この信頼性はオペレータに信頼を与え、ためらいや恐れなしにデプロイメントを実行できるようにするために極めて重要です。

ツール

  • オープンソース:

    • OPA - Open Policy Agent (OPA) はオープンソースの汎用ポリシーエンジンであり、スタック全体にわたって統合されたコンテキスト認識型のポリシー適用を可能にします。

    • Kyverno - Kyverno (ギリシャ語で「統治」を意味) は Kubernetes 専用に設計されたポリシーエンジンです。

  • 商用:

    • Styra DAS - Open Policy Agent (OPA) の創設者と保守者が作成した、OPA を大規模に管理するための商用ツールです。

    • HashiCorp Sentinel - 既存のソフトウェアに組み込んで、きめ細かいロジックベースのポリシー決定を可能にするように構築された、ポリシーのための言語とフレームワークです。

Last updated