プロファイル適用性: レベル1
読み取り専用ポートを無効にする。
Kubeletプロセスは、メインのKubelet APIに加えて読み取り専用のAPIを提供します。この読み取り専用APIには認証されていないアクセスが提供されており、クラスタに関する潜在的に機密性のある情報を取得する可能性があります。
注意Azure AKS のドキュメントでデフォルト値を確認してください。
|
影響
読み取り専用ポートの削除により、それを使用していたサービスはメインのKubelet APIを使用するように再構成する必要があります。
監査
Kubeletの設定ファイルを使用している場合、
authentication: anonymous: enabledが0に設定されていることを確認してください。-
関連ノードにSSHで接続し、各ノードで以下のコマンドを実行して適切なKubelet設定ファイルを見つけてください。
ps -ef | grep kubelet
上記のコマンドの出力は、--config /etc/kubernetes/kubelet/kubelet-config.jsonのようなものを返すはずです。これはKubeletの設定ファイルの場所です。 -
Kubeletの設定ファイルを開く:
cat /etc/kubernetes/kubelet/kubelet-config.json
-
--read-only-port引数が存在し、0に設定されていることを確認してください。 -
--read-only-port引数が存在しない場合、--configで指定されたKubeletの設定ファイルがあることを確認してください。ファイルにreadOnlyPortエントリがある場合、それが0に設定されていることを確認してください。
修復
Remediation Method 1:
Kubeletの設定ファイルを変更する場合、
/etc/kubernetes/kubelet/kubelet-config.jsonを編集し、以下のパラメータをfalseに設定してください。 readOnlyPort to 0
Remediation Method 2:
実行可能な引数を使用する場合、各ワーカーノードのKubeletサービスファイル
/etc/systemd/system/kubelet.service.d/10-kubelet-args.confを編集し、KUBELET_ARGS変数文字列の末尾に以下のパラメータを追加してください。--read-only-port=0
For all remediations:
kubeletサービスを再起動し、ステータスを確認してください。 systemctl daemon-reload
systemctl restart kubelet.service
systemctl status kubelet -l
