Ansichten:
Profilanwendbarkeit: Stufe 1
Deaktivieren Sie öffentliche IP-Adressen für Clusterknoten, sodass sie nur private IP-Adressen haben. Private Knoten sind Knoten ohne öffentliche IP-Adressen.
Das Deaktivieren öffentlicher IP-Adressen auf Clusterknoten beschränkt den Zugriff auf nur interne Netzwerke und zwingt Angreifer dazu, zunächst Zugriff auf das lokale Netzwerk zu erlangen, bevor sie versuchen, die zugrunde liegenden Kubernetes-Hosts zu kompromittieren.

Auswirkung

Um Private Nodes zu aktivieren, muss der Cluster auch mit einem privaten Master-IP-Bereich konfiguriert und IP-Aliasing aktiviert sein.
Private Nodes haben keinen ausgehenden Zugriff auf das öffentliche Internet. Wenn Sie ausgehenden Internetzugriff für Ihre privaten Nodes bereitstellen möchten, können Sie Cloud NAT verwenden oder Ihr eigenes NAT-Gateway verwalten.

Prüfung

Überprüfen Sie, ob die folgenden aktiviert: true sind:
export CLUSTER_NAME=<your cluster name>
aws eks describe-cluster --name ${CLUSTER_NAME} --query \
"cluster.resourcesVpcConfig.endpointPrivateAccess"
aws eks describe-cluster --name ${CLUSTER_NAME} --query \
"cluster.resourcesVpcConfig.endpointPublicAccess"
Überprüfen Sie, ob das Folgende nicht null ist und mit der entsprechenden IP festgelegt ist und nicht 0.0.0.0/0:
export CLUSTER_NAME=<your cluster name>
aws eks describe-cluster --name ${CLUSTER_NAME} --query \
"cluster.resourcesVpcConfig.publicAccessCidrs"
Hinweis
Hinweis
Zusätzlich sollten Sie überprüfen, ob die Knoten in privaten Subnetzen bereitgestellt sind und keine öffentliche IP-Adresse zugewiesen ist. Die privaten Subnetze sollten nicht mit einer Routentabelle verbunden sein, die eine Route zu einem Internet-Gateway (IGW) hat.

Wiederherstellung

Um öffentliche IP-Adressen für EKS-Knotengruppenknoten mithilfe der AWS CLI zu deaktivieren, müssen Sie beim Ausführen von create-nodegroup Folgendes sicherstellen:
  • Verwenden Sie private Subnetze (die keine öffentlichen IPs automatisch zuweisen).
  • Setzen Sie associatePublicIpAddress auf false:
"NetworkInterfaces": [{ "AssociatePublicIpAddress": false }]
Sie können den Zugriff auf den Endpunkt der Steuerungsebene einschränken, indem Sie:
aws eks update-cluster-config \
--name $CLUSTER_NAME \
--region $REGION_CODE \
--resources-vpc-config endpointPublicAccess=false,endpointPrivateAccess=true
Dadurch wird der API-Server privat, aber die Node-IPs werden nicht beeinflusst.
Um sicherzustellen, dass Knoten nur private IPs verwenden:
  • Verwenden Sie aws eks create-nodegroup nur mit privaten Subnetzen, oder
  • Verwenden Sie eine Startvorlage mit AssociatePublicIpAddress=false.