Sysdigは強力なセキュリティツールですが、全ての顧客要件を単独で満たせるわけではありません。本記事では、Sysdigだけではカバーできない要件への対応策として、Kubernetes環境におけるポリシーエンジンの活用を提案しています。
ポリシーエンジンとは、Admission Controllerの一種で、Kubernetes APIのリクエストを制御する仕組みです。Webhookを用いてリソースの検証(Validate)や変更(Mutate)を行い、セキュリティルールを強制できます。例えば、特定ラベルのないPodのデプロイ禁止や、ホワイトリスト外リポジトリからのイメージ使用禁止などが可能です。
代表的なOSSとしては、Open Policy Agent/Gatekeeper (OPA/Gatekeeper)とKyvernoがあります。今回はCNCF Graduated projectであるOPA/Gatekeeperを例に、AppArmor設定のないPodのデプロイを禁止するルールを実装する手順を紹介しています。
手順は以下の通りです。
OPA/GatekeeperをKubernetesクラスタにデプロイ。
ConstraintTemplateを作成。これはRego言語で記述する必要があり、記事ではChatGPTを利用してyamlを作成しています。
Constraintを作成。適用対象のリソースやnamespaceを定義します。これもChatGPTで生成。作成したyamlを適用。
AppArmor設定のないPodをデプロイしようとすると、エラーが発生しデプロイが拒否されることを確認。
ポリシーエンジンとSysdigを組み合わせることで、より強固なKubernetes環境のセキュリティを実現できます。Sysdigのランタイムセキュリティとポリシーエンジンの設定ベースセキュリティを併用することで、多層的な防御が可能になります。