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"
HinweisZusä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
associatePublicIpAddressauf 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-nodegroupnur mit privaten Subnetzen, oder -
Verwenden Sie eine Startvorlage mit
AssociatePublicIpAddress=false.
