IBM Cloud Docs
バージョン 1.23 CIS Kubernetes Benchmark

バージョン 1.23 CIS Kubernetes Benchmark

このバージョンのサポートは終了しました。 できるだけ早く、クラスターを サポートされるバージョン に更新してください。

Center for Internet Security ( CIS ) は、 CIS Kubernetes Benchmarkを、 Kubernetes をより安全に、さまざまな業界規制に見合った基準で設定するための具体的な手順の枠組みとして公表している。 この資料には、Kubernetes バージョン 1.23 を実行するクラスターに対する、バージョン 1.5 CIS Kubernetes ベンチマークの結果が記載されています。 ベンチマークの詳細または理解については、 ベンチマークの使用を 参照してください。

1 マスター・ノードのセキュリティー構成

バージョン 1.5 の CIS Kubernetes ベンチマークのマスター・ノード・セキュリティー構成の結果を確認します。

1.1 マスター・ノードの構成ファイル

セクション 1.1 マスター・ノードのベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
1.1.1 API サーバーのポッド指定ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.2 API サーバーのポッド指定ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.3 コントローラー・マネージャーのポッド指定ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.4 コントローラー・マネージャーのポッド指定ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.5 スケジューラーのポッド指定ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.6 スケジューラーのポッド指定ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.7 etcd のポッド指定ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.8 etcd のポッド指定ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.9 コンテナー・ネットワーク・インターフェース・ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象外 1 合格 IBM
1.1.10 コンテナー・ネットワーク・インターフェース・ファイルの所有権が root:root に設定されていることを確認します。 スコア対象外 1 合格 IBM
1.1.11 etcd データ・ディレクトリーのアクセス権が 700 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.12 etcd データ・ディレクトリーの所有権が etcd:etcd に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.13 admin.conf ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.14 admin.conf ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.15 scheduler.conf ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.16 scheduler.conf ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.17 controller-manager.conf ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.18 controller-manager.conf ファイルの所有権が oot:root に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.19 Kubernetes PKI ディレクトリーおよびファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.20 Kubernetes PKI 証明書ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
1.1.21 Kubernetes PKI 鍵ファイルのアクセス権が 600 に設定されていることを確認します。 スコア対象 1 合格 IBM

1.2 API サーバー

セクション 1.2: API サーバーのベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
1.2.1 --anonymous-auth オプションが false に設定されていることを確認する。 スコア対象外 1 不合格 IBM
1.2.2 --basic-auth-file オプションが設定されていないことを確認する。 スコア対象 1 合格 IBM
1.2.3 --token-auth-file パラメーターが設定されていないことを確認します。 スコア対象 1 合格 IBM
1.2.4 --kubelet-https オプションが true に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.5 --kubelet-client-certificate--kubelet-client-key オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.6 --kubelet-certificate-authority オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.7 --authorization-mode オプションが AlwaysAllow に設定されていないことを確認する。 スコア対象 1 合格 IBM
1.2.8 --authorization-mode オプションに Node が含まれていることを確認してください。 スコア対象 1 合格 IBM
1.2.9 --authorization-mode オプションに RBAC が含まれていることを確認してください。 スコア対象 1 合格 IBM
1.2.10 アドミッション制御プラグインが EventRateLimit に設定されていることを確認します。 スコア対象外 1 不合格 IBM
1.2.11 アドミッション制御プラグインが AlwaysAdmit に設定されていないことを確認します。 スコア対象 1 合格 IBM
1.2.12 アドミッション制御プラグインが AlwaysPullImages に設定されていることを確認します。 スコア対象外 1 不合格 IBM
1.2.13 PodSecurityPolicy を使用しない場合は、アドミッションコントロールプラグイン SecurityContextDeny が設定されていることを確認する。 スコア対象外 1 合格 IBM
1.2.14 アドミッション制御プラグインが ServiceAccount に設定されていることを確認します。 スコア対象 1 合格 IBM
1.2.15 アドミッション制御プラグインが NamespaceLifecycle に設定されていることを確認します。 スコア対象 1 合格 IBM
1.2.16 アドミッション制御プラグインが PodSecurityPolicy に設定されていることを確認します。 スコア対象 1 合格 IBM
1.2.17 アドミッション制御プラグインが NodeRestriction に設定されていることを確認します。 スコア対象 1 合格 IBM
1.2.18 --insecure-bind-address オプションが設定されていないことを確認する。 スコア対象 1 合格 IBM
1.2.19 --insecure-port オプションが 0 に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.20 --secure-port オプションが 0 に設定されていないことを確認する。 スコア対象 1 合格 IBM
1.2.21 --profiling オプションが false に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.22 --audit-log-path オプションが設定されていることを確認する。 スコア対象 1 不合格 共有
1.2.23 --audit-log-maxage オプションが 30 または適切なものに設定されていることを確認する。 スコア対象 1 不合格 共有
1.2.24 --audit-log-maxbackup オプションが 10 または適切なものに設定されていることを確認する。 スコア対象 1 不合格 共有
1.2.25 --audit-log-maxsize オプションが 100 または適切なものに設定されていることを確認する。 スコア対象 1 不合格 共有
1.2.26 --request-timeout オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.27 --service-account-lookup オプションが true に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.28 --service-account-key-file オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.29 --etcd-certfile--etcd-keyfile オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.30 --tls-cert-file--tls-private-key-file オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.31 --client-ca-file オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.32 --etcd-cafile オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.2.33 --encryption-provider-config オプションが適切に設定されていることを確認する。 スコア対象 1 不合格 共有
1.2.34 暗号化プロバイダーが適切に構成されていることを確認します。 スコア対象 1 不合格 共有
1.2.35 APIサーバーが強力な暗号のみを使用するようにする。 スコア対象外 1 合格 IBM

