Überlegungen zur Amazon-EKS-Sicherheitsgruppe - Amazon EKS

Überlegungen zur Amazon-EKS-Sicherheitsgruppe

In den folgenden Abschnitten werden die empfohlenen oder mindestens erforderlichen Sicherheitsgruppeneinstellungen für die Cluster-, Steuerebene- und Knotensicherheitsgruppen Ihres Clusters beschrieben. Diese Überlegungen hängen davon ab, welche Kubernetes-Version und Amazon-EKS-Plattformversion Sie verwenden.

Cluster-Sicherheitsgruppe

Amazon-EKS-Cluster erstellen ab Kubernetes-Version 1.14 und Plattformversion eks.3 beim Erstellen eine Cluster-Sicherheitsgruppe. Dies geschieht auch, wenn ein Cluster einer früheren Version auf diese Kubernetes-Version und Plattform-Version aktualisiert wird. Eine Cluster-Sicherheitsgruppe ist so konzipiert, dass der gesamte Datenverkehr von der Steuerungsebene und verwalteten Knotengruppen frei fließen kann. Durch Zuweisen der Cluster-Sicherheitsgruppe zu den von Amazon EKS erstellten Elastic-Network-Schnittstellen, die es der Steuerebene ermöglichen, mit den verwalteten Knotengruppen-Instances zu kommunizieren, müssen Sie keine komplexen Sicherheitsgruppenregeln konfigurieren, um diese Kommunikation zuzulassen. Jede Instance oder Netzwerkschnittstelle, der dieser Sicherheitsgruppe zugewiesen ist, kann mit dieser Sicherheitsgruppe frei mit anderen Ressourcen kommunizieren.

Sie können nach einer Cluster-Sicherheitsgruppe für Ihren Cluster im AWS Management Console im Abschnitt Networking (Netzwerk) des Clusters oder mit dem folgenden AWS CLI-Befehl suchen:

aws eks describe-cluster --name <cluster_name> --query cluster.resourcesVpcConfig.clusterSecurityGroupId

Es wird empfohlen, die Clustersicherheitsgruppe allen vorhandenen und zukünftigen Knotengruppen hinzuzufügen. Weitere Informationen finden Sie unter Sicherheitsgruppen für Ihre VPC im Amazon VPC Benutzerhandbuch. Von Amazon EKS verwaltete Knotengruppen werden automatisch für die Verwendung der Cluster-Sicherheitsgruppe konfiguriert.

Protocol (Protokoll) Ports Quelle Zielbereich

Empfohlener eingehender Datenverkehr

Alle

Alle

Selbst

Empfohlener ausgehender Datenverkehr

Alle

Alle

0.0.0.0/0

Einschränken des Clusterverkehrs

Wenn Sie die offenen Ports zwischen der Steuerebene und den Knoten begrenzen müssen, kann die Standardclustersicherheitsgruppe so geändert werden, dass nur die folgenden erforderlichen Mindestports zugelassen werden. Die erforderlichen Mindestports sind dieselben wie in früheren Amazon-EKS-Versionen.

Protocol (Protokoll) Port Quelle Zielbereich
Minimum an eingehendem Datenverkehr TCP

443

Cluster-Sicherheitsgruppe
Minimum an eingehendem Datenverkehr* TCP

10250

Cluster-Sicherheitsgruppe
Minimum an ausgehendem Datenverkehr TCP

443

Cluster-Sicherheitsgruppe

Minimum an ausgehendem Datenverkehr* TCP

10250

Cluster-Sicherheitsgruppe

*Alle Protokolle und Ports, die Ihre Knoten für die Kommunikation zwischen Knoten verwenden sollen, sollten bei Bedarf enthalten sein. Knoten benötigen auch ausgehenden Internetzugriff auf die Amazon-EKS-APIs für die Cluster-Introspektion und die Knotenregistrierung zum Startzeitpunkt oder dass Sie die erforderlichen erforderlichen Einstellungen in Private Cluster implementiert haben. Um Container-Images abzurufen, benötigen sie Zugriff auf Amazon S3, Amazon-ECR-APIs und alle anderen Container-Registrys, aus denen sie Bilder abrufen müssen, wie z. B. DockerHub. Weitere Informationen finden Sie unter AWS-IP-Adressbereiche in der AWS Allgemeinen Referenz.

Steuerebene- und Knotensicherheitsgruppen

Bei Amazon-EKS-Clustern, die vor Kubernetes-Version 1.14 und Plattformversion eks.3 erstellt wurde, wird die Kommunikation von der Steuerebene zum Arbeitsknoten konfiguriert, indem manuell eine Sicherheitsgruppe für die Steuerebene erstellt und diese Sicherheitsgruppe beim Erstellen des Clusters angegeben wird. Bei der Clustererstellung wurde diese Sicherheitsgruppe dann an die von Amazon EKS erstellten Netzwerkschnittstellen angehängt, die die Kommunikation zwischen der Steuerungsebene und den Knoten ermöglichen. Diese Netzwerkschnittstellen haben Amazon EKS <cluster name> in ihrer Beschreibung.

Anmerkung

Wenn Sie die API direkt oder ein Tool wie AWS CloudFormation zum Erstellen Ihres Clusters verwendet und keine Sicherheitsgruppe angegeben haben, wurde die Standardsicherheitsgruppe für die VPC auf die kontoübergreifenden Netzwerkschnittstellen der Steuerebene angewendet.

