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 Dienst
type:LoadBalancer erstellt wurden.
HinweisStandardmäßig werden von Google verwaltete SSL-Zertifikate nicht erstellt, wenn eine
Ingress-Ressource definiert wird.
|
Auswirkung
Von 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 von
type: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 Eingänge 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 von verwalteten Zertifikaten zurück, für die
<example_certificate> im selben Namespace wie das Ingress existieren sollte.Wiederherstellung
Wenn Dienste von
type: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 diesen Anweisungen.
