Kubernetes環境のポリシーエンジンKyvernoの使い方を解説します。
第4回ブログに続き、Sysdigでカバーできないセキュリティ要件への対応策として、ポリシーエンジンの活用を提案しています。今回は、YAMLでポリシーを記述できるKyvernoを取り上げます。
主なポリシーエンジンOSS
Open Policy Agent/Gatekeeper (OPA/Gatekeeper)
Rego言語を使用。学習コストは高いが、Kubernetes以外の環境でも利用可能。
Kyverno
YAMLを使用。学習コストが低く、Kubernetes環境専用。Kyvernoは後発のため、使いやすさに重点が置かれています。
Kyvernoの実装と検証手順
Helmを使ってKyvernoをKubernetesクラスタにデプロイ。
ClusterPolicyを作成。今回は、app: testラベルのないPodのデプロイを禁止するポリシーを定義。YAMLで記述し、ChatGPTで生成。
ClusterPolicyを適用。
ラベルのないPodをデプロイしようとすると、ポリシーによってブロックされることを確認。
app: testラベルを付与したPodは正常にデプロイできることを確認。
Kyvernoは、シンプルなYAMLでポリシーを記述できるため、学習コストが低く、容易にセキュリティルールを適用できます。Sysdigと組み合わせることで、Kubernetes環境のセキュリティを強化できます。
ポリシーエンジンを活用することで、Kubernetesネイティブな方法でセキュリティルールを強制できます。Sysdigのランタイムセキュリティとポリシーエンジンの設定ベースセキュリティを組み合わせ、多層的な防御を構築しましょう。