Profilanwendbarkeit: Stufe 2
Deaktiviert den Zugriff auf die Kubernetes-API von außerhalb des Knotennetzwerks,
wenn er nicht erforderlich ist.
In einem privaten Cluster hat der Masterknoten zwei Endpunkte, einen privaten und
einen öffentlichen Endpunkt. Der private Endpunkt ist die interne IP-Adresse des Masters,
hinter einem internen Lastenausgleich im virtuellen Netzwerk des Masters. Die Knoten
kommunizieren mit dem Master über den privaten Endpunkt. Der öffentliche Endpunkt
ermöglicht den Zugriff auf die Kubernetes-API von außerhalb des virtuellen Netzwerks
des Masters.
Obwohl die Kubernetes-API ein autorisiertes Token erfordert, um sensible Aktionen
durchzuführen, könnte eine Sicherheitslücke potenziell dazu führen, dass Kubernetes
öffentlich mit uneingeschränktem Zugriff exponiert wird. Zusätzlich könnte ein Angreifer
in der Lage sein, den aktuellen Cluster und die Kubernetes-API-Version zu identifizieren
und festzustellen, ob sie anfällig für einen Angriff ist. Sofern nicht erforderlich,
wird das Deaktivieren des öffentlichen Endpunkts dazu beitragen, solche Bedrohungen
zu verhindern, und erfordert, dass sich der Angreifer im virtuellen Netzwerk des Masters
befindet, um einen Angriff auf die Kubernetes-API durchzuführen.
Prüfung
Überprüfen Sie, ob das Folgende
'enabled: false'
ist:export CLUSTER_NAME=<your cluster name> export RESOURCE_GROUP=<your resource group name> az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --query "apiServerAccessProfile.enablePublicFqdn"
Dieser Befehl fragt die
enablePublicFqdn
-Eigenschaft innerhalb des apiServerAccessProfile
Ihres AKS-Clusters ab. Die Ausgabe ist wahr, wenn endpointPublicAccess
aktiviert ist, was den Zugriff auf den AKS-Cluster-API-Server aus dem Internet ermöglicht.
Wenn sie falsch ist, ist endpointPublicAccess
deaktiviert, was bedeutet, dass der API-Server nicht über das Internet zugänglich
ist, was eine übliche Konfiguration für private Cluster ist.Überprüfen Sie, ob das Folgende
'enabled: true'
ist:az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} --query "apiServerAccessProfile.enablePrivateCluster"
Dieser Befehl fragt die
enablePrivateCluster
-Eigenschaft innerhalb des apiServerAccessProfile
Ihres AKS-Clusters ab. Wenn die Ausgabe wahr ist, bedeutet dies, dass endpointPrivateAccess
aktiviert ist und der API-Server des AKS-Clusters so konfiguriert ist, dass er nur
über einen privaten Endpunkt zugänglich ist. Wenn die Ausgabe falsch ist, ist der
Cluster nicht ausschließlich für privaten Zugriff konfiguriert, und der API-Server
könnte je nach anderen Einstellungen über das Internet zugänglich sein.Wiederherstellung
Um einen privaten Endpunkt zu verwenden, erstellen Sie einen neuen privaten Endpunkt
in Ihrem virtuellen Netzwerk und erstellen Sie dann eine Verbindung zwischen Ihrem
virtuellen Netzwerk und einer neuen privaten DNS-Zone.