プロファイル適用性: レベル1
kubeletクライアント証明書のローテーションを有効にする。
![]() |
注意デフォルト値についてはAmazon EKSのドキュメントを参照してください。
|
--rotate-certificates
設定は、kubeletが既存の認証情報の有効期限が切れると新しいCSRを作成してクライアント証明書をローテーションするようにします。この自動定期ローテーションにより、証明書の有効期限切れによるダウンタイムが発生せず、CIA
(機密性、完全性、可用性) セキュリティの三要素における可用性に対処します。![]() |
注意この推奨事項は、kubeletがAPIサーバから証明書を取得する場合にのみ適用されます。kubeletの証明書が外部の認証機関/ツール (例: Vault) から発行される場合は、自分でローテーションを実装する必要があります。
|
![]() |
注意この機能には
RotateKubeletClientCertificate 機能ゲートも必要です。 |
監査
- 各ノードにSSH接続し、以下のコマンドを実行してKubeletプロセスを見つけてください:
ps -ef | grep kubelet
- コマンドの出力に
--RotateCertificate
実行引数が含まれている場合、それがtrue
に設定されていることを確認してください。 - 上記のコマンドの出力に
--RotateCertificate
実行可能な引数が含まれていない場合は、Kubelet設定ファイルを確認してください。上記のコマンドの出力には、Kubelet設定ファイルの場所である--config /etc/kubernetes/kubelet/kubelet-config.json
のようなものが返されるはずです。 - Kubeletの設定ファイルを開く:
cat /etc/kubernetes/kubelet/kubelet-config.json
RotateCertificate
引数が存在しないか、true
に設定されていることを確認してください。
修復
修復方法1
Kubeletの設定ファイルを変更する場合は、kubelet-config.jsonファイル
/etc/kubernetes/kubelet/kubelet-config.json
を編集し、以下のパラメータをtrue
に設定してください。"RotateCertificate":true
さらに、kubeletサービスファイル
/etc/systemd/system/kubelet.service.d/10-kubelet-args.conf
で--RotateCertificate
実行引数をfalse
に設定しないようにしてください。これはKubelet設定ファイルを上書きしてしまうためです。修復方法2
実行可能な引数を使用する場合は、各ワーカーノードの kubelet サービスファイル
/etc/systemd/system/kubelet.service.d/10-kubelet-args.conf
を編集し、以下のパラメータを KUBELET_ARGS
変数文字列の末尾に追加してください。--RotateCertificate=true