Auf dieser Seite werden Beispiele für die Konfiguration von gegenseitigem TLS (mTLS) für einen globalen externen Anwendungs-Load-Balancer gezeigt.
Hinweise
- Lesen Sie die Übersicht über externen Application Load Balancer.
- Übersicht über gegenseitiges TLS
- Richten Sie gegenseitiges TLS mit von Nutzern bereitgestellten Zertifikaten oder gegenseitiges TLS mit einer privaten CA ein.
- Globale externe Anwendungs-Load-Balancer unterstützen verschiedene Backend-Dienste und -Buckets. Prüfen Sie, ob Sie einen globalen externen Anwendungs-Load-Balancer mit einem der folgenden unterstützten Back-Ends eingerichtet haben:
mTLS für den Load-Balancer einrichten
Damit die gegenseitige TLS-Authentifizierung funktioniert, müssen Sie nach dem Einrichten eines Load-Balancers den HTTPS-Ziel-Proxy mithilfe der Ressource ServerTLSPolicy
aktualisieren.
Prüfen Sie, ob Sie die Ressource
ServerTLSPolicy
bereits erstellt haben. Eine Anleitung dazu finden Sie unter Netzwerksicherheitsressourcen erstellen.Verwenden Sie den Befehl
gcloud compute target-https-proxies list
, um alle Ziel-HTTPS-Proxys in Ihrem Projekt aufzulisten:gcloud compute target-https-proxies list
Notieren Sie sich den Namen des Ziel-HTTPS-Proxys, um die Ressource
ServerTLSPolicy
anzuhängen. Dieser Name wird in den folgenden Schritten alsTARGET_HTTPS_PROXY_NAME
bezeichnet.Verwenden Sie den Befehl
gcloud compute target-https-proxies export
, um die Konfiguration eines Ziel-HTTPS-Proxys in eine Datei zu exportieren:gcloud compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --global \ --destination=xlb-mtls-target-proxy.yaml
Listet alle
ServerTlsPolicies
-Ressourcen am angegebenen Speicherort des aktuellen Projekts auf.Console
- Rufen Sie in der Google Cloud Console die Seite Clientauthentifizierung auf.
- Es werden alle
ServerTlsPolicies
-Ressourcen angezeigt.
gcloud
Verwenden Sie den Befehl
gcloud network-security server-tls-policies list
, um alle Ressourcen der Clientauthentifizierung (ServerTlsPolicies
) aufzulisten:gcloud network-security server-tls-policies list \ --location=global
Notieren Sie sich den Namen der
ServerTlsPolicies
-Ressource, um mTLS zu konfigurieren. Dieser Name wird im nächsten Schritt alsSERVER_TLS_POLICY_NAME
bezeichnet.Um die
ServerTlsPolicy
-Ressourcendateixlb-mtls-target-proxy.yaml
anzuhängen, verwenden Sie den folgenden Befehl. Ersetzen SiePROJECT_ID
durch die ID Ihres Google Cloud-Projekts.echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/PROJECT_ID/locations/global/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> xlb-mtls-target-proxy.yaml
Verwenden Sie den Befehl
gcloud compute target-https-proxies import
, um die Konfiguration eines Ziel-HTTPS-Proxys aus einer Datei zu importieren:gcloud compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --global \ --source=xlb-mtls-target-proxy.yaml
Benutzerdefinierte mTLS-Header hinzufügen
Wenn mTLS aktiviert ist, können Sie mit benutzerdefinierten Anfrageheadern Informationen zur mTLS-Verbindung an Backend-Dienste übergeben. Sie können auch das Logging aktivieren, damit mTLS-Verbindungsfehler in den Logs erfasst werden.
Verwenden Sie den Befehl
gcloud compute backend-services list
, um alle Backend-Dienste im Projekt aufzulisten:gcloud compute backend-services list
Notieren Sie sich den Namen des Backend-Dienstes, um benutzerdefinierte Header und Logging zu aktivieren. Dieser Name wird im folgenden Schritt als
BACKEND_SERVICE
bezeichnet.Verwenden Sie zum Aktualisieren des Backend-Dienstes den Befehl
gcloud compute backend-services update
:gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=1 \ --custom-request-header='X-Client-Cert-Present:{client_cert_present}' \ --custom-request-header='X-Client-Cert-Chain-Verified:{client_cert_chain_verified}' \ --custom-request-header='X-Client-Cert-Error:{client_cert_error}' \ --custom-request-header='X-Client-Cert-Hash:{client_cert_sha256_fingerprint}' \ --custom-request-header='X-Client-Cert-Serial-Number:{client_cert_serial_number}' \ --custom-request-header='X-Client-Cert-SPIFFE:{client_cert_spiffe_id}' \ --custom-request-header='X-Client-Cert-URI-SANs:{client_cert_uri_sans}' \ --custom-request-header='X-Client-Cert-DNSName-SANs:{client_cert_dnsname_sans}' \ --custom-request-header='X-Client-Cert-Valid-Not-Before:{client_cert_valid_not_before}' \ --custom-request-header='X-Client-Cert-Valid-Not-After:{client_cert_valid_not_after}'
Nächste Schritte
- Gegenseitiges TLS für einen klassischen Anwendungs-Load-Balancer einrichten
- Gegenseitiges TLS mit privater CA einrichten
- Gegenseitiges TLS mit vom Nutzer bereitgestellten Zertifikaten einrichten
- Logs zur mTLS-Clientzertifikatvalidierung ansehen
- Load-Balancing-Einrichtung bereinigen