プロファイル適用性: レベル1
kubeletクライアント証明書のローテーションを有効にする。
--rotate-certificates設定は、既存の認証情報が期限切れになると、kubeletが新しいCSRを作成してクライアント証明書をローテーションするようにします。この自動的な定期ローテーションにより、証明書の期限切れによるダウンタイムが発生せず、CIA
(機密性、完全性、可用性) セキュリティの三要素における可用性に対処します。この機能を使用するには、
RotateKubeletClientCertificate機能ゲートも有効にする必要があります。
注意この推奨事項は、kubeletがAPIサーバから証明書を取得する場合にのみ適用されます。kubeletの証明書が外部の認証機関/ツール (例: Vault) から取得される場合は、証明書のローテーションを自分で実装する必要があります。注:
この機能には
RotateKubeletClientCertificate機能ゲートを有効にする必要があります。 |
注意デフォルト値についてはAmazon EKSのドキュメントを参照してください。
|
監査
監査方法1:
-
各ノードにSSHで接続し、次のコマンドを実行してKubeletプロセスを見つけてください。
ps -ef | grep kubelet
出力に--RotateCertificate実行可能な引数が含まれている場合、それがtrueに設定されていることを確認してください。出力に--RotateCertificate実行可能な引数が含まれていない場合は、Kubelet設定ファイルを確認してください。出力は--config /etc/kubernetes/kubelet/kubelet-config.jsonのようなKubelet設定ファイルの場所を返すはずです。 -
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
