ビュー:
プロファイル適用性: レベル1 - マスターノード
接続を確立する前にkubeletの証明書を検証してください。
apiserverからkubeletへの接続は、ポッドのログを取得したり、実行中のポッドに (kubectlを介して) アタッチしたり、kubeletのポートフォワーディング機能を使用するために使用されます。これらの接続はkubeletのHTTPSエンドポイントで終了します。デフォルトでは、apiserverはkubeletのサービング証明書を検証しないため、接続が中間者攻撃の対象となり、信頼できないネットワークや公共のネットワーク上での実行が安全ではありません。
注意
注意
デフォルトでは、--kubelet-certificate-authority引数は設定されていません。

影響

apiserverおよびkubeletにTLSを設定する必要があります。

監査

Control Planeノードで次のコマンドを実行します。
ps -ef | grep kube-apiserver
--kubelet-certificate-authority 引数が存在し、適切に設定されていることを確認する。
代替監査
kubectl get pod -nkube-system -lcomponent=kube-apiserver -o=jsonpath='{range
.items[]}{.spec.containers[].command} {"
"}{end}' | grep '--kubelet-
certificate-Authority' | grep -i false
終了コードが1の場合、コントロールが存在しないか失敗しています

修復

Kubernetesのドキュメントに従い、apiserverとkubelet間のTLS接続を設定します。その後、コントロールプレーンノード上のAPIサーバポッド仕様ファイル/etc/kubernetes/manifests/kube-apiserver.yamlを編集し、--kubelet-certificate-authorityパラメータを認証局の証明書ファイルのパスに設定します。
--kubelet-certificate-authority=<ca-string>