1.3 コントローラー・マネージャー

セクション 1.3: コントローラー・マネージャーのベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
1.3.1 --terminated-pod-gc-threshold オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.3.2 --profiling オプションが false に設定されていることを確認する。 スコア対象 1 合格 IBM
1.3.3 --use-service-account-credentials オプションが true に設定されていることを確認する。 スコア対象 1 合格 IBM
1.3.4 --service-account-private-key-file オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.3.5 --root-ca-file オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
1.3.6 RotateKubeletServerCertificate オプションが true に設定されていることを確認する。 スコア対象 2 不合格 IBM
1.3.7 --bind-address オプションが 127.0.0.1 に設定されていることを確認する。 スコア対象 1 合格 IBM

1.4 スケジューラー

セクション 1.4: スケジューラーのベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
1.4.1 --profiling オプションが false に設定されていることを確認する。 スコア対象 1 合格 IBM
1.4.2 --bind-address オプションが 127.0.0.1 に設定されていることを確認する。 スコア対象 1 合格 IBM

2 Etcd ノードの構成

バージョン 1.5 の CIS Kubernetes ベンチマークの Etcd ノード構成の結果を確認します。

セクション 2: etcd ノード構成のベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
2.1 --cert-file--key-file オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
2.2 --client-cert-auth オプションが true に設定されていることを確認する。 スコア対象 1 合格 IBM
2.3 --auto-tls オプションが true に設定されていないことを確認する。 スコア対象 1 合格 IBM
2.4 --peer-cert-file--peer-key-file オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
2.5 --peer-client-cert-auth オプションが true に設定されていることを確認する。 スコア対象 1 合格 IBM
2.6 --peer-auto-tls オプションが true に設定されていないことを確認する。 スコア対象 1 合格 IBM
2.7 etcd に対して固有の認証局が使用されていることを確認します。 スコア対象外 2 合格 IBM

3 コントロール・プレーンの構成

バージョン 1.5 の CIS Kubernetes ベンチマークのコントロール・プレーン構成の結果を確認します。

3.1 認証および許可

セクション 3.1: 認証と許可のベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
3.1.1 クライアント証明書認証をユーザーに使用してはいけません。 スコア対象外 2 合格 共有

3.2 ロギング

