Auf dieser Seite werden verschiedene Methoden zum Sichern von Gateways in Google Kubernetes Engine (GKE) beschrieben. Weitere Informationen finden Sie unter Gateway sichern.
Funktionsweise der Gateway-Sicherheit
Ein Gateway stellt das Frontend eines Load-Balancers dar. Es gibt zwei Pfade, die Sie mit Authentifizierung und Verschlüsselung für Gateways sichern können:
- Client zum Gateway: Traffic stammt vom Client und wird am Gateway beendet.
- Gateway zu Pod: Traffic stammt vom Gateway und wird bei den Backend-Pods beendet.
Das folgende Diagramm zeigt beide Pfade zur Authentifizierung und Verschlüsselung von Gateways:
Auf dieser Seite wird beschrieben, wie Sie den Pfad vom Client zum Gateway mit Zertifikaten sichern, die auf der Gateway-Ebene hochgeladen und verwaltet werden. Informationen zum Schützen des Traffics zwischen Gateway und Pod finden Sie unter Load Balancer zu Anwendungstraffic mit TLS sichern.
Vorteile
Mit der Gateway API können Sie eine Anwendung auf verschiedene Arten sichern, wodurch Sie verschiedene Rollen für die Interaktion mit dem Gateway nutzen können.
Wer besitzt die Domain- und TLS-Konfiguration?
Das Gateway API-Modell führt zwei Rollen ein, die Gateways verwenden oder bereitstellen:
- Platform Admin: Der Clusteroperator ist der Administrator für ganze Cluster. Sie verwalten Richtlinien, Netzwerkzugriff und Anwendungsberechtigungen.
- Anwendungsentwickler: Der Anwendungsentwickler definiert die Anwendungs- und Dienstkonfiguration.
Das folgende Diagramm zeigt die Felder in den Gateway- und HTTPRoute-Ressourcen, die die TLS- und Domaininhaberschaft für die zwei Anwendungen store-v1
und store-v2
beeinflussen.
Im Diagramm steuert der Cluster-Operator:
- Welche Domains Anwendungsentwickler für ihre Anwendungen in den einzelnen Namespaces verwenden können.
- Die spezifischen Zertifikate, die unterschiedliche Domains beenden
- Vom Gateway-Inhaber bereitgestellte Zertifikate
- Gibt an, ob HTTPRoute-Inhaber eigene Hostnamen für die Zertifikatgenerierung angeben können
Anwendungsentwickler steuern den Hostnamen, der ein Zertifikat generiert, wenn die Gateway-Definition dies zulässt.
Durch diese Trennung von operativen Aufgaben können Anwendungsentwickler ihre eigene HTTPRoute für eine besser verteilte Kontrolle bereitstellen und verwalten. Außerdem können Plattformadministratoren Gateways für die zentrale Steuerung von TLS bereitstellen und verwalten.
Gateway-Zertifikatsverwaltung
Sie können Gateways mit folgenden Methoden sichern:
Wenn Sie Kubernetes Secrets oder SslCertificate
-Ressourcen der Compute Engine API verwenden, können Sie maximal 15 Zertifikate an ein einzelnes Gateway anhängen.
Mit Certificate Manager können Sie bis zu 10.000.000 Zertifikate pro Load-Balancer anhängen, wenn Sie eine Kontingenterhöhung anfordern.
Weitere Informationen zu Google Cloud-SSL-Zertifikaten finden Sie unter Überblick über SSL-Zertifikate.
Kubernetes-Secrets
Die Gateway API-Spezifikation unterstützt Kubernetes-Secrets zum Speichern und Anhängen von Zertifikaten an Gateways. Mithilfe des Felds Gateway.spec.tls.certificateRef
können Sie ein oder mehrere Kubernetes-Secrets mit einem Gateway verknüpfen.
Durch Kubernetes-Secrets gesicherte Gateway-Ressourcen haben folgende Anforderungen:
- Sie müssen den Gateway-Listener
port
undprotocol
auf443
undHTTPS
festlegen. - Sie müssen das Feld
listener.tls.mode
aufTerminate
setzen. - Sie müssen auf die TLS-Anmeldedaten im Block
listeners.tls
verweisen.
Für Gateway-Ressourcen, die mit Kubernetes-Secrets gesichert werden, gelten die folgenden Einschränkungen:
- Nur HTTPS-Listener beenden Traffic mit den angegebenen Secrets. Sie können jedoch mehrere Listener mit einer Mischung aus HTTP und HTTPS angeben.
- Wenn Sie mehrere Listener auf einem Gateway haben, die HTTPS verwenden, muss jeder Listener einen eindeutigen Hostnamen haben.
- Sie können nur einen einzelnen Hostnamen weglassen oder für jedes Port/Protokoll-Paar
*
zuweisen. - Sie können nur ein Standardzertifikat für jedes Gateway zuweisen.
Informationen zum Sichern eines Gateways mit einem Kubernetes-Secret finden Sie unter Gateway mit einem Kubernetes-Secret sichern.
SSL-Zertifikate
SSL-Zertifikate speichern und senden Zertifikate an Load-Balancer.
Ein SSL-Zertifikat kann entweder selbstverwaltet oder von Google verwaltet sein.
Weitere Informationen zu den Unterschieden zwischen diesen beiden Zertifikatstypen finden Sie unter SSL-Zertifikate-Übersicht.
Der Umfang und der Speicherort des SSL-Zertifikats müssen mit dem Umfang und Speicherort des Gateways übereinstimmen, das es verwendet.
Ein globales SSL-Zertifikat kann beispielsweise nicht von einem regionalen Gateway verwendet werden.
In der folgenden Tabelle sind die Bereichs- und Standortanforderungen der SSL-Zertifikate für jede GatewayClass aufgeführt:
GatewayClass | SSL-Zertifikatsbereich | Standort des SSL-Zertifikats |
---|---|---|
gke-l7-global-external-managed |
Globales SSL-Zertifikat | Global |
gke-l7-global-external-managed-mc |
||
gke-l7-gxlb |
||
gke-l7-gxlb-mc |
||
gke-l7-regional-external-managed |
Regionales SSL-Zertifikat | Muss dieselbe Region sein wie das Gateway |
gke-l7-regional-external-managed-mc |
||
gke-l7-rilb |
||
gke-l7-rilb-mc |
Informationen zum Sichern eines Gateways mit einem SSL-Zertifikat finden Sie unter Gateway mit einem SSL-Zertifikat sichern.
Zertifikatmanager
Zertifikatmanager ist ein zentraler Speicherort zum Verwalten Ihrer TLS-Zertifikate.
Wenn Sie ein Gateway mit Zertifikatmanager sichern, können Sie Folgendes tun:
- Verweisen Sie direkt auf ein
CertificateMap
von einem Gateway, das Sie in Zertifikatmanager erstellt haben. - Verwalten Sie Ihre eigenen Zertifikate.
- Verbessern Sie die Weitergabezeiten von Zertifikaten.
- Verwenden Sie Cloud Monitoring für abgelaufene Zertifikate und die Weitergabe von Zertifikaten.
Zertifikatmanager unterstützt sowohl selbstverwaltete als auch von Google verwaltete SSL-Zertifikate.
Informationen zum Sichern eines Gateways mithilfe des Zertifikatsmanagers finden Sie unter Gateway mit Zertifikatsmanager sichern.
GatewayClass TLS-Support
In der folgenden Tabelle werden die TLS-Beendigungsmethoden beschrieben, die von GKE für jede GatewayClass unterstützt werden:
GatewayClass |
gke-l7-global-external-managed gke-l7-global-external-managed-mc gke-l7-gxlb gke-l7-gxlb-mc
|
gke-l7-regional-external-managed gke-l7-regional-external-managed-mc gke-l7-rilb gke-l7-rilb-mc
|
---|---|---|
Client-zu-Gateway-TLS | Unterstützt | Unterstützt |
Gateway zu Backend-TLS | Unterstützt | Unterstützt |
Google Cloud-Zertifikatsressource | Globales SSL-ZertifikatCertificateMap |
Regionales SSL-Zertifikat |
Selbstverwaltete Zertifikate mit Kubernetes-Secrets | Unterstützt | Unterstützt |
Selbstverwaltete Compute Engine-SSL-Zertifikate | Unterstützt | Unterstützt |
Von Google verwaltete Compute Engine-SSL-Zertifikate | Unterstützt | Nicht unterstützt |
Selbstverwaltete SSL-Zertifikate mit Certificate Manager | Unterstützt | Unterstützt |
Von Google verwaltete SSL-Zertifikate mit Zertifikatmanager | Unterstützt | Unterstützt |