Auf dieser Seite wird beschrieben, wie Sie den zertifikatbasierten Zugriff (Certificate-Based Access, CBA) für Ihre Webanwendungen aktivieren. Mit CBA können Sie den Zugriff von vertrauenswürdigen Geräten auf Unternehmenswebanwendungen schützen, die auf ausgeführt werden Cloud de Confiance by S3NS.
Übersicht
Bei CBA für Webanwendungen werden die Funktionen für den kontextsensitiven Zugriff und Cloud de Confiance die Netzwerke von Chrome Enterprise Premium verwendet, um den Zugriff mit gegenseitiger TLS (Mutual TLS, mTLS) zu schützen. Im Folgenden sind die Hauptkomponenten aufgeführt, mit denen Sie CBA für Webanwendungen aktivieren können:
- Access Context Manager: Mit Access Context Manager können Sie Zugriffsebenen erstellen, die Zertifikate erfordern, um den Zugriff auf Webanwendungen zu bestimmen.
- Identity-Aware Proxy (IAP): Authentifiziert den Nutzerzugriff auf Webanwendungen.
- Cloud de Confiance HTTPS-Load-Balancer: Bietet gegenseitige Authentifizierung (mTLS) zwischen Nutzern und Webanwendungen.
- Chrome Enterprise-Richtlinie: Bietet gegenseitige Authentifizierung (mTLS) zwischen Nutzern und Webanwendungen, wenn der Chrome-Browser verwendet wird.
Hinweis
Prüfen Sie, ob Sie eine aktuelle Version der Google Cloud CLI haben, indem Sie den folgenden Befehl ausführen:
gcloud components update
mTLS für den externen HTTPS-Load-Balancer einrichten
Folgen Sie der Anleitung, um den externen HTTPS-Load-Balancer einzurichten. Notieren Sie sich den Namen des erstellten Ziel-HTTPS-Proxys, da Sie ihn in einem späteren Schritt benötigen.
Vertrauenskonfiguration erstellen
Erstellen Sie eine Vertrauenskonfiguration, um Ihre Art der Public-Key-Infrastruktur (PKI) darzustellen.
Für diese Aufgabe benötigen Sie die
certificatemanager.trustconfigs.create
Berechtigung für das Ziel Cloud de Confiance projekt.
Sie können eine Vertrauenskonfiguration mit einem von Google ausgestellten Zertifikat (Methode 1), mit Ihrem eigenen Zertifikat (Methode 2) oder mit einem selbst signierten Zertifikat mit Endpunktprüfung (Methode 3) erstellen.
1. Methode
Verwenden Sie ein von Google ausgestelltes Zertifikat, um eine Vertrauenskonfiguration zu erstellen.
- Führen Sie die Schritte aus, um eine Stamm-Zertifizierungsstelle zu erstellen.
Rufen Sie den Inhalt der PEM-Datei ab:
gcloud privateca roots describe ROOT_CA_ID \ --pool=POOL_ID \ --location=CA_LOCATION \ --format='value(pemCaCertificates)'Ersetzen Sie Folgendes:
Rufen Sie das Root-Zertifikat ab, das im Feld
pemCaCertificateszurückgegeben wird. Das Zertifikat ist der String zwischen denBEGIN CERTIFICATEundEND CERTIFICATEMarkierungen und enthält beide Markierungen.Speichern Sie das Root-Zertifikat im PEM-Format in einer Datei.
Erstellen Sie eine Vertrauenskonfiguration:
Legen Sie die folgenden Umgebungsvariablen fest:
ROOT_PEM_FILE=TRUST_ANCHOR_PATH INT_PEM_FILE1=IM_CERT_PATH INT_PEM_FILE2=SECOND_IM_CERT_PATHErsetzen Sie Folgendes:
- TRUST_ANCHOR_PATH: Der Pfad zu Ihrem PEM-codierten Trust-Anchor.
- IM_CERT_PATH: Der Pfad zu Ihrem PEM-codierten Zwischenzertifikat.
- SECOND_IM_CERT_PATH: Der Pfad zu Ihrem zweiten PEM-codierten Zwischenzertifikat.
Bereiten Sie den Inhalt der YAML-Datei für die Vertrauenskonfiguration vor:
ROOT=$(cat ROOT_PEM_FILE | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g') INT_1=$(cat INT_PEM_FILE1 | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g') INT_2=$(cat INT_PEM_FILE2 | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')Erstellen Sie die YAML-Datei für die Vertrauenskonfiguration:
cat << EOF > trust_config.yaml name: "${TRUST_CONFIG_NAME?}" trustStores: - trustAnchors: - pemCertificate: "${ROOT?}" intermediateCas: - pemCertificate: "${INT_1?}" - pemCertificate: "${INT_2?}" EOFDiese YAML-Datei definiert eine Vertrauenskonfiguration mit dem Namen
TRUST_CONFIG_NAME. Die Vertrauenskonfiguration enthält einen Trust Store mit dem Root-Zertifikat und zwei Zwischenzertifikaten.Importieren Sie die Vertrauenskonfiguration in den Cloud de Confiance by S3NS Zertifikatsmanager:
gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME \ --project=GCP_PROJECT \ --source=${PWD?}/trust_config.yamlErsetzen Sie Folgendes:
- TRUST_CONFIG_NAME: Der Name Ihrer Vertrauenskonfiguration.
- GCP_PROJECT: Die Cloud de Confiance by S3NS Projekt-ID.
Wenn Sie eine komplexere Struktur mit Zwischen-CAs bereitstellen, die von der Root-CA signiert wurden, fügen Sie Ihre Zwischen-CAs als intermediateCAs hinzu.
2. Methode
Verwenden Sie Ihre eigene PKI-Bereitstellung mit vorhandenen Zertifikaten, um eine Vertrauenskonfiguration zu erstellen.
Bei dieser Art von Vertrauenskonfiguration wird ein einfacher Trust Store mit einem einzelnen Trust-Anchor angenommen, der ein Root-Zertifikat darstellt. Es werden keine Zwischenzertifikate angegeben.
Erstellen Sie eine Vertrauenskonfiguration:
Legen Sie die folgenden Umgebungsvariablen fest:
ROOT_PEM_FILE=TRUST_ANCHOR_PATH INT_PEM_FILE1=IM_CERT_PATH INT_PEM_FILE2=SECOND_IM_CERT_PATHErsetzen Sie Folgendes:
- TRUST_ANCHOR_PATH: Der Pfad zu Ihrem PEM-codierten Trust-Anchor.
- IM_CERT_PATH: Der Pfad zu Ihrem PEM-codierten Zwischenzertifikat.
- SECOND_IM_CERT_PATH: Der Pfad zu Ihrem zweiten PEM-codierten Zwischenzertifikat.
Bereiten Sie den Inhalt der YAML-Datei für die Vertrauenskonfiguration vor:
ROOT=$(cat ROOT_PEM_FILE | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g') INT_1=$(cat INT_PEM_FILE1 | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g') INT_2=$(cat INT_PEM_FILE2 | sed 's/^[ ]*//g' | tr '\n' $ | sed 's/\$/\\n/g')Erstellen Sie die YAML-Datei für die Vertrauenskonfiguration:
cat << EOF > trust_config.yaml name: "${TRUST_CONFIG_NAME?}" trustStores: - trustAnchors: - pemCertificate: "${ROOT?}" intermediateCas: - pemCertificate: "${INT_1?}" - pemCertificate: "${INT_2?}" EOFDiese YAML-Datei definiert eine Vertrauenskonfiguration mit dem Namen
TRUST_CONFIG_NAME. Die Vertrauenskonfiguration enthält einen Trust Store mit dem Root-Zertifikat und zwei Zwischenzertifikaten.Importieren Sie die Vertrauenskonfiguration in den Cloud de Confiance by S3NS Zertifikatsmanager:
gcloud certificate-manager trust-configs import TRUST_CONFIG_NAME \ --project=GCP_PROJECT \ --source=${PWD?}/trust_config.yamlErsetzen Sie Folgendes:
- TRUST_CONFIG_NAME: Der Name Ihrer Vertrauenskonfiguration.
- GCP_PROJECT: Die Cloud de Confiance by S3NS Projekt-ID.
3. Methode
Wenn Sie einen Chrome-Browser verwenden und ein selbst signiertes Zertifikat mit Endpunktprüfung verwenden möchten, folgen Sie der Anleitung in diesem Abschnitt.
Folgen Sie der Anleitung, um die Endpunktprüfung für Ihre Organisation bereitzustellen. Bei der Endpunktprüfung wird automatisch ein von Google ausgestelltes, selbst signiertes Zertifikat auf Ihren Geräten bereitgestellt. Sie müssen keine Vertrauenskonfiguration erstellen.
TLS-Richtlinie erstellen, um mTLS auf Ihrem externen Load-Balancer zu aktivieren
Wenn Sie Methode 3 verwendet haben, können Sie diesen Schritt überspringen.
Für diese Aufgabe benötigen Sie die folgenden Berechtigungen:
certificatemanager.trustconfigs.usefür die Vertrauenskonfiguration, die Sie für dieseServerTlsPolicynetworksecurity.serverTlsPolicies.createfür das Ziel Cloud de Confiance projekt
Erstellen Sie die YAML-Datei für die Server-TLS-Richtlinie:
cat << EOF > server_tls_policy.yaml name: "SERVER_TLS_POLICY_NAME" mtlsPolicy: clientValidationMode: ALLOW_INVALID_OR_MISSING_CLIENT_CERT clientValidationTrustConfig: projects/GCP_PROJECT/locations/global/trustConfigs/TRUST_CONFIG_NAME EOFErsetzen Sie Folgendes:
- SERVER_TLS_POLICY_NAME: Der Name der Server-TLS-Richtlinie.
- GCP_PROJECT: Die Cloud de Confiance by S3NS Projekt-ID.
- TRUST_CONFIG_NAME: Die Vertrauenskonfiguration, die Sie in einem vorherigen Schritt erstellt haben.
Informationen zu den Optionen für die Clientvalidierung für
clientValidationModefinden Sie unter MTLS-Clientvalidierungsmodi.Importieren Sie die YAML-Datei für die Server-TLS-Richtlinie in das Cloud de Confiance by S3NS Projekt:
gcloud network-security server-tls-policies import ${SERVER_TLS_POLICY_NAME?} \ --project=GCP_PROJECT \ --source=${PWD?}/server_tls_policy.yaml \ --location=globalErsetzen Sie GCP_PROJECT durch die Cloud de Confiance by S3NS Projekt-ID.
Nachdem Sie eine TLS-Richtlinie erstellt haben, können Sie sie nicht mehr ändern. Wenn Sie Änderungen an einer vorhandenen TLS-Richtlinie vornehmen möchten, löschen Sie die vorhandene TLS-Richtlinie und erstellen Sie eine neue.
TLS-Richtlinie an eine Ziel-HTTPS-Richtlinie anhängen
Für diese Aufgabe benötigen Sie die compute.targetHttpsProxies.get Berechtigung für das Ziel Cloud de Confiance projekt.
Exportieren Sie Ihren vorhandenen Ziel-HTTPS-Proxy in eine lokale Datei:
gcloud compute target-https-proxies export TARGET_HTTPS_PROXY_NAME \ --project=GCP_PROJECT \ --global \ --destination=${PWD?}/xlb-mtls-target-proxy.yamlErsetzen Sie Folgendes:
- TARGET_HTTPS_PROXY_NAME: Der Ziel-HTTPS-Proxy.
- GCP_PROJECT: Die Cloud de Confiance by S3NS Projekt-ID.
Hängen Sie die
ServerTlsPolicyan die Konfiguration des Ziel-HTTPS-Proxys an:Für diese Aufgabe benötigen Sie die folgenden Berechtigungen:
networksecurity.serverTlsPolicies.usefür dieServerTlsPolicy, die Sie für den Ziel-HTTPS-Proxy erstellt habencompute.targetHttpsProxies.updatefür das Ziel Cloud de Confiance projekt
echo "serverTlsPolicy: //networksecurity.googleapis.com/projects/GCP_PROJECT/locations/global/serverTlsPolicies/SERVER_TLS_POLICY_NAME" >> xlb-mtls-target-proxy.yamlErsetzen Sie Folgendes:
- GCP_PROJECT: Die Cloud de Confiance by S3NS Projekt-ID.
- SERVER_TLS_POLICY_NAME: Die Server-TLS-Richtlinie.
Aktualisieren Sie den Ziel-HTTPS-Proxy, indem Sie die neue Konfiguration aus der lokalen Datei importieren:
gcloud compute target-https-proxies import TARGET_HTTPS_PROXY_NAME \ --project=GCP_PROJECT \ --global \ --source=${PWD?}/xlb-mtls-target-proxy.yamlErsetzen Sie Folgendes:
- TARGET_HTTPS_PROXY_NAME: Der Ziel-HTTPS-Proxy.
- GCP_PROJECT: Die Cloud de Confiance by S3NS Projekt-ID.
Zugriffsebene erstellen, die Zertifikate erfordert
Console
- Folgen Sie der Anleitung, um eine benutzerdefinierte Zugriffsebene zu erstellen.
Fügen Sie Ihrer benutzerdefinierten Zugriffsebene den folgenden Ausdruck hinzu:
Wenn Sie eine Vertrauenskonfiguration erstellt haben (Methode 1 oder Methode 2), fügen Sie den folgenden Ausdruck in das Feld Bedingungen Ihrer benutzerdefinierten Zugriffsebene ein, um bei der Authentifizierung die PKI-Attestierungsbindung zu verwenden:
certIsPkiAttested(origin, ["TLS_POLICY_FULL_RESOURCE_PATH1", "TLS_POLICY_FULL_RESOURCE_PATH2", …]) == trueDabei sind TLS_POLICY_FULL_RESOURCE_PATH1 und TLS_POLICY_FULL_RESOURCE_PATH2 die Pfade, die mehrere Vertrauenskonfigurationen darstellen:
certificatemanager.googleapis.com/projects/GCP_PROJECT/locations/global/trustConfigs/TRUST_CONFIG_NAME.Sie müssen mindestens einen Pfad zur Vertrauenskonfiguration angeben.
Ersetzen Sie Folgendes:
- GCP_PROJECT: Die Cloud de Confiance by S3NS Projekt-ID.
- TRUST_CONFIG_NAME: Der Name Ihrer Vertrauenskonfiguration.
Wenn Sie ein von Google ausgestelltes, selbst signiertes Zertifikat verwendet haben (Methode 3), fügen Sie den folgenden Ausdruck in das Feld Bedingungen Ihrer benutzerdefinierten Zugriffsebene ein, um bei der Authentifizierung die Zertifikatsbindung zu verwenden:
certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE
gcloud
Wenn Sie eine Vertrauenskonfiguration erstellt haben (Methode 1 oder Methode 2), führen Sie den folgenden Befehl aus, um eine benutzerdefinierte Zugriffsebene zu erstellen, die bei der Authentifizierung die PKI-Attestierungsbindung verwendet:
gcloud access-context-manager levels create ACCESS_LEVEL_NAME \
--title=TITLE \
--custom-level-spec=FILE \
--description=DESCRIPTION \
--policy=POLICY_NAME
Ersetzen Sie Folgendes:
- ACCESS_LEVEL_NAME: Ein eindeutiger Name für die Zugriffsebene.
- TITLE: Ein für Nutzer lesbarer Titel.
FILE: Eine YAML-Datei, die den folgenden Ausdruck enthält:
certIsPkiAttested(origin, ["TLS_POLICY_FULL_RESOURCE_PATH1", "TLS_POLICY_FULL_RESOURCE_PATH2", …]) == trueDabei sind TLS_POLICY_FULL_RESOURCE_PATH1 und TLS_POLICY_FULL_RESOURCE_PATH2 die Pfade, die mehrere Vertrauenskonfigurationen darstellen:
certificatemanager.googleapis.com/projects/GCP_PROJECT/locations/global/trustConfigs/TRUST_CONFIG_NAME.Sie müssen mindestens einen Pfad zur Vertrauenskonfiguration angeben.
Ersetzen Sie Folgendes:
- GCP_PROJECT: Die Cloud de Confiance by S3NS Projekt-ID.
- TRUST_CONFIG_NAME: Der Name Ihrer Vertrauenskonfiguration.
DESCRIPTION: Eine ausführliche Beschreibung der Zugriffsebene.
POLICY_NAME: Die Zugriffsrichtlinie Ihrer Organisation.
Wenn Sie keine Vertrauenskonfiguration haben, weil Sie ein selbst signiertes Zertifikat mit Endpunktprüfung verwenden (Methode 3), fügen Sie Ihrer benutzerdefinierten Zugriffsebene den folgenden Ausdruck hinzu:
certificateBindingState(origin, device) == CertificateBindingState.CERT_MATCHES_EXISTING_DEVICE
Zertifikatbasierten Zugriff mit Identity-Aware Proxy (IAP) erzwingen
In der CBA-Architektur für Webanwendungen erzwingt IAP richtlinienbasiert den Zugriff, um Ihre Webanwendungen vor nicht vertrauenswürdigen Geräten zu schützen.
Führen Sie die folgenden Schritte aus, um IAP zu aktivieren und die CBA-Richtlinie zu konfigurieren:
- Wenn Sie IAP noch nicht eingerichtet haben, folgen Sie der Anleitung um IAP einzurichten.
- Rufen Sie IAP auf, um die zuvor erstellte Zugriffsebene anzuhängen:
IAP aufrufen - Wählen Sie die Ressource aus, die Sie mit CBA schützen möchten, und klicken Sie dann auf Einstellungen.
- Geben Sie im Feld Zugriffsebenen den Namen der erstellten Zugriffsebene ein.
Informationen zum Konfigurieren einer CBA-Richtlinie in IAP mit der Google Cloud CLI finden Sie in der Dokumentation zur Google Cloud CLI.
Browser so konfigurieren, dass das Zertifikat automatisch ausgewählt wird
Wenn Ihr Browser das Zertifikat automatisch auswählen soll, wenn der Zugriff bestimmt wird, führen Sie die Schritte für Ihren Browser aus.
Chrome
Konfigurieren Sie die Chrome-Richtlinie AutoSelectCertificateForURLs so, dass Chrome das richtige Zertifikat während des mTLS-Handshakes verwendet.
Prüfen Sie, ob der Chrome-Browser von der Chrome-Verwaltung über die Cloud oder von Windows-Gruppenrichtlinien verwaltet wird:
- Windows, macOS, Linux: Folgen Sie der Anleitung, um ein verwaltetes Chrome-Profil einzurichten.
- Chrome: Registrieren Sie das Gerät für das Unternehmen.
Fügen Sie die Richtlinie
AutoSelectCertificateForUrlshinzu:- Rufen Sie in der Admin-Konsole Geräte > Chrome > Einstellungen > Nutzer- und Browsereinstellungen > Clientzertifikate auf.
- Wählen Sie eine Organisation aus.
- Fügen Sie eine
AutoSelectCertificateForUrls-Richtlinie für die URL Ihrer Webanwendung und die Informationen zum Root-Zertifikat hinzu.
Weitere Informationen finden Sie in der Dokumentation zum Richtlinienschema. Im Folgenden sehen Sie eine Beispielkonfiguration für eine Richtlinie, bei der das Zertifikat aus der Endpunktprüfung verwendet wird:
{
"pattern":"https://[*.].mysite.com",
"Filter":{
"ISSUER":{
"CN":"Google Endpoint Verification"
}
}
}
Safari
Konfigurieren Sie die Identitätseinstellung:
- Öffnen Sie die Schlüsselbundverwaltung und wählen Sie Alle Objekte aus.
- Wählen Sie das Zertifikat aus, das Sie konfigurieren möchten.
- Klicken Sie auf Datei > Neue Identitätseinstellung.
- Geben Sie die URL ein und klicken Sie auf Hinzufügen.
Dadurch wird ein neuer Eintrag für die Identitätseinstellung in Ihrem Schlüsselbund erstellt, den Sie aktualisieren können.
Edge
Legen Sie die AutoSelectCertificateForUrls Edge-Richtlinie gemäß der Anleitung
in der Edge-Dokumentation fest.