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.
HinweisStandardmäßig ist der öffentliche Endpunkt deaktiviert.
|
Auswirkung
Konfigurieren Sie den EKS-Cluster-Endpunkt als privat.
-
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.
-
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
HinweisWeitere detaillierte Informationen finden Sie im Dokumentationslink zum EKS-Cluster-Endpunkt
im Abschnitt Referenzen.
|
