プロファイル適用性: レベル1 - ワーカーノード
証明書を使用したKubelet認証の有効化
apiserverからkubeletへの接続は、ポッドのログを取得したり、実行中のポッドに (kubectlを通じて) アタッチしたり、kubeletのポートフォワーディング機能を使用するために使用されます。これらの接続はkubeletのHTTPSエンドポイントで終了します。デフォルトでは、apiserverはkubeletのサービング証明書を検証しないため、接続が中間者攻撃の対象となり、不信頼または公共のネットワーク上での実行が安全でなくなります。Kubelet証明書認証を有効にすることで、apiserverがリクエストを送信する前にKubeletを認証できるようになります。
注意デフォルトでは、
--client-ca-file引数は設定されていません。 |
影響
apiserverおよびkubeletにTLSを設定する必要があります。
監査
各ノードで次のコマンドを実行します。
ps -ef | grep kubelet
--client-ca-file引数が存在し、クライアント認証局ファイルの場所に設定されていることを確認してください。--client-ca-file 引数が存在しない場合、--config で指定された Kubelet 設定ファイルがあり、そのファイルが authentication: x509: clientCAFile をクライアント認証局ファイルの場所に設定していることを確認してください。修復
Kubelet設定ファイルを使用する場合、ファイルを編集して
authentication: x509: clientCAFileをクライアントCAファイルの場所に設定してください。Command Line引数を使用する場合は、各ワーカーノードの
/etc/kubernetes/kubelet.confでkubeletサービスファイルを編集し、以下のパラメータをKUBELET_AUTHZ_ARGS変数に設定してください。--client-ca-file=<path/to/client-ca-file>
お使いのシステムに基づいて、
kubeletサービスを再起動してください。例:systemctl daemon-reload systemctl restart kubelet.service
