プロファイル適用性: レベル1
Kubeletサーバへの匿名リクエストを無効にする。
有効にすると、他の設定された認証方法によって拒否されないリクエストは匿名リクエストとして扱われます。これらのリクエストはKubeletサーバによって処理されます。アクセスを許可し、匿名リクエストを禁止するために認証に依存するべきです。
注意Azure AKS のドキュメントでデフォルト値を確認してください。
|
影響
匿名リクエストは拒否されます。
監査
Audit Method 1Kubelet設定ファイルを使用している場合、
authentication: anonymous: enabledがfalseに設定されていることを確認してください。-
関連ノードにSSH接続してください。
-
各ノードで次のコマンドを実行して、適切なKubelet設定ファイルを見つけてください。
ps -ef | grep kubelet
出力は--config /etc/kubernetes/kubelet/kubelet-config.jsonのように返されるべきで、これはKubeletの設定ファイルの場所です。 -
Kubelet設定ファイルを開く:
sudo more /etc/kubernetes/kubelet/kubelet-config.json
-
"authentication": { "anonymous": { "enabled": false } }引数がfalseに設定されていることを確認してください。
api configzエンドポイントを使用する場合、kubeletを実行しているノードからライブ構成を抽出して、
認証... "anonymous":{"enabled":false}のステータスを検索してください。-
ローカルプロキシポートと以下の変数を設定し、プロキシポート番号とノード名を提供してください。
kubectl proxy --port=8001 & export HOSTNAME_PORT=localhost:8001 export NODE_NAME=ip-192.168.31.226.aks.internal curl -sSL "http://${HOSTNAME_PORT}/api/v1/nodes/${NODE_NAME}/proxy/configz"
修復
Remediation Method 1Kubeletの設定ファイルを変更する場合、
kubelet-config.jsonファイル/etc/kubernetes/kubelet/kubelet-config.jsonを編集し、以下のパラメータをfalseに設定してください。"anonymous": "enabled": falseRemediation Method 2
実行可能な引数を使用する場合、各ワーカーノードの kubelet サービスファイル
/etc/systemd/system/kubelet.service.d/10-kubelet-args.conf を編集し、KUBELET_ARGS 変数文字列の末尾に以下のパラメータを追加してください。--anonymous-auth=falseRemediation Method 3
api configzエンドポイントを使用する場合、kubeletを実行しているノードからライブ構成を抽出して、
"authentication.*anonymous":{"enabled":false}"のステータスを検索します。ライブクラスターでノードのKubeletを再構成するの詳細な手順を参照し、監査プロセスからcurlステートメントを再実行してkubelet構成の変更を確認します。kubectl proxy --port=8001 &
export HOSTNAME_PORT=localhost:8001
export NODE_NAME=ip-192.168.31.226.aks.internal
curl -sSL "http://${HOSTNAME_PORT}/api/v1/nodes/${NODE_NAME}/proxy/configz"
For all three remediations: システムに基づいて、kubeletサービスを再起動し、ステータスを確認してください。
systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l
