ビュー:
プロファイル適用性: レベル1
kubeletクライアント証明書のローテーションを有効にする。
注意
注意
Amazon EKSのドキュメントでデフォルト値を確認してください。
--rotate-certificates設定は、既存の認証情報が期限切れになると、kubeletが新しいCSRを作成してクライアント証明書をローテーションするようにします。この自動定期ローテーションにより、証明書の期限切れによるダウンタイムが発生せず、CIA (機密性、完全性、可用性) セキュリティの三要素における可用性が確保されます。
注意
注意
この推奨事項は、kubeletがAPIサーバから証明書を取得する場合にのみ適用されます。kubeletの証明書が外部の認証機関/ツール (例: Vault) から取得される場合は、証明書のローテーションを自分で実装する必要があります。
注意
注意
この機能にはRotateKubeletClientCertificate機能ゲートも必要です。

監査

  1. 各ノードにSSHで接続し、次のコマンドを実行してKubeletプロセスを見つけます。
    ps -ef | grep kubelet
  2. 上記のコマンドの出力に--RotateCertificate実行可能な引数が含まれている場合、それがtrueに設定されていることを確認してください。
  3. 上記のコマンドの出力に--RotateCertificate実行可能な引数が含まれていない場合、Kubelet設定ファイルを確認してください。上記のコマンドの出力は、Kubelet設定ファイルの場所である--config /etc/kubernetes/kubelet/kubelet-config.jsonに類似したものを返すはずです。
  4. Kubelet設定ファイルを開く:
    cat /etc/kubernetes/kubelet/kubelet-config.json
  5. 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