Profilanwendbarkeit: Stufe 2
Verschlüsseln Sie den Datenverkehr zu HTTPS-Load-Balancern mit von Google verwalteten
SSL-Zertifikaten.
Die Verschlüsselung des Datenverkehrs zwischen Benutzern und der Kubernetes-Workload
ist grundlegend für den Schutz von über das Web gesendeten Daten. Von Google verwaltete
SSL-Zertifikate werden für Domainnamen bereitgestellt, erneuert und verwaltet. Dies
ist nur für HTTPS-Load-Balancer verfügbar, die mit Ingress-Ressourcen erstellt wurden,
und nicht für TCP/UDP-Load-Balancer, die mit dem Diensttyp
type:LoadBalancer erstellt wurden.
HinweisStandardmäßig werden von Google verwaltete SSL-Zertifikate nicht erstellt, wenn eine
Ingress-Ressource definiert wird.
|
Auswirkung
Google-verwaltete SSL-Zertifikate sind weniger flexibel als Zertifikate, die selbst
erworben und verwaltet werden. Verwaltete Zertifikate unterstützen eine einzelne,
nicht-wildcard-Domain. Selbstverwaltete Zertifikate können Wildcards und mehrere alternative
Namen (SANs) unterstützen.
Prüfung
Verwendung der Befehlszeile:
Identifizieren Sie, ob es öffentlich zugängliche Workloads gibt, die Dienste vom
Typ:LoadBalancer verwenden:kubectl get svc -A -o json | jq '.items[] | select(.spec.type=="LoadBalancer")'
Erwägen Sie die Verwendung von Ingresses anstelle dieser Dienste, um von Google verwaltete
SSL-Zertifikate zu nutzen.
Für die Ingresses innerhalb des Clusters führen Sie den folgenden Befehl aus:
kubectl get ingress -A -o json | jq .items[] | jq '{name: .metadata.name, annotations: .metadata.annotations, namespace: .metadata.namespace, status: .status}'
Der obige Befehl sollte den Namen des Ingress, den Namespace, die Anmerkungen und
den Status zurückgeben. Überprüfen Sie, ob die folgende Anmerkung vorhanden ist, um
sicherzustellen, dass verwaltete Zertifikate referenziert werden:
"annotations": {
...
"networking.gke.io/managed-certificates": "<example_certificate>"
},
Um die Vollständigkeit zu gewährleisten, führen Sie den folgenden Befehl aus, um sicherzustellen,
dass die verwaltete Zertifikatsressource existiert:
kubectl get managedcertificates -A
Der obige Befehl gibt eine Liste verwalteter Zertifikate zurück, für die
<example_certificate> im selben Namespace wie der Ingress existieren sollte.Wiederherstellung
Wenn Dienste des
Typs:LoadBalancer entdeckt werden, ziehen Sie in Betracht, den Dienst durch ein Ingress zu ersetzen.Um das Ingress zu konfigurieren und von Google verwaltete SSL-Zertifikate zu verwenden,
folgen Sie den Anweisungen unter: GKE-Dokumentation.