セクション 3.2: ロギングのベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
3.2.1 最小限の監査ポリシーが作成されていることを確認します。 スコア対象 1 不合格 共有
3.2.2 監査ポリシーが主要なセキュリティー上の問題をカバーしていることを確認します。 スコア対象外 2 不合格 共有

4 ワーカー・ノードのセキュリティー構成

バージョン 1.5 の CIS Kubernetes ベンチマークのワーカー・ノード・セキュリティー構成の結果を確認します。

4.1 ワーカー・ノードの構成ファイル

セクション 4.1 ワーカー Node 構成のベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
4.1.1 kubelet サービス・ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
4.1.2 kubelet サービス・ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
4.1.3 プロキシーの kubeconfig ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
4.1.4 プロキシーの kubeconfig ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
4.1.5 kubelet.conf ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
4.1.6 kubelet.conf ファイルの所有権が kubelet.conf に設定されていることを確認します。 スコア対象 1 合格 IBM
4.1.7 認証局ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
4.1.8 クライアント認証局ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM
4.1.9 kubelet 構成ファイルのアクセス権が 644 またはこれより制限が厳しい値に設定されていることを確認します。 スコア対象 1 合格 IBM
4.1.10 kubelet 構成ファイルの所有権が root:root に設定されていることを確認します。 スコア対象 1 合格 IBM

4.2 Kubelet

セクション 4.2: Kubelet のベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
4.2.1 --anonymous-auth オプションが false に設定されていることを確認する。 スコア対象 1 合格 IBM
4.2.2 --authorization-mode オプションが AlwaysAllow に設定されていないことを確認する。 スコア対象 1 合格 IBM
4.2.3 --client-ca-file オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
4.2.4 --read-only-port オプションが 0 に設定されていることを確認する。 スコア対象 1 合格 IBM
4.2.5 --streaming-connection-idle-timeout オプションが 0 に設定されていないことを確認する。 スコア対象 1 合格 IBM
4.2.6 --protect-kernel-defaults オプションが true に設定されていることを確認する。 スコア対象 1 不合格 IBM
4.2.7 --make-iptables-util-chains オプションが true に設定されていることを確認する。 スコア対象 1 合格 IBM
4.2.8 --hostname-override オプションが設定されていないことを確認する。 スコア対象外 1 不合格 IBM
4.2.9 --event-qps オプションが 0 または適切なイベントキャプチャを保証するレベルに設定されていることを確認する。 スコア対象外 2 合格 IBM
4.2.10 --tls-cert-file--tls-private-key-file オプションが適切に設定されていることを確認する。 スコア対象 1 合格 IBM
4.2.11 --rotate-certificates オプションが false に設定されていないことを確認する。 スコア対象 1 成功 IBM
4.2.12 RotateKubeletServerCertificate オプションが true に設定されていることを確認する。 スコア対象 1 不合格 IBM
4.2.13 kubeletが強力な暗号のみを使用するようにします。 スコア対象外 1 合格 IBM

5 Kubernetes ポリシー

バージョン 1.5 の CIS Kubernetes ベンチマークの Kubernetes ポリシーの結果を確認します。

5.1 RBAC およびサービス・アカウント

セクション 5.1: RBAC およびサービス・アカウントのベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
5.1.1 cluster-admin 役割が必要な場所のみで使用されていることを確認します。 スコア対象外 1 合格 共有
5.1.2 シークレットへのアクセスを最小限に抑えます。 スコア対象外 1 不合格 共有
5.1.3 Roles and ClusterRoles でのワイルドカードの使用を最小限に抑える。 スコア対象外 1 不合格 共有
5.1.4 ポッドを作成するためのアクセスを最小限に抑えます。 スコア対象外 1 合格 共有
5.1.5 デフォルトのサービス・アカウントが積極的に使用されないようにします。 スコア対象 1 不合格 共有
5.1.6 サービス・アカウント・トークンが必要な場所のみにマウントされていることを確認します。 スコア対象外 1 不合格 共有

5.2 ポッド・セキュリティー・ポリシー

