クラウドセキュリティとコンプライアンスにOpen Policy Agent(OPA)を活用する
2019年10月9日
0 分で読めます編集者注
このブログ記事は、もともとfugue.coに掲載されていました。Fugueは2022年にSnykの一員となり、Snyk IaCの重要な構成要素となっています。
大規模なクラウドインフラストラクチャの運用管理という課題からInfrastructure as Codeが生まれたように、環境のセキュリティとコンプライアンスを確保するためにPolicy as Codeが生まれました。クラウドインフラストラクチャ環境はあまりにも広大で複雑かつ動的であり、手動監査やチェックリストといった従来のセキュリティアプローチでは対応しきれません。
残念ながら、Policy as Code言語の多くは、クラウドベンダーが提供する独自仕様のクローズドソースです。こうした言語は顧客を特定のベンダーに囲い込み、企業が利用する他のポリシーフレームワークとの互換性もなく、特定のユースケースに適用するのも大変です。
Open Policy Agent(OPA)はオープンソースの汎用ポリシーエンジンで、RegoはOPAの宣言型ポリシー言語です。Fugueと組み合わせることで、クラウドインフラストラクチャのポリシーを柔軟に実装できます。Cloud Native Computing Foundation(CNCF)は2019年4月、OPAをインキュベーションレベルのホストプロジェクトとして受け入れました。
Fugueでは、クラウドセキュリティとコンプライアンスのためのSaaSソリューションにおいて、Policy as CodeフレームワークとしてOPAとRegoを活用しています。その機能は実に素晴らしいものです。OPAは主にKubernetesのアクセス ポリシーの開発に利用されてきましたが、私たちはAmazon Web Services(AWS)やMicrosoft Azure上の幅広いクラウドインフラストラクチャのユースケースにも活用しています。発表内容はこちらをご覧ください。
OPAとRegoを採用したことで、お客様に強力で柔軟なPolicy as Code機能を提供できるようになりました。その一つが、カスタムのクラウドインフラストラクチャポリシーをすばやく簡単に作成できる機能です。
OPAを活用したFugueのカスタムルール機能により、次のことが可能になります。
Fugue API、CLI、ウェブインターフェースを通じて、OPA Regoでユーザー定義のクラウドインフラストラクチャルールを作成・管理
カスタムルールの作成中に検証やテストを行い、時間を節約できるわかりやすいエラーを表示
カスタムルールと標準搭載のポリシーフレームワークへの準拠状況を継続的に検証・報告
OPAとFugueを使ったカスタムポリシーの例をいくつかご紹介します。
S3バケットがパブリックになっていないか、暗号化されているかを確認する
許可するクラウドリージョンを指定する
許可するマシンイメージ(AMIなど)を指定する
VPCフローログが設定されていることを確認する
許可するインスタンスサイズ(EC2など)を指定する
IAMポリシーの権限が最小限になっているかを確認する
Security Groupで許可するインバウンドルールを指定する
たとえば、Security Groupでポート9200を全世界に公開してはならない場合、次のようにルールを記述できます。
ほとんどの組織は、1つ以上のコンプライアンスフレームワークへの準拠も求められます。そのためFugueでは、OPAを使用してCIS Foundations Benchmarks(AWSおよびAzure)、GDPR、HIPAA、ISO 27001、NIST 800-53、PCI、SOC 2を標準でサポートしています。
FugueではOPAを使用して、毎日数百万件のセキュリティルール評価を実行しています。そのため、開発者向けツールの改善に多くの労力を注いできました。これらの成果はすべてオープンソースコミュニティに還元する予定です。OPAと、この重要なオープンソースプロジェクトにさらに貢献できる機会に期待しています。
開発者のために設計されたIaCセキュリティ
Snykは、統合されたポリシー・アズ・コードエンジンにより、SDLCからクラウドでの実行時までInfrastructure as Codeを保護します。すべてのチームが安全に開発、デプロイ、運用できるよう支援します。
