Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Steuern Sie den Netzwerkzugriff auf den API Clusterserver-Endpunkt
Dieses Thema hilft Ihnen, den privaten Zugriff für Ihre EKS Amazon-Cluster zu aktivieren Kubernetes APIServerendpunkt und Einschränkung oder vollständige Deaktivierung des öffentlichen Zugriffs über das Internet.
Wenn Sie einen neuen Cluster erstellen, EKS erstellt Amazon einen Endpunkt für den verwalteten Kubernetes APIServer, den Sie für die Kommunikation mit Ihrem Cluster verwenden (mit Kubernetes Verwaltungstools wiekubectl
). Standardmäßig ist dieser API Serverendpunkt im Internet öffentlich, und der Zugriff auf den API Server wird mithilfe einer Kombination aus AWS Identity and Access Management (IAM) und nativem Zugriff gesichert Kubernetes Rollenbasierte Zugriffskontrolle
IPv6
Format des Cluster-Endpunkts
EKSerstellt einen eindeutigen Dual-Stack-Endpunkt im folgenden Format für neue IPv6
Cluster, die nach Oktober 2024 erstellt wurden. Ein IPv6Cluster ist ein Cluster, den Sie IPv6
in der IP-Familie (ipFamily
) -Einstellung des Clusters auswählen.
Anmerkung
Der Dual-Stack-Cluster-Endpunkt wurde im Oktober 2024 eingeführt. Weitere Informationen zu IPv6
Clustern finden Sie unterErfahren Sie mehr über IPv6 Adressen für Cluster, pods, und Dienste. Cluster, die vor Oktober 2024 erstellt wurden, verwenden stattdessen das folgende Endpunktformat.
IPv4
Cluster-Endpunktformat
EKSerstellt einen eindeutigen Endpunkt im folgenden Format für jeden Cluster, den Sie IPv4
in der IP-Familie (ipFamily) -Einstellung des Clusters auswählen:
Anmerkung
Vor Oktober 2024 verwendeten IPv6
Cluster dieses Endpunktformat ebenfalls. Bei diesen Clustern haben sowohl der öffentliche als auch der private Endpunkt nur IPv4
Adressen, die von diesem Endpunkt aus aufgelöst wurden.
Privater Cluster-Endpunkt
Sie können den privaten Zugriff auf den aktivieren Kubernetes APIServer, sodass die gesamte Kommunikation zwischen Ihren Knoten und dem API Server in Ihrem bleibtVPC. Sie können die IP-Adressen einschränken, die über das Internet auf Ihren API Server zugreifen können, oder den Internetzugang zum API Server vollständig deaktivieren.
Anmerkung
Weil dieser Endpunkt für Kubernetes APIServer und kein herkömmlicher AWS PrivateLink Endpunkt für die Kommunikation mit einem AWS API, er erscheint nicht als Endpunkt in der VPC Amazon-Konsole.
Wenn Sie den privaten Endpunktzugriff für Ihren Cluster aktivieren, EKS erstellt Amazon in Ihrem Namen eine private gehostete Route 53-Zone und ordnet sie der Ihres Clusters zuVPC. Diese privat gehostete Zone wird von Amazon EKS verwaltet und erscheint nicht in den Route 53-Ressourcen Ihres Kontos. Damit die privat gehostete Zone den Datenverkehr ordnungsgemäß an Ihren API Server weiterleiten kann, VPC müssen Sie über eine entsprechende enableDnsSupport
Einstellung verfügen enableDnsHostnames
und die für Sie festgelegten DHCP Optionen VPC müssen AmazonProvidedDNS
in der Liste der Domainnamenserver enthalten sein. true
Weitere Informationen finden Sie unter DNSSupport für Sie aktualisieren VPC im VPCAmazon-Benutzerhandbuch.
Sie können Ihre Anforderungen für den Zugriff auf API Serverendpunkte definieren, wenn Sie einen neuen Cluster erstellen, und Sie können den API Serverendpunktzugriff für einen Cluster jederzeit aktualisieren.
Ändern des Cluster-Endpunktzugriffs
Verwenden Sie die Verfahren in diesem Abschnitt, um den Endpunktzugriff für einen bestehenden Cluster zu ändern. Die folgende Tabelle zeigt die unterstützten Kombinationen für den Zugriff auf API Serverendpunkte und das zugehörige Verhalten.
Endpunkt für öffentlichen Zugriff | Endpunkt für privaten Zugriff | Behavior |
---|---|---|
Enabled |
Disabled |
|
Aktiviert |
Aktiviert |
|
Disabled |
Aktiviert |
|
Sie können Ihren API Clusterserver-Endpunktzugriff mit dem AWS Management Console oder ändern AWS CLI.
Konfigurieren Sie den Endpunktzugriff — AWS Konsole
-
Öffnen Sie die EKSAmazon-Konsole
. -
Wählen Sie den Namen des Clusters aus, um Ihre Cluster-Informationen anzuzeigen.
-
Wählen Sie auf der Registerkarte Networking (Netzwerk) die Option Update (Aktualisieren) aus.
-
Wählen Sie für den privaten Zugriff aus, ob Sie den privaten Zugriff für Ihren Cluster aktivieren oder deaktivieren möchten Kubernetes APIServerendpunkt. Wenn Sie den privaten Zugriff aktivieren, Kubernetes APIAnfragen, die aus Ihrem Cluster stammen, VPC verwenden den privaten VPC Endpunkt. Sie müssen den privaten Zugriff aktivieren, um den öffentlichen Zugriff zu deaktivieren.
-
Wählen Sie für den öffentlichen Zugriff aus, ob Sie den öffentlichen Zugriff für Ihren Cluster aktivieren oder deaktivieren möchten Kubernetes APIServerendpunkt. Wenn Sie den öffentlichen Zugriff deaktivieren, ist der Ihres Clusters Kubernetes APIDer Server kann nur Anfragen innerhalb des Clusters empfangenVPC.
-
(Optional) Wenn Sie den öffentlichen Zugriff aktiviert haben, können Sie angeben, welche Adressen aus dem Internet mit dem öffentlichen Endpunkt kommunizieren können. Wählen Sie Erweiterte Einstellungen aus. Geben Sie einen CIDR Block ein, z. B.
203.0.113.5/32
. Der Block darf keine reservierten Adressenenthalten. Sie können zusätzliche Blöcke eingeben, indem Sie Quelle hinzufügen auswählen. Es gibt eine maximale Anzahl von CIDR Blöcken, die Sie angeben können. Weitere Informationen finden Sie unter Servicekontingente von Amazon EKS und Fargate anzeigen und verwalten. Wenn Sie keine Blöcke angeben, empfängt der Endpunkt des öffentlichen API Servers Anfragen von allen ( 0.0.0.0/0
) IP-Adressen. Wenn Sie den Zugriff auf Ihren öffentlichen Endpunkt mithilfe von CIDR Blöcken einschränken, wird empfohlen, dass Sie auch den privaten Endpunktzugriff aktivieren, sodass Knoten und Fargate Pods (wenn Sie sie verwenden) kann mit dem Cluster kommunizieren. Wenn der private Endpunkt nicht aktiviert ist, müssen Ihre öffentlichen CIDR Zugriffs-Endpunktquellen die Ausgangsquellen von Ihrem VPC enthalten. Wenn Sie beispielsweise einen Knoten in einem privaten Subnetz haben, der über ein NAT Gateway mit dem Internet kommuniziert, müssen Sie die ausgehende IP-Adresse des NAT Gateways als Teil eines zulässigen CIDR Blocks auf Ihrem öffentlichen Endpunkt hinzufügen. -
Wählen Sie zum Abschluss Update (Aktualisieren) aus.
Endpunktzugriff konfigurieren - AWS CLI
Führen Sie die folgenden Schritte mit der AWS CLI Version 1.27.160
oder höher aus. Sie können Ihre aktuelle Version mit aws --version
überprüfen. Informationen zur Installation oder zum AWS CLI Upgrade von finden Sie unter Installation von AWS CLI.
-
Aktualisieren Sie Ihren API Clusterserver-Endpunktzugriff mit dem folgenden AWS CLI Befehl. Verwenden Ihre eigenen Werte für den Clusternamen und den gewünschten Endpunkt. Wenn Sie dies festlegen
endpointPublicAccess=true
, können Sie (optional) einen einzelnen CIDR Block oder eine durch Kommas getrennte Liste von CIDR Blöcken für eingeben.publicAccessCidrs
Die Blöcke dürfen keine reservierten Adressenenthalten. Wenn Sie CIDR Blöcke angeben, empfängt der öffentliche API Server-Endpunkt nur Anfragen von den aufgelisteten Blöcken. Es gibt eine maximale Anzahl von CIDR Blöcken, die Sie angeben können. Weitere Informationen finden Sie unter Servicekontingente von Amazon EKS und Fargate anzeigen und verwalten. Wenn Sie den Zugriff auf Ihren öffentlichen Endpunkt mithilfe von CIDR Blöcken einschränken, wird empfohlen, dass Sie auch den privaten Endpunktzugriff aktivieren, sodass Knoten und Fargate Pods (wenn Sie sie verwenden) kann mit dem Cluster kommunizieren. Wenn der private Endpunkt nicht aktiviert ist, müssen Ihre öffentlichen CIDR Zugriffs-Endpunktquellen die Ausgangsquellen von Ihrem VPC enthalten. Wenn Sie beispielsweise einen Knoten in einem privaten Subnetz haben, der über ein NAT Gateway mit dem Internet kommuniziert, müssen Sie die ausgehende IP-Adresse des NAT Gateways als Teil eines zulässigen CIDR Blocks auf Ihrem öffentlichen Endpunkt hinzufügen. Wenn Sie keine CIDR Blöcke angeben, empfängt der öffentliche API Server-Endpunkt Anfragen von allen IP-Adressen (0.0.0.0/0). Anmerkung
Der folgende Befehl ermöglicht privaten und öffentlichen Zugriff von einer einzigen IP-Adresse für den API Serverendpunkt aus. Ersetzen
203.0.113.5/32
mit einem einzelnen CIDR Block oder einer durch Kommas getrennten Liste von CIDR Blöcken, auf die Sie den Netzwerkzugriff beschränken möchten.aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --resources-vpc-config endpointPublicAccess=true,publicAccessCidrs="203.0.113.5/32",endpointPrivateAccess=true
Eine Beispielausgabe sieht wie folgt aus.
{ "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "InProgress", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }
-
Überwachen Sie den Status des aktualisierten Endpunktzugriffs mit dem folgenden Befehl unter Verwendung des Cluster-Namens und der Update-ID, die vom vorherigen Befehl zurückgegeben wurden. Ihre Aktualisierung ist abgeschlossen, wenn als Status
Successful
angezeigt wird.aws eks describe-update \ --region region-code \ --name my-cluster \ --update-id e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000
Eine Beispielausgabe sieht wie folgt aus.
{ "update": { "id": "e6f0905f-a5d4-4a2a-8c49-EXAMPLE00000", "status": "Successful", "type": "EndpointAccessUpdate", "params": [ { "type": "EndpointPublicAccess", "value": "true" }, { "type": "EndpointPrivateAccess", "value": "true" }, { "type": "publicAccessCidrs", "value": "[\203.0.113.5/32\"]" } ], "createdAt": 1576874258.137, "errors": [] } }
Zugriff auf einen Server, der nur privat ist API
Wenn Sie den öffentlichen Zugriff für Ihren Cluster deaktiviert haben Kubernetes APIServerendpunkt: Sie können nur von Ihrem Netzwerk VPC oder einem verbundenen Netzwerk aus auf den API Server zugreifen. Hier sind einige mögliche Zugriffswege Kubernetes APIServer-Endpunkt:
- Verbundenes Netzwerk
-
Connect Sie Ihr Netzwerk über ein AWS Transit-Gateway oder eine andere Verbindungsoption VPC mit dem und verwenden Sie dann einen Computer im verbundenen Netzwerk. Sie müssen sicherstellen, dass Ihre Amazon EKS Control Plane-Sicherheitsgruppe Regeln enthält, die eingehenden Datenverkehr über Port 443 von Ihrem verbundenen Netzwerk zulassen.
- Gastgeber bei Amazon EC2 Bastion
-
Sie können eine EC2 Amazon-Instance in einem öffentlichen Subnetz in Ihrem Cluster starten VPC und sich dann über diese Instance SSH anmelden, um
kubectl
Befehle auszuführen. Weitere Informationen finden Sie unter Linux-Bastion-Hosts in AWS. Sie müssen sicherstellen, dass Ihre Amazon EKS Control Plane-Sicherheitsgruppe Regeln enthält, die eingehenden Datenverkehr auf Port 443 von Ihrem Bastion-Host zulassen. Weitere Informationen finden Sie unter EKSAmazon-Sicherheitsgruppenanforderungen für Cluster anzeigen. Achten Sie bei der Konfiguration
kubectl
für Ihren Bastion-Host darauf, AWS Anmeldeinformationen zu verwenden, die bereits der RBAC Konfiguration Ihres Clusters zugeordnet sind, oder fügen Sie den IAMPrincipal, den Ihre Bastion verwenden wird, zur RBAC Konfiguration hinzu, bevor Sie den öffentlichen Zugriff auf Endgeräte entfernen. Weitere Informationen erhalten Sie unter IAMBenutzern und Rollen Zugriff auf Kubernetes gewähren APIs und Nicht autorisiert oder Zugriff verweigert (kubectl). - AWS Cloud9 IDE
-
AWS Cloud9 ist eine cloudbasierte integrierte Entwicklungsumgebung (IDE), mit der Sie Ihren Code nur mit einem Browser schreiben, ausführen und debuggen können. Sie können eine AWS Cloud9 IDE in Ihrem Cluster erstellen VPC und diese verwenden, IDE um mit Ihrem Cluster zu kommunizieren. Weitere Informationen finden Sie unter Umgebung in AWS Cloud9 erstellen. Sie müssen sicherstellen, dass Ihre Amazon EKS Control Plane-Sicherheitsgruppe Regeln enthält, die eingehenden Datenverkehr auf Port 443 von Ihrer IDE Sicherheitsgruppe zulassen. Weitere Informationen finden Sie unter EKSAmazon-Sicherheitsgruppenanforderungen für Cluster anzeigen.
Achten Sie bei der Konfiguration
kubectl
für AWS Cloud9 daraufIDE, AWS Anmeldeinformationen zu verwenden, die bereits der RBAC Konfiguration Ihres Clusters zugeordnet sind, oder fügen Sie den IAM Principal, den Sie verwenden IDE werden, zur RBAC Konfiguration hinzu, bevor Sie den öffentlichen Zugriff auf Endgeräte entfernen. Weitere Informationen erhalten Sie unter IAMBenutzern und Rollen Zugriff auf Kubernetes gewähren APIs und Nicht autorisiert oder Zugriff verweigert (kubectl).