セクション 5.2: ポッド・セキュリティー・ポリシーのベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
5.2.1 特権コンテナーのアドミッションを最小限に抑えます。 スコア対象外 1 成功 共有
5.2.2 ホストプロセスID名前空間を共有したいコンテナの入場を最小限に抑える。 スコア対象 1 成功 共有
5.2.3 ホストのIPC名前空間を共有したいコンテナの受け入れを最小限に抑える。 スコア対象 1 成功 共有
5.2.4 ホストネットワークの名前空間を共有したいコンテナの入場を最小限に抑える。 スコア対象 1 成功 共有
5.2.5 allowPrivilegeEscalation が設定されたコンテナーのアドミッションを最小限に抑えます。 スコア対象 1 成功 共有
5.2.6 ルート・コンテナーのアドミッションを最小限に抑えます。 スコア対象外 2 成功 共有
5.2.7 NET_RAW機能でコンテナの入場を最小限に抑える。 スコア対象外 1 成功 共有
5.2.8 追加機能を持つコンテナーのアドミッションを最小限に抑えます。 スコア対象外 1 成功 共有
5.2.9 機能が割り当てられたコンテナーのアドミッションを最小限に抑えます。 スコア対象外 2 成功 共有

5.3 ネットワーク・ポリシーおよび CNI

セクション 5.3: ネットワーク・ポリシーと CNI のベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
5.3.1 使用中の CNI がネットワーク・ポリシーをサポートしていることを確認します。 スコア対象外 1 合格 IBM
5.3.2 すべての名前空間にネットワーク・ポリシーが設定されていることを確認します。 スコア対象 2 不合格 共有

5.4 シークレット管理

セクション 5.4: シークレット管理のベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
5.4.1 シークレットを環境変数として使用する代わりに、シークレットをファイルとして使用します。 スコア対象外 1 合格 共有
5.4.2 外部シークレット・ストレージを検討します。 スコア対象外 2 不合格 共有

5.5 拡張可能アドミッション制御

セクション 5.5: 拡張可能なアドミッション制御のベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
5.5.1 ImagePolicyWebhook アドミッション・コントローラーを使用して Image Provenance を構成します。 スコア対象外 2 不合格 共有

5.6 一般ポリシー

セクション 5.6: 一般ポリシーのベンチマーク結果
セクション 推奨 スコア対象/スコア対象外 レベル 結果 責任
5.6.1 名前空間を使用してリソース間の管理境界を作成します。 スコア対象外 1 合格 共有
5.6.2 ポッドの定義で、 seccomp プロファイルが docker/default に設定されていることを確認してください。 スコア対象外 2 不合格 共有
5.6.3 ポッドとコンテナーにセキュリティー・コンテキストを適用します。 スコア対象外 2 不合格 共有
5.6.4 デフォルトの名前空間は使用しないでください。 スコア対象 2 不合格 共有

IBM 修正処置と説明

CIS ベンチマークの結果については、IBM からの情報を確認してください。

