Ansichten:
Profilanwendbarkeit: Stufe 1 - Worker-Knoten
Das Deaktivieren der anonymen Authentifizierung für den Kubelet-Server erhöht die Sicherheit der Kubernetes-Arbeitsknoten, indem sichergestellt wird, dass alle Anfragen eine Authentifizierung erfordern, wodurch das Risiko unbefugten Zugriffs gemindert wird.

Auswirkung

Anonyme Anfragen werden abgelehnt.

Prüfung

Prüfmethode 1:
Wichtig
Wichtig
Kubelets können entweder über eine Konfigurationsdatei oder über Befehlszeilenargumente konfiguriert werden. Befehlszeilenargumente haben Vorrang vor denselben Parametern, die in der Konfigurationsdatei festgelegt sind. Bei der Überprüfung von Kubelet-Konfigurationen sollten Sie sowohl die Befehlszeilenargumente als auch die Einträge in der Konfigurationsdatei überprüfen.
  1. SSH in jeden Knoten und führen Sie den folgenden Befehl aus, um Details des aktiven Kubelet-Prozesses, einschließlich der Befehlszeilenargumente, anzuzeigen:
    ps -ef | grep kubelet
  2. Identifizieren Sie den Speicherort der Konfigurationsdatei aus der Ausgabe, die durch das Argument --config angegeben wird. Sehen Sie die Datei an mit:
    sudo less /path/to/kubelet-config.json
  3. Überprüfen Sie, ob die anonyme Authentifizierung deaktiviert ist:
    • Überprüfen Sie das Befehlszeilenargument:
      --anonymous-auth=false
    • Stellen Sie in der Kubelet-Konfigurationsdatei sicher, dass die folgende Einstellung vorhanden ist:
              {
              "authentication": {
              "anonymous": {
              "enabled": false
              }
              }
              }
             
Prüfmethode 2:
Überprüfen Sie die laufende Konfiguration eines Kubelet über den "/configz"-Endpunkt der Kubernetes-API mit kubectl:
  1. Entdecken Sie alle Knoten in Ihrem Cluster:
    kubectl get nodes
  2. Starten Sie einen Proxy mit kubectl auf einem lokalen Port (z. B. 8080):
    kubectl proxy --port=8080
  3. Führen Sie in einem separaten Terminal den folgenden Befehl für jeden Knoten aus:
    export NODE_NAME=my-node-name
          curl http://localhost:8080/api/v1/nodes/${NODE_NAME}/proxy/configz
  4. Überprüfen Sie, ob die anonyme Authentifizierung deaktiviert ist, indem Sie im API-Antwort nach Folgendem suchen:
          {
          "authentication": {
          "anonymous": {
          "enabled": false
          }
          }
          }
         

Wiederherstellung

Methode 1:
  1. {SS} in jeden Knoten.
  2. Wenn Sie eine Kubelet-Konfigurationsdatei verwenden, suchen Sie die Datei:
    ps -ef | grep kubelet
  3. Zeigen Sie die Konfigurationsdatei an mit:
    sudo less /path/to/kubelet-config.json
  4. Deaktivieren Sie die anonyme Authentifizierung, indem Sie den folgenden Parameter in der Konfigurationsdatei festlegen:
          {
          "authentication": {
          "anonymous": {
          "enabled": false
          }
          }
          }
         
  5. Starten Sie den Kubelet-Dienst neu und überprüfen Sie seinen Status (Beispiel für Systeme, die systemd verwenden):
    systemctl daemon-reload
          systemctl restart kubelet.service
          systemctl status kubelet -l
Methode 2:
  1. Wenn Sie Befehlszeilenargumente verwenden, bearbeiten Sie die Kubelet-Dienstdatei, um Folgendes einzuschließen:
    --anonymous-auth=false
  2. Für Systeme, die systemd verwenden, bearbeiten Sie die Datei unter /etc/systemd/system/kubelet.service.d/10-kubelet-args.conf.
  3. Starten Sie den Kubelet-Dienst neu und überprüfen Sie seinen Status (Beispiel für Systeme, die systemd verwenden):
    systemctl daemon-reload
          systemctl restart kubelet.service
          systemctl status kubelet -l