Ansichten:
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.