説明と修正処置
セクション 修正処置/説明
1.2.1 IBM Cloud Kubernetes Service はクラスタ保護にRBACを利用しているが、匿名でのディスカバリを可能にしており、 CIS Benchmark Kubernetes あたりでは妥当と考えられている。
1.2.10 IBM Cloud Kubernetes Service を有効にしない。 EventRateLimit アドミッションコントローラーは、 Kubernetes アルファ機能なので、有効にしない。
1.2.12 IBM Cloud Kubernetes Service を有効にしない。 AlwaysPullImages アドミッション・コントローラはコンテナの imagePullPolicy を上書きし、パフォーマンスに影響を与える可能性があるからである。
1.2.22 IBM Cloud Kubernetes Service は、オプションで Kubernetes API サーバー監査を有効にする ことができます。
1.2.23 IBM Cloud Kubernetes Service は、オプションで Kubernetes API サーバー監査を有効にする ことができます。
1.2.24 IBM Cloud Kubernetes Service は、オプションで Kubernetes API サーバー監査を有効にする ことができます。
1.2.25 IBM Cloud Kubernetes Service は、オプションで Kubernetes API サーバー監査を有効にする ことができます。
1.2.33 IBM Cloud Kubernetes Service オプションで、 Kubernetes 鍵管理サービス(KMS)プロバイダーを有効にする ことができる。
1.2.34 IBM Cloud Kubernetes Service オプションで、 Kubernetes 鍵管理サービス(KMS)プロバイダーを有効にする ことができる。
1.3.6 IBM Cloud Kubernetes Service はワーカーノードのリロードや更新ごとに証明書をローテーションします。
3.2.1 IBM Cloud Kubernetes Service は、オプションで Kubernetes API サーバー監査を有効にする ことができます。
3.2.2 IBM Cloud Kubernetes Service は、オプションで Kubernetes API サーバー監査を有効にする ことができます。
4.2.6 IBM Cloud Kubernetes Service は、お客様が カーネル・パラメーターを調整 できるようにカーネルのデフォルトを保護しません。
4.2.8 IBM Cloud Kubernetes Service は、ホスト名がインフラストラクチャによって発行された名前と一致することを保証する。
4.2.11 IBM Cloud Kubernetes Service はワーカーノードのリロードや更新ごとに証明書をローテーションします。
4.2.12 IBM Cloud Kubernetes Service はワーカーノードのリロードや更新ごとに証明書をローテーションします。
5.1.2 IBM Cloud Kubernetes Service は、 シークレットアクセスがさらに制限される可能性のあるシステムコンポーネントをいくつか配備している。 Kubernetes
5.1.3 IBM Cloud Kubernetes Service は、 リソースアクセスがさらに制限される可能性のあるシステムコンポーネントをいくつか配備している。 Kubernetes
5.1.5 IBM Cloud Kubernetes Service は、各デフォルト・サービス・アカウントに automountServiceAccountToken: falseを設定しない。
5.1.6 IBM Cloud Kubernetes Service は、 automountServiceAccountToken: を偽に設定する可能性のあるシステム・コンポーネントをいくつか配備している。
5.2.1 IBM Cloud Kubernetes Service オプションでポッドセキュリティポリシーを設定できる。
5.2.2 IBM Cloud Kubernetes Service オプションでポッドセキュリティポリシーを設定できる。
5.2.3 IBM Cloud Kubernetes Service オプションでポッドセキュリティポリシーを設定できる。
5.2.4 IBM Cloud Kubernetes Service オプションでポッドセキュリティポリシーを設定できる。
5.2.5 IBM Cloud Kubernetes Service オプションでポッドセキュリティポリシーを設定できる。
5.2.6 IBM Cloud Kubernetes Service オプションでポッドセキュリティポリシーを設定できる。
5.2.7 IBM Cloud Kubernetes Service オプションでポッドセキュリティポリシーを設定できる。
5.2.8 IBM Cloud Kubernetes Service オプションでポッドセキュリティポリシーを設定できる。
5.2.9 IBM Cloud Kubernetes Service オプションでポッドセキュリティポリシーを設定できる。
5.3.2 IBM Cloud Kubernetes Service には、 デフォルトの Calico および Kubernetes ネットワーク・ポリシーのセットが定義されており、 オプションで 追加のネットワーク・ポリシーを追加できます
5.4.2 IBM Cloud Kubernetes Service オプションで、 Kubernetes 鍵管理サービス(KMS)プロバイダーを有効にする ことができる。
5.5.1 IBM Cloud Kubernetes Service は、オプションで イメージ・セキュリティー適用を有効にする ことができます。
5.6.2 IBM Cloud Kubernetes Service は、すべてのポッドに seccomp プロファイルのアノテーションを付けるわけではありません。
5.6.3 IBM Cloud Kubernetes Service は、 ポッドやコンテナ securityContext を設定しないいくつかのシステムコンポーネントをデプロイする。
5.6.4 IBM Cloud Kubernetes Service は、 のリソースをデフォルトの名前に配備する。 Kubernetes