Policy Controller の概要
このページでは、Policy Controller の概要と、このコントローラを使用して Kubernetes クラスタとワークロードを安全かつ規制遵守で実行する方法について説明します。
Policy Controller は、Kubernetes クラスタへのプログラム可能なポリシーの利用と適用を可能にします。これらのポリシーは「ガードレール」として機能し、クラスタとフリートのベスト プラクティス、セキュリティ、コンプライアンス管理に役立ちます。オープンソースの Open Policy Agent Gatekeeper プロジェクトに基づいて、Policy Controller は Google Cloud と完全に統合されています。オブザーバビリティ用の組み込みダッシュボードと、一般的なセキュリティ管理とコンプライアンス管理を行うためのビルド済みポリシーの完全なライブラリを備えています。
Policy Controller のメリット
- Google Cloud との統合: プラットフォーム管理者は、フリートに接続されている任意のクラスタで、Google Cloud コンソール、Terraform、または Google Cloud CLI を使用して、Policy Controller をインストールできます。Policy Controller は、Config Sync、指標、Cloud Monitoring などの他の Google Cloud サービスと連携します。
- 複数の適用ポイントのサポート: Policy Controller では、クラスタの監査とアドミッション コントロールの両方に加えて、必要に応じてシフトレフト アプローチを有効にして、適用前に非遵守の変更を分析して把握できます。
- ビルド済みのポリシー バンドル: Policy Controller には、一般的なセキュリティ管理とコンプライアンス管理のためにビルド済みポリシーの完全なライブラリが用意されています。これには、Google がビルドして管理するポリシー バンドルと制約テンプレート ライブラリの両方が含まれています。
- カスタム ポリシーのサポート: 制約テンプレート ライブラリの機能を超えたポリシーのカスタマイズが必要な場合、Policy Controller ではカスタム制約テンプレートを開発できます。
- 組み込みオブザーバビリティ: Policy Controller には Google Cloud コンソールのダッシュボードが含まれています。これにより、フリートに適用されているすべてのポリシーの状態を確認できます。ダッシュボードにコンプライアンスと適用ステータスを表示できます。この情報を利用してトラブルシューティングを行い、ポリシー違反の解決に役立つ独自の推奨事項を取得できます。
ポリシー バンドル
ポリシー バンドルを使用すると、特定の Kubernetes 標準、セキュリティ、コンプライアンス テーマに分類されたさまざまな制約を適用できます。これらのポリシー バンドルは Google によって作成、管理されているため、コードを記述することなくすぐに使用できます。たとえば、次のポリシー バンドルを使用できます。
- PodSecurityPolicies と同じ要件の多くを適用できますが、適用前に構成を監査できる機能を追加することで、ポリシーの変更がワークロードの実行に影響しないようにします。
- Anthos Service Mesh と互換性のある制約を使用して、メッシュ セキュリティの脆弱性とベスト プラクティスのコンプライアンスを監査します。
- 一般的なベスト プラクティスをクラスタ リソースに適用して、セキュリティ体制を強化します。このバンドルは、Policy Controller の購入前の試用版でも使用されるため、追加料金なしでこのベースライン ポリシーのセットをオンデマンドで試すことができます。
Policy Controller バンドルの概要には、現在利用可能なポリシー バンドルの詳細とリストが記載されています。
制約
Policy Controller は、制約と呼ばれるオブジェクトを使用してクラスタにポリシーを遵守させます。制約はポリシーの「構成要素」と考えることができます。各制約は、そのクラスタが適用されているクラスタで許可または禁止される Kubernetes API の特定の変更を定義します。ポリシーを遵守していない API リクエストをアクティブにブロックするポリシーや、クラスタの構成を監査して違反を報告するポリシーを設定できます。いずれの場合も、クラスタで発生した違反の詳細を含む警告メッセージを表示できます。この情報を使用して問題に対処できます。たとえば、次の制約を使用できます。
- 各 Namespace に 1 つ以上のラベルがあることを必須とする制約。この制約を使用して、GKE 使用状況測定の使用時にリソースの使用量を正確にトラッキングできます。
- 指定されたコンテナ イメージを pull できるリポジトリを制限する制約。この制約により、不明なソースからのコンテナの pull を拒否し、悪意のあるソフトウェアが実行されないようクラスタを保護します。
- コンテナを特権モードで実行できるかどうかを制御する制約。この制約は、特権モードを有効にするコンテナの機能を制御します。これにより、制限のないポリシーで実行可能なコンテナ(存在する場合)を制御できます。
これらは、Policy Controller に含まれている制約テンプレート ライブラリで提供される制約の一部です。このライブラリには、ベスト プラクティスを適用し、リスクを抑えるために使用できる多くのポリシーが含まれています。制約テンプレート ライブラリで提供される機能を超えたカスタマイズが必要な場合は、カスタム制約テンプレートを作成することもできます。
制約は Kubernetes API を使用してクラスタに直接適用することも、Config Sync を使用して信頼できる情報源からクラスタのセットに分散することもできます。
次のステップ
- Policy Controller の無料トライアルを試す。
- Policy Controller のインストール方法を確認する。
- ポリシー バンドルを適用する。
- 独自の制約を作成する。