Ansichten:
Profilanwendbarkeit: Stufe 1
Deaktivieren Sie 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 Load Balancer im VPC Network 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 VPC Networks 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 VPC Network des Masters befindet, um einen Angriff auf die Kubernetes-API durchzuführen.
Hinweis
Hinweis
Standardmäßig ist der öffentliche Endpunkt deaktiviert.

Auswirkung

Konfigurieren Sie den EKS-Cluster-Endpunkt als privat.
  1. Lassen Sie den Endpunkt des Clusters öffentlich und geben Sie an, welche CIDR-Blöcke mit dem Endpunkt des Clusters kommunizieren können. Die Blöcke sind effektiv eine Whitelist von öffentlichen IP-Adressen, die Zugriff auf den Endpunkt des Clusters haben.
  2. Konfigurieren Sie den öffentlichen Zugriff mit einer Reihe von zugelassenen CIDR-Blöcken und setzen Sie den privaten Endpunktzugriff auf Aktiviert. Dies ermöglicht öffentlichen Zugriff von einem bestimmten Bereich öffentlicher IPs, während der gesamte Netzwerkverkehr zwischen den Kubelets (Arbeiter) und der Kubernetes-API durch die bereichsübergreifenden ENIs geleitet wird, die in die Cluster-VPC bereitgestellt werden, wenn die Steuerungsebene bereitgestellt wird.

Prüfung

Überprüfen Sie den Zugriff auf den privaten Endpunkt des Kubernetes-API-Servers:
export CLUSTER_NAME=<your cluster name>
export REGION_CODE=<your region>
aws eks describe-cluster \
--name "${CLUSTER_NAME}" \
--region "${REGION_CODE}" \
--query \
"cluster.resourcesVpcConfig.{endpointPublicAccess:endpointPublicAccess,endpointPrivateAccess:endpointPrivateAccess}" \
--output json
Überprüfen Sie, ob "endpointPrivateAccess": true ist.
Überprüfen Sie, ob "endpointPublicAccess": true ist.

Wiederherstellung

Durch Aktivierung des privaten Endpunktzugriffs auf den Kubernetes-API-Server bleibt die gesamte Kommunikation zwischen Ihren Knoten und dem API-Server innerhalb Ihrer VPC.
Mit diesem Gedanken können Sie Ihren Cluster entsprechend aktualisieren, indem Sie die AWS CLI verwenden, um sicherzustellen, dass der private Endpunktzugriff aktiviert ist.
Zum Beispiel würde der folgende Befehl privaten Zugriff auf die Kubernetes-API ermöglichen und sicherstellen, dass kein öffentlicher Zugriff gestattet ist:
aws eks update-cluster-config \
--region $AWS_REGION \
--name $CLUSTER_NAME \
--resources-vpc-config endpointPrivateAccess=true,endpointPublicAccess=false
Hinweis
Hinweis
Weitere detaillierte Informationen finden Sie im Dokumentationslink zum EKS-Cluster-Endpunkt im Abschnitt Referenzen.