このページでは、Kubernetes と GKE の Center for Internet Security(CIS)ベンチマークへの準拠を強化するために Google Kubernetes Engine(GKE)が採用しているアプローチについて説明します。このページには、次の情報が含まれています。
- CIS Kubernetes Benchmark に準拠するようにマネージド GKE コントロール プレーンを構成する方法
- CIS Google Kubernetes Engine(GKE)ベンチマークに準拠するように GKE ノードとワークロードを構成する方法
CIS ベンチマークについて
CIS は、Kubernetes の安全な構成ガイドラインを含む次のベンチマークをリリースしています。
- CIS Kubernetes Benchmark: オープンソースの Kubernetes プロジェクトに適用されます。さまざまなセルフマネージド Kubernetes 実装とホスト型 Kubernetes 実装に関するガイダンスを提供することを目的としています。
- CIS GKE Benchmark: GKE クラスタで制御できるコンポーネントの安全な構成に関するガイドラインを確立します。Google Cloud 上の GKE に固有の推奨事項が含まれています。
Google Cloud の GKE に固有であるため、CIS GKE ベンチマークを優先することをおすすめします。CIS Kubernetes Benchmark には、GKE で表示または変更できないコントロールに関する推奨事項が多数含まれています。Google のクラスタ セキュリティへのアプローチには、オープンソースの Kubernetes ベンチマークの範囲を超える緩和策が含まれており、それらの推奨事項と競合する可能性があります。
GKE に適用されるその他のベンチマーク
CIS GKE Benchmark と CIS Kubernetes Benchmark に加えて、次のベンチマークが GKE で使用可能なオペレーティング システムに適用されます。特定の OS ベンチマークで Kubernetes の使用が明示的に扱われていない場合でも、追加のセキュリティ ガイダンスについては、そのベンチマークを参照する必要があります。
- Container-Optimized OS ベンチマーク: すべての GKE Linux ノードにインストールされているデフォルトのオペレーティング システム
- Ubuntu Linux ベンチマーク: GKE Standard で利用可能
- Windows Server ベンチマーク: GKE Standard で利用可能
デフォルトのコンテナ ランタイムである containerd にはベンチマークがありません。
共有責任モデル
Google は、GKE の共有責任モデルに基づいて、次のコンポーネントを管理します。
- コントロール プレーン VM、API サーバー、etcd、kube-controller-manager、kube-scheduler などのコンポーネントを含むコントロール プレーン。
- ノードのオペレーティング システム。
これらのコンポーネントは GKE が所有するプロジェクトに存在するため、対応する CIS Benchmark コントロールに対してこれらのコンポーネントを変更または評価することはできません。ただし、ワーカーノードとワークロードに適用される CIS Benchmark コントロールを評価して修正することはできます。GKE の共有責任モデルに基づき、これらのコンポーネントはお客様の責任で管理する必要があります。
CIS Benchmark 向けの GKE の保護に対する Google のアプローチ
GKE は、オープンソースの Kubernetes のマネージド実装です。Google はコントロール プレーンを完全に管理し、コントロール プレーン コンポーネントの構成を保護します。次の表に、CIS ベンチマークのスコアリングに影響する可能性がある Google の決定の一部を示します。
GKE のセキュリティ アプローチ | |
---|---|
認証 |
|
アドミッション コントローラ | GKE では、次のアドミッション コントローラが無効になります。
|
監査ロギング | GKE は、GKE 監査ポリシーを使用して監査ログをキャプチャします。そのため、Kubernetes API サーバー監査ロギング フラグを設定する必要はありません。 |
デバッグ | GKE はデバッグにプロファイリングを使用します。 |
暗号化 |
|
kubelet |
|
CIS ベンチマークに基づいて GKE を評価する
ベンチマークに対するクラスタの評価は、次のいずれかの方法で自動化できます。
CIS GKE Benchmark:
- すべての GKE エディション:
kube-bench
を実行して、ワーカーノードをベンチマークと比較します。詳細については、kube-bench GitHub リポジトリをご覧ください。- Twistlock Defender などのサードパーティ ツールを使用して、ベンチマークと比較してノードを評価します。
- GKE Enterprise エディション: Compliance ダッシュボードを使用して、すべてのクラスタが CIS GKE ベンチマークに準拠しているかどうかを評価します。詳細については、GKE Compliance ダッシュボードについてをご覧ください。
- すべての GKE エディション:
CIS Kubernetes Benchmark:
kube-bench
を実行して、Benchmark に対してワーカーノードを評価します。ベンチマークの推奨事項と比較して、マネージド コントロール プレーンを評価することはできません。
次のステップ
- GKE セキュリティの概要を確認する。
- GKE 強化ガイドのセキュリティのベスト プラクティスの手順に従う。
- GKE セキュリティ ポスチャーを使用して、クラスタのセキュリティ問題をモニタリングする方法について学習します。
- GKE Enterprise の GKE Compliance ダッシュボードで、クラスタのコンプライアンス問題を評価する方法について学習します。