Sie können die Steuerungsebene-Sicherheitsgruppe für den Cluster im AWS Management Console im Abschnitt Networking (Netzwerk) des Clusters (aufgeführt als Additional security groups (Zusätzliche Sicherheitsgruppen) oder mit dem folgenden AWS CLI-Befehl überprüfen:

aws eks describe-cluster --name <cluster_name> --query cluster.resourcesVpcConfig.securityGroupIds

Wenn Sie Knoten mit der AWS CloudFormation-Vorlage im Erste Schritte mit Amazon EKS-Walkthrough starten, ändert AWS CloudFormation die Sicherheitsgruppe der Steuerebene, um die Kommunikation mit den Knoten zu ermöglichen. Amazon EKS empfiehlt dringend, für jede Steuerebene (eine für jeden Cluster) eine dedizierte Sicherheitsgruppe zu verwenden. Wenn Sie eine Steuerungsebene-Sicherheitsgruppe mit anderen Amazon-EKS-Clustern oder Ressourcen gemeinsam verwenden, können Sie Verbindungen zu diesen Ressourcen blockieren oder unterbrechen.

Die Sicherheitsgruppe für die Knoten und die Sicherheitsgruppe für die Kommunikation der Steuerebene mit den Knoten wurden eingerichtet, um die Kommunikation zu privilegierten Ports in den Knoten zu verhindern. Wenn Ihre Anwendungen zusätzlichen eingehenden oder ausgehenden Zugriff aus der Steuerebene oder den Knoten erfordern, müssen Sie diese Regeln zu den Sicherheitsgruppen hinzufügen, die mit Ihrem Cluster verknüpft sind. Weitere Informationen finden Sie unter Sicherheitsgruppen für Ihre VPC im Amazon VPC Benutzerhandbuch.

Anmerkung

Zum Ermöglichen von Proxy-Funktionen auf privilegierten Ports oder zum Ausführen der CNCF-Einhaltungstests müssen Sie die Sicherheitsgruppen für Ihre Steuerebene und die Arbeitsknoten bearbeiten. Die Sicherheitsgruppe auf der Seite der Knoten muss eingehenden Zugriff für Ports 0-65535 von der Steuerebene zulassen, und die Kontrollebene muss ausgehenden Zugriff auf die Knoten auf Ports 0-65535 erlauben.

Sicherheitsgruppe der Steuerebene
Protocol (Protokoll) Port-Bereich Quelle Zielbereich
Minimum an eingehendem Datenverkehr

TCP

443

Alle Sicherheitsgruppe des Knotens

Wenn Cluster endpoint private access (Cluster-Endpunkt für privaten Zugriff) aktiviert ist: Alle Sicherheitsgruppen, die API-Server-Client-Datenverkehr generieren (z. B. kubectl-Befehle auf einem Bastion-Host in der VPC Ihres Clusters).

Empfohlener eingehender Datenverkehr

TCP

443

Alle Sicherheitsgruppe des Knotens

Wenn Cluster endpoint private access (Cluster-Endpunkt für privaten Zugriff) aktiviert ist: Alle Sicherheitsgruppen, die API-Server-Client-Datenverkehr generieren (z. B. kubectl-Befehle auf einem Bastion-Host in der VPC Ihres Clusters).

Minimum an ausgehendem Datenverkehr

TCP

10250

Alle Sicherheitsgruppe des Knotens

Empfohlener ausgehender Datenverkehr

TCP

1025-65535

Alle Sicherheitsgruppe des Knotens

Knotensicherheitsgruppe
Protocol (Protokoll) Port-Bereich Quelle Zielbereich
Minimum an eingehendem Datenverkehr (von anderen Knoten)

Jedes Protokoll, von dem Sie erwarten, dass Ihre Knoten für die Kommunikation zwischen Knoten verwenden

Alle Ports, die Ihre Knoten für die Kommunikation zwischen Knoten verwenden sollen

Alle Sicherheitsgruppe des Knotens

Minimum an eingehendem Datenverkehr (von der Steuerebene)

TCP

10250

Sicherheitsgruppe der Steuerebene

Empfohlener eingehender Datenverkehr

Alle

TCP

Alle

443, 1025-65535

Alle Sicherheitsgruppe des Knotens

Sicherheitsgruppe der Steuerebene

Minimum an ausgehendem Datenverkehr*

TCP

443

Sicherheitsgruppe der Steuerebene

Empfohlener ausgehender Datenverkehr

Alle

Alle

0.0.0.0/0

*Knoten benötigen außerdem Zugriff auf die Amazon-EKS-APIs für die Cluster-Introspektion und die Knotenregistrierung zum Startzeitpunkt entweder über das Internet oder VPC-Endpunkte. Um Container-Abbilder abrufen zu können, benötigen sie Zugriff auf die Amazon-S3- und Amazon-ECR-APIs (und alle anderen Container-Registrys, wie z. B. DockerHub). Weitere Informationen finden Sie unter AWSIP-Adressbereiche in der Allgemeinen AWS-Referenz und Private Cluster.

Auf eine und nur eine der Ihren Knoten zugeordneten Sicherheitsgruppen sollte das folgende Tag angewendet werden: Weitere Informationen zum Tagging finden Sie unter Arbeiten mit Tags in der Konsole.

Schlüssel Value

kubernetes.io/cluster/<cluster-name>

owned