ビュー:
プロファイルの適用範囲:レベル1 - ワーカーノード
Kubeletサーバーへの匿名認証を無効にすることで、すべてのリクエストに認証が必要となり、不正アクセスのリスクを軽減し、Kubernetesワーカーノードのセキュリティを向上させることができます。

影響

匿名のリクエストは拒否されます。

監査

監査方法1:
重要
重要
Kubeletは、設定ファイルまたはコマンドライン引数を使用して構成できます。コマンドライン引数は、設定ファイルで設定された同じパラメーターに優先します。Kubeletの構成を監査する場合は、コマンドライン引数と設定ファイルのエントリーの両方を確認してください。
  1. 各ノードにSSH接続し、以下のコマンドを実行してアクティブなKubeletプロセスの詳細、コマンドライン引数を表示してください
    ps -ef | grep kubelet
  2. --config引数で指定された出力から設定ファイルの場所を特定します。以下を使用してファイルを表示します:
    sudo less /path/to/kubelet-config.json
  3. 匿名認証が無効になっていることを確認してください
    • コマンドライン引数を確認してください
      --anonymous-auth=false
    • Kubelet設定ファイルで、次の設定が存在することを確認してください:
       { "authentication": { "anonymous": { "enabled": false } } } 
監査方法2:
kubectlを使用して、Kubernetes APIの"/configz"エンドポイントを介してKubeletの実行構成を確認してください
  1. クラスター内のすべてのノードを検出します:
    kubectl get nodes
  2. ローカルポート(例:8080)でkubectlを使用してプロキシを開始します
    kubectl proxy --port=8080
  3. 別のターミナルで、各ノードに対して以下のコマンドを実行してください
    export NODE_NAME=my-node-name curl http://localhost:8080/api/v1/nodes/${NODE_NAME}/proxy/configz
  4. API 対応において、匿名認証が無効になっていることを確認するには、以下をチェックしてください
     { "authentication": { "anonymous": { "enabled": false } } } 

修復

方法1:
  1. 各ノードにSSH接続してください。
  2. Kubelet 設定ファイルを使用する場合は、ファイルを検索してください
    ps -ef | grep kubelet
  3. 設定ファイルを表示するには、次を使用してください:
    sudo less /path/to/kubelet-config.json
  4. 構成ファイル内の以下のパラメータを設定することで、匿名認証を無効にできます
     { "authentication": { "anonymous": { "enabled": false } } } 
  5. kubeletサービスを再起動し、そのステータスを確認してください(systemdを使用するシステムの例):
    systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l
メソッド2:
  1. コマンドライン引数を使用する場合は、kubeletサービスファイルを編集して以下を含めてください:
    --anonymous-auth=false
  2. systemdを使用するシステムの場合、/ etc/systemd/system/kubelet .service.d / 10-kubelet-args.confにあるファイルを編集してください。
  3. kubeletサービスを再起動し、そのステータスを確認してください(systemdを使用するシステムの例):
    systemctl daemon-reload systemctl restart kubelet.service systemctl status kubelet -l