Ansichten:
Profilanwendbarkeit: Stufe 1
Aktivieren Sie den privaten Zugriff auf den Endpunkt, um den Zugriff auf die Steuerungsebene des Clusters auf eine Positivliste autorisierter IPs zu beschränken.
Autorisierte Netzwerke sind eine Möglichkeit, einen eingeschränkten Bereich von IP-Adressen festzulegen, die Zugriff auf die Steuerungsebene Ihres Clusters haben dürfen. Kubernetes Engine verwendet sowohl Transport Layer Security (TLS) als auch Authentifizierung, um sicheren Zugriff auf die Steuerungsebene Ihres Clusters aus dem öffentlichen Internet zu ermöglichen. Dies bietet Ihnen die Flexibilität, Ihren Cluster von überall aus zu verwalten; Sie möchten den Zugriff jedoch möglicherweise weiter auf einen Satz von IP-Adressen beschränken, die Sie kontrollieren. Sie können diese Einschränkung festlegen, indem Sie ein autorisiertes Netzwerk angeben.
Das Einschränken des Zugriffs auf ein autorisiertes Netzwerk kann zusätzliche Sicherheitsvorteile für Ihren Container-Cluster bieten, einschließlich:
  • Besserer Schutz vor Angriffen von außen: Autorisierte Netzwerke bieten eine zusätzliche Sicherheitsebene, indem sie den externen Zugriff auf einen von Ihnen festgelegten Satz von Adressen beschränken, wie z. B. solche, die von Ihrem Standort stammen. Dies hilft, den Zugriff auf Ihren Cluster im Falle einer Sicherheitslücke im Authentifizierungs- oder Autorisierungsmechanismus des Clusters zu schützen.
  • Besserer Schutz vor Insider-Angriffen: Autorisierte Netzwerke helfen, Ihren Cluster vor versehentlichem Verlust von Master-Zertifikaten aus den Räumlichkeiten Ihres Unternehmens zu schützen. Zertifikate, die von außerhalb von Azure-virtuellen Maschinen und außerhalb der autorisierten IP-Bereiche (zum Beispiel von Adressen außerhalb Ihres Unternehmens) verwendet werden, wird der Zugriff weiterhin verweigert.
Hinweis
Hinweis
Standardmäßig ist der private Endpunktzugriff deaktiviert.

Auswirkung

Beim Implementieren des Endpoint Private Access achten Sie darauf, dass alle gewünschten Netzwerke auf der Zulassungsliste (Whitelist) stehen, um ein versehentliches Blockieren des externen Zugriffs auf die Steuerungsebene Ihres Clusters zu verhindern.
Einschränkungen: IP-autorisierte Bereiche können nicht auf den privaten API-Server-Endpunkt angewendet werden, sie gelten nur für den öffentlichen API-Server. Verfügbarkeitszonen werden derzeit für bestimmte Regionen unterstützt. Einschränkungen des Azure Private Link-Dienstes gelten für private Cluster. Keine Unterstützung für Azure DevOps von Microsoft gehostete Agents mit privaten Clustern. Erwägen Sie die Verwendung von selbstgehosteten Agents. Für Kunden, die das Azure Container Registry mit privaten AKS aktivieren müssen, muss das Container Registry-Virtualnetzwerk mit dem Agent-Cluster-Virtualnetzwerk verbunden sein.

Prüfung

Überprüfen Sie, ob das Folgende enabled: true 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 es 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.
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.
Prüfen Sie, ob die folgenden nicht null sind:
az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} 
--query "apiServerAccessProfile.authorizedIpRanges"
Dieser Befehl fragt die authorizedIpRanges-Eigenschaft innerhalb des apiServerAccessProfile Ihres AKS-Clusters ab. Die Ausgabe listet die IP-Bereiche auf, die berechtigt sind, auf den API-Server des AKS-Clusters über das Internet zuzugreifen. Wenn die Liste leer ist, bedeutet dies, dass es keine Einschränkungen gibt und jede IP auf den API-Server des AKS-Clusters zugreifen kann, vorausgesetzt, andere Netzwerk- und Sicherheitskonfigurationen erlauben es.

Wiederherstellung

Durch das Aktivieren des privaten Endpunktzugriffs auf den Kubernetes-API-Server bleibt die gesamte Kommunikation zwischen Ihren Knoten und dem API-Server innerhalb Ihres VPC. Sie können auch die IP-Adressen einschränken, die von außerhalb auf Ihren API-Server zugreifen können, oder den Internetzugang zum API-Server vollständig deaktivieren. Mit diesem Wissen können Sie Ihr Cluster entsprechend mit der AKS-CLI aktualisieren, um sicherzustellen, dass der private Endpunktzugriff aktiviert ist.
Wenn Sie sich entscheiden, auch den Zugriff auf öffentliche Endpunkte zu aktivieren, sollten Sie eine Liste zulässiger CIDR-Blöcke konfigurieren, was zu einem eingeschränkten Zugriff aus dem Internet führt. Wenn Sie keine CIDR-Blöcke angeben, kann der öffentliche API-Server-Endpunkt standardmäßig Anfragen von allen IP-Adressen empfangen und verarbeiten, indem er auf ['0.0.0.0/0'] zurückgreift.
Zum Beispiel würde der folgende Befehl privaten Zugriff auf die Kubernetes-API sowie begrenzten öffentlichen Zugriff über das Internet von einer einzelnen IP-Adresse (unter Berücksichtigung des /32 CIDR-Suffixes) ermöglichen.