Steuern Sie den Netzwerkzugriff auf den API Clusterserver-Endpunkt - Amazon EKS

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 (RBAC). Dieser Endpunkt wird als öffentlicher Cluster-Endpunkt bezeichnet. Außerdem gibt es einen privaten Cluster-Endpunkt. Weitere Informationen zum privaten Cluster-Endpunkt finden Sie im folgenden AbschnittPrivater Cluster-Endpunkt.

IPv6Format 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.

AWS

EKSÖffentlicher/privater Cluster-Endpunkt: eks-cluster.region.api.aws

AWS GovCloud (US)

EKSÖffentlicher/privater Cluster-Endpunkt: eks-cluster.region.api.aws

Amazon Web Services in China

EKSÖffentlicher/privater Cluster-Endpunkt: eks-cluster.region.api.amazonwebservices.com.cn

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.

IPv4Cluster-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:

AWS

EKSöffentlicher/privater Cluster-Endpunkt eks-cluster.region.eks.amazonaws.com

AWS GovCloud (US)

EKSöffentlicher/privater Cluster-Endpunkt eks-cluster.region.eks.amazonaws.com

Amazon Web Services in China

EKSöffentlicher/privater Cluster-Endpunkt eks-cluster.region.api.amazonwebservices.com.cn

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

  • Dies ist das Standardverhalten für neue EKS Amazon-Cluster.

  • Kubernetes APIAnfragen, die aus Ihrem Cluster stammen VPC (z. B. die Kommunikation zwischen Knoten und Kontrollebene), verlassen VPC zwar das Netzwerk von Amazon, aber nicht das Netzwerk von Amazon.

  • Auf Ihren API Cluster-Server kann über das Internet zugegriffen werden. Sie können optional die CIDR Blöcke einschränken, die auf den öffentlichen Endpunkt zugreifen können. Wenn Sie den Zugriff auf bestimmte CIDR Blöcke beschränken, wird empfohlen, auch den privaten Endpunkt zu aktivieren oder sicherzustellen, dass die von Ihnen angegebenen CIDR Blöcke die Adressen, die Knoten und Fargate enthalten Pods (falls Sie sie verwenden) greifen Sie von dort auf den öffentlichen Endpunkt zu.

Aktiviert

Aktiviert

  • Kubernetes APIAnfragen innerhalb Ihres Clusters VPC (z. B. die Kommunikation zwischen Knoten und Kontrollebene) verwenden den privaten VPC Endpunkt.

  • Auf Ihren API Cluster-Server kann über das Internet zugegriffen werden. Sie können optional die CIDR Blöcke einschränken, die auf den öffentlichen Endpunkt zugreifen können.

Disabled

Aktiviert

  • Der gesamte Datenverkehr zu Ihrem API Clusterserver muss aus dem Netzwerk Ihres Clusters VPC oder einem verbundenen Netzwerk stammen.

  • Es gibt keinen öffentlichen Zugriff auf Ihren API Server über das Internet. Alle kubectl Befehle müssen aus dem Netzwerk VPC oder einem verbundenen Netzwerk stammen. Die Verbindungsoptionen finden Sie unter Zugriff auf einen Server, der nur privat ist API.

  • Der API Serverendpunkt des Clusters wird von öffentlichen DNS Servern in eine private IP-Adresse von aufgelöstVPC. In der Vergangenheit konnte der Endpunkt nur innerhalb von aufgelöst werdenVPC.

    Wenn Ihr Endpunkt nicht zu einer privaten IP-Adresse innerhalb eines vorhandenen Clusters aufgelöst wird, können Sie: VPC

    • Den öffentlichen Zugriff aktivieren und ihn dann erneut deaktivieren. Sie müssen dies nur einmal für einen Cluster tun und der Endpunkt wird von diesem Punkt an zu einer privaten IP-Adresse aufgelöst.

    • Aktualisieren Sie Ihren Cluster.

Sie können Ihren API Clusterserver-Endpunktzugriff mit dem AWS Management Console oder ändern AWS CLI.

Konfigurieren Sie den Endpunktzugriff — AWS Konsole

  1. Öffnen Sie die EKSAmazon-Konsole.

  2. Wählen Sie den Namen des Clusters aus, um Ihre Cluster-Informationen anzuzeigen.

  3. Wählen Sie auf der Registerkarte Networking (Netzwerk) die Option Update (Aktualisieren) aus.

  4. 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.

  5. 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.

  6. (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 Adressen enthalten. 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.

  7. 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.

  1. 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 festlegenendpointPublicAccess=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 Adressen enthalten. 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": [] } }
  2. Ü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).