プロファイル適用性: レベル 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 configファイルを使用する場合は、ファイルを編集して
authentication: x509: clientCAFile
をクライアントCAファイルの場所に設定します。コマンドライン引数を使用する場合、各ワーカーノードの kubelet サービスファイル
/etc/kubernetes/kubelet.conf
を編集し、以下のパラメータを KUBELET_AUTHZ_ARGS
変数に設定してください。--client-ca-file=<path/to/client-ca-file>
お使いのシステムに基づいて、
kubelet
サービスを再起動してください。例えば:systemctl daemon-reload systemctl restart kubelet.service