Sicherer Zugriff auf SaaS-Anwendungen

Auf dieser Seite wird beschrieben, wie Sie Ihre SaaS-Anwendungen über das sichere Gateway von Chrome Enterprise Premium schützen.

Ein sicheres Gateway von Chrome Enterprise Premium fungiert als Forward-Proxy, der ein Zero-Trust-Zugriffsframework erzwingt und eine detaillierte, kontextsensitive Kontrolle darüber ermöglicht, wer auf Ihre SaaS-Anwendungen zugreift.

So funktioniert die Sicherung des Zugriffs auf SaaS-Anwendungen

Im Folgenden finden Sie eine allgemeine Übersicht darüber, wie ein sicheres Gateway Ihre SaaS-Anwendungen schützt:

  1. Clientseitige Browsereinstellungen leiten den Anwendungs-Traffic über einen sicheren Gateway-Proxy.
  2. Das sichere Gateway prüft Richtlinien für den kontextsensitiven Zugriff, um den Clientzugriff (Nutzer und Gerät) zu autorisieren.
  3. Wenn der Clientzugriff zulässig ist, leitet das Gateway Traffic an die Anwendung weiter. Dabei werden eindeutige Quell-IP-Adressen verwendet, die diesem Gateway und der Google Cloud -Region zugewiesen sind. Diese zugewiesenen IP-Adressen sind ausschließlich für das von Ihnen erstellte Gateway reserviert und können nicht von anderen Nutzern oder Gateways verwendet werden. Um den Zugriff zu steuern, können Sie diese dedizierten Quell-IP-Adressen einer Zulassungsliste in Ihrer SaaS-Anwendung hinzufügen.

Hinweise

Prüfen Sie vor dem Einrichten des sicheren Gateways, ob Folgendes vorhanden ist:

  • Eine Chrome Enterprise Premium-Lizenz
  • Zugriff auf die Admin-Konsole mit einem Administratorkonto
  • Ein Google Cloud -Projekt mit einem zugewiesenen Rechnungskonto und der folgenden aktivierten API: BeyondCorp API
  • Die folgende IAM-Rolle (Identity and Access Management) wird dem Administrator zugewiesen, der die Einrichtung vornimmt: Projektebene: Cloud BeyondCorp-Administrator (beyondcorp.admin).

  • Eine SaaS-Anwendung, die Sie schützen möchten. Die Anwendung muss IP allowlisting unterstützen, damit Sicherheitsprüfungen durch das Secure Gateway erzwungen werden können.

Beschränkungen

Für ein Chrome Enterprise Premium Secure Gateway gelten die folgenden Einschränkungen:

  • IPv6-Verbindungen: Das Chrome Enterprise Premium Secure Gateway unterstützt keine SaaS-Anwendungen, die IPv6-Verbindungen verwenden.
  • Identitätsanbieter als SaaS-Anwendung: Ein Identitätsanbieter darf nicht als SaaS-Anwendung konfiguriert werden, um vom Secure Gateway geschützt zu werden, wenn die Authentifizierung des Endnutzers mit Secure Gateway vom selben IdP abhängt.

Shell-Umgebung einrichten

Um die Einrichtung zu vereinfachen und mit den APIs der sicheren Gateways zu interagieren, definieren Sie die folgenden Umgebungsvariablen in Ihrer Arbeits-Shell.

  • Allgemeine Parameter

    API="beyondcorp.googleapis.com"
    API_VERSION=v1
    PROJECT_ID=PROJECT_ID
    APPLICATION_ID=APPLICATION_ID
    APPLICATION_DISPLAY_NAME="APPLICATION_DISPLAY_NAME"
    HOST_NAME=HOST_NAME

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Die ID des Projekts, in dem das sichere Gateway erstellt wird.
    • APPLICATION_ID: Die ID Ihrer Anwendung, z. B. github. Der Name darf maximal 63 Zeichen lang sein und kann Kleinbuchstaben, Ziffern und Bindestriche enthalten. Das erste Zeichen muss ein Buchstabe sein und das letzte Zeichen kann ein Buchstabe oder eine Ziffer sein.
    • APPLICATION_DISPLAY_NAME: Der für Menschen lesbare Name, der angezeigt werden soll.
    • HOST_NAME: Der Hostname Ihrer Anwendung. Beispiel: github.com. Der Hostname darf maximal 253 Zeichen lang sein und muss eines der folgenden Formate haben:

      • Eine gültige IPv4-Adresse
      • Eine gültige IPv6-Adresse
      • Ein gültiger DNS-Name
      • Ein Sternchen (*)
      • Ein Sternchen (*) gefolgt von einem gültigen DNS-Namen
  • Parameter für das sichere Gateway

    SECURITY_GATEWAY_ID=SECURITY_GATEWAY_ID
    SECURITY_GATEWAY_DISPLAY_NAME="SECURITY_GATEWAY_DISPLAY_NAME"

    Ersetzen Sie Folgendes:

    • SECURITY_GATEWAY_ID: Die ID des sicheren Gateways. Die ID darf maximal 63 Zeichen lang sein und kann Kleinbuchstaben, Ziffern und Bindestriche enthalten. Das erste Zeichen muss ein Buchstabe sein und das letzte Zeichen kann ein Buchstabe oder eine Ziffer sein.
    • SECURITY_GATEWAY_DISPLAY_NAME: Der für Menschen lesbare Name des sicheren Gateways. Der Name kann bis zu 63 Zeichen lang sein und darf nur druckbare Zeichen enthalten.

Sicheres Gateway erstellen

Ein sicheres Gateway von Chrome Enterprise Premium ist ein grundlegender Baustein für die Herstellung sicherer Verbindungen zu Ihren Anwendungen. Dabei werden ein dediziertes Projekt und Netzwerk zugewiesen, die für Isolation und Sicherheit sorgen.

Verwenden Sie eine der folgenden Methoden, um eine Secure Gateway-Ressource zu erstellen.

gcloud

Führen Sie den folgenden Befehl aus: Geben Sie für das Flag --hubs eine oder mehrere Regionen aus der folgenden Liste an.

gcloud beyondcorp security-gateways create ${SECURITY_GATEWAY_ID} \
  --project=${PROJECT_ID} \
  --location=global \
  --display-name="SECURITY_GATEWAY_DISPLAY_NAME" \
  --hubs=us-central1
      

REST

Rufen Sie die Create API-Methode mit den Gateway-Details im Anfragetext auf. Geben Sie für das hubs-Objekt eine oder mehrere Regionen aus der folgenden Liste an.

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d '{ "display_name": "SECURITY_GATEWAY_DISPLAY_NAME", "hubs": { "us-central1": {} } }' \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways?security_gateway_id=${SECURITY_GATEWAY_ID}"
      

Die hubs stellt die regionalen Ressourcen dar, die für die Aktivierung der Egress-Konnektivität zur Zielanwendung erforderlich sind. Sie können einen Hub für jede Region haben. Jeder Hub stellt zwei IP-Adressen bereit. Sie können die folgenden Regionen angeben:

  • africa-south1
  • asia-east1
  • asia-south1
  • asia-south2
  • asia-southeast1
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west8
  • europe-west9
  • northamerica-northeast1
  • northamerica-northeast2
  • northamerica-south1
  • southamerica-east1
  • southamerica-west1
  • us-central1
  • us-east1
  • us-east4
  • us-east5
  • us-west1

SaaS-Anwendung konfigurieren

Nachdem Sie ein sicheres Gateway erstellt haben, können Sie Ihre SaaS-Anwendungen so konfigurieren, dass sie das sichere Gateway für den sicheren Zugriff verwenden.

  1. Rufen Sie die IP-Adressen ab, die vom sicheren Gateway für jeden Hub zugewiesen wurden. Für eine Region werden zwei IP-Adressen zugewiesen.

    gcloud

    gcloud beyondcorp security-gateways describe ${SECURITY_GATEWAY_ID} \
    --project=${PROJECT_ID} \
    --location=global
        

    REST

    curl \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}"
        

    Hier sehen Sie ein Beispiel für eine GET-Antwort eines sicheren Gateways mit hubs. Im Beispiel werden hubs in den Regionen us-central1 und us-east1 erstellt. Alle in der Antwort zurückgegebenen IP-Adressen müssen in der SaaS-Anwendung zugelassen werden.

    gcloud

    createTime: 'CREATE_TIME'
    displayName: My security gateway
    hubs:
      us-central1:
        internetGateway:
          assignedIps:
          - IP_ADDRESS_1
          - IP_ADDRESS_2
      us-east1:
        internetGateway:
          assignedIps:
          - IP_ADDRESS_1
          - IP_ADDRESS_2
    name: projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}
    state: RUNNING
    updateTime: 'UPDATE_TIME'
        

    REST

    {
      "securityGateways": [
        {
          "name": "projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}",
          "createTime": "CREATE_TIME",
          "updateTime": "UPDATE_TIME",
          "displayName": "My security gateway",
          "state": "RUNNING",
          "hubs": {
            "us-central1": {
              "internetGateway": {
                "assignedIps": [
                  "IP_ADDRESS_1",
                  "IP_ADDRESS_2",
                ]
              }
            },
            "us-east1": {
              "internetGateway": {
                "assignedIps": [
                  "IP_ADDRESS_1",
                  "IP_ADDRESS_2",
                ]
              }
            }
          }
        }
      ]
    }
        
  2. Fügen Sie die IP-Adressen der IP-Zulassungsliste Ihrer SaaS-Anwendung hinzu. Für eine GitHub-Anwendung können Sie beispielsweise dieser Anleitung folgen: Zulässige IP-Adressen für Ihre Organisation verwalten.

Anwendungsressource erstellen

Die folgenden Informationen führen Sie durch die Einrichtung und Konfiguration einer sicheren Gateway-Anwendungsressource.

Sichere Gateway-Anwendungsressource in Google Clouderstellen

Die Anwendungsressource Google Cloud ist eine Unterressource der Secure Gateway-Ressource. Erstellen Sie eine Anwendungsressource, indem Sie die Create API aufrufen.

gcloud

gcloud beyondcorp security-gateways applications create ${APPLICATION_ID} \
  --project=${PROJECT_ID} \
  --security-gateway=${SECURITY_GATEWAY_ID} \
  --location=global \
  --display-name="${APPLICATION_DISPLAY_NAME}" \
  --endpoint-matchers="hostname=${HOST_NAME},ports=[443]"
      

REST

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-X POST \
-d "{ \"display_name\": \"${APPLICATION_DISPLAY_NAME}\", \"endpoint_matchers\": [{hostname: \"${HOST_NAME}\", ports: [443]}] }" \
"https://${API}/${API_VERSION}/projects/${PROJECT_ID}/locations/global/securityGateways/${SECURITY_GATEWAY_ID}/applications?application_id=${APPLICATION_ID}"
      

Google Chrome-Proxymodus konfigurieren

Sie können den Anwendungs-Traffic über das sichere Gateway leiten, indem Sie in den Chrome-Einstellungen in der Admin-Konsole eine PAC-Datei anwenden. So wenden Sie die PAC-Datei an:

  1. Erstellen oder aktualisieren Sie eine PAC-Datei.

    • Erstellen Sie Ihre erste Anwendung, indem Sie mit der folgenden Beispiel-PAC-Datei eine pac_config.js-Datei erstellen.

    • Aktualisieren Sie Ihre vorhandene pac_config.js-Datei und fügen Sie die Domains Ihrer neuen Anwendung dem Array „sites“ hinzu, wie in der folgenden Beispiel-PAC-Datei gezeigt.

    function FindProxyForURL(url, host) {
     const PROXY = "HTTPS ingress.cloudproxy.app:443";
     const sites = ["HOST_NAME"];
    
     for (const site of sites) {
       if (shExpMatch(url, 'https://' + site + '/*') || shExpMatch(url, '*.' + site + '/*')) {
         return PROXY;
       }
     }
    return 'DIRECT';
    }

    Ersetzen Sie HOST_NAME durch den Hostnamen Ihrer Anwendung, z. B. myapp.example.com.

    Wenn Sie eine vorhandene PAC-Datei verwenden, die nicht für ein sicheres Gateway spezifisch ist, führen Sie die PAC-Dateien zusammen, indem Sie die Domains Ihrer Anwendung dem Array „sites“ hinzufügen.

  2. Laden Sie die Datei so hoch, dass sie öffentlich heruntergeladen werden kann. Sie können die Datei beispielsweise in Cloud Storage hochladen und sie öffentlich herunterladbar machen, indem Sie allen Nutzern die Rolle Storage Object User für den Bucket zuweisen.

  3. Wenn Sie prüfen möchten, ob die hochgeladene Datei die neueste Version ist, können Sie das Caching-Verhalten anpassen, indem Sie den Header Cache-Control auf no-cache festlegen. Diese Einstellung verhindert, dass Browser und Zwischenserver eine Kopie der Datei speichern, sodass Chrome die aktuelle Version herunterlädt.

    Weitere Informationen zu Cache-Control und den Auswirkungen auf das Browser-Caching finden Sie unter Cache-Control-Header.

  4. Kopieren Sie die öffentliche URL der hochgeladenen Datei.

Proxy-Moduseinstellungen aktualisieren

  1. Rufen Sie die Admin-Konsole auf.
  2. Klicken Sie auf Geräte > Chrome > Einstellungen.
  3. Wählen Sie die Organisationseinheit oder Gruppe aus und klicken Sie dann auf Proxy-Modus.
  4. Wählen Sie unter Proxymodus die Option Für den Proxyserver immer die unten angegebene automatische Konfiguration verwenden aus und geben Sie die URL der PAC-Datei aus Cloud Storage ein.
  5. Klicken Sie auf Speichern, um die Einstellungen für den Proxymodus zu speichern.

Zugriffsrichtlinie konfigurieren

Sie können eine Zugriffsrichtlinie anwenden, um den Zugriff entweder auf der Ebene des sicheren Gateways zu steuern, was sich auf alle zugehörigen Anwendungen auswirkt, oder auf der Ebene der einzelnen Anwendungen, um eine detailliertere Steuerung zu ermöglichen.

Zugriffsrichtlinie sicher aktualisieren

Mit dem Befehl setIamPolicy wird die gesamte vorhandene Richtlinie durch die von Ihnen angegebene Richtlinie ersetzt. Damit Sie nicht versehentlich vorhandene Berechtigungen entfernen, empfehlen wir, das folgende Muster „Lesen-Ändern-Schreiben“ zu verwenden. Dieses Muster hilft, das versehentliche Entfernen vorhandener Berechtigungen zu verhindern.

  1. Lesen: Rufen Sie zuerst die aktuelle Zugriffsrichtlinie ab.

  2. Ändern: Bearbeiten Sie die Richtliniendatei lokal, um Berechtigungen hinzuzufügen oder zu ändern.

  3. Schreiben: Wenden Sie die aktualisierte Richtliniendatei an.

Aktuelle Richtlinie abrufen

Rufen Sie die aktuelle Richtlinie ab, bevor Sie Änderungen vornehmen.

Das Feld etag in der Richtlinie dient als Versions-ID. Sie verhindert Konflikte, wenn mehrere Administratoren gleichzeitig Änderungen vornehmen.

Mit dem folgenden Befehl wird die Richtlinie abgerufen und in einer Datei mit dem Namen policy.json gespeichert.

gcloud

gcloud beta beyondcorp security-gateways applications get-iam-policy APPLICATION_ID \
  --security-gateway=SECURITY_GATEWAY_ID \
  --project=PROJECT_ID \
  --location=global > policy.json

Ersetzen Sie Folgendes:

  • APPLICATION_ID: die ID der Anwendungsressource
  • SECURITY_GATEWAY_ID: die ID des Sicherheitsgateways
  • PROJECT_ID: die ID des Projekts, in dem das Sicherheitsgateway konfiguriert ist

REST

curl \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://${API}/${API_VERSION}/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:getIamPolicy" > policy.json

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem das Sicherheitsgateway konfiguriert ist
  • SECURITY_GATEWAY_ID: die ID des Sicherheitsgateways
  • APPLICATION_ID: die ID der Anwendungsressource

Mit dem Befehl wird eine policy.json-Datei erstellt, die die aktuelle Richtlinie enthält.

Richtliniendatei ändern

Öffnen Sie die Datei policy.json in einem Texteditor. Wenn Sie einer Gruppe Zugriff auf das sichere Gateway gewähren möchten, fügen Sie die Gruppe der Liste members für die Rolle roles/beyondcorp.securityGatewayUser hinzu.

Die Datei policy.json sieht in etwa so aus:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.securityGatewayUser",
      "members": [
        "group:existing-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}

Wenn Sie eine zusätzliche Gruppe hinzufügen möchten, fügen Sie dem Array members einen neuen Eintrag hinzu. Fügen Sie nach dem vorherigen Eintrag ein Komma ein.

Im folgenden Beispiel wird new-group@example.com hinzugefügt:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.securityGatewayUser",
      "members": [
        "group:existing-group@example.com",
        "group:new-group@example.com"
      ]
    }
  ],
  "etag": "BwXN8_d-bOM="
}

Sie können auch andere Arten von Mitgliedern wie serviceAccount, user, group, principal und principalSet in Richtlinienbindungen hinzufügen. Weitere Informationen finden Sie unter IAM-Hauptkonten.

Aktualisierte Richtlinie anwenden

Nachdem Sie die policy.json-Datei bearbeitet und gespeichert haben, wenden Sie sie mit dem Befehl setIamPolicy auf die Ressource an. Dieser Befehl verwendet die etag aus Ihrer Datei, um sicherzustellen, dass Sie die richtige Version aktualisieren.

gcloud

gcloud beta beyondcorp security-gateways applications set-iam-policy APPLICATION_ID policy.json \
  --security-gateway=SECURITY_GATEWAY_ID \
  --project=PROJECT_ID \
  --location=global

Ersetzen Sie Folgendes:

  • APPLICATION_ID: die ID der Anwendungsressource
  • SECURITY_GATEWAY_ID: die ID des Sicherheitsgateways
  • PROJECT_ID: die ID des Projekts, in dem das Sicherheitsgateway konfiguriert ist

REST

jq '{policy: .}' policy.json | curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d @- \
  "https://${API}/${API_VERSION}/projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID/applications/APPLICATION_ID:setIamPolicy"

Ersetzen Sie Folgendes:

  • PROJECT_ID: die ID des Projekts, in dem das Sicherheitsgateway konfiguriert ist
  • SECURITY_GATEWAY_ID: die ID des Sicherheitsgateways
  • APPLICATION_ID: die ID der Anwendungsressource

Richtlinie für bedingten Zugriff hinzufügen

Sie können auch Zugriffsrichtlinien mit Bedingungen festlegen. Bedingungen geben Anforderungen an, z. B. dass die IP-Adresse eines Nutzers von einem bestimmten Standort stammt.

Die folgende Beispielrichtlinie gewährt nur Zugriff, wenn die Quell-IP-Adresse einer bestimmten Zugriffsebene entspricht:

{
  "version": 3,
  "bindings": [
    {
      "role": "roles/beyondcorp.securityGatewayUser",
      "members": [
        "group:group@example.com"
      ],
      "condition": {
        "expression": "request.auth.access_levels.contains('accessPolicies/1234567890/accessLevels/in_us')",
        "title": "Source IP must be in US"
      }
    }
  ],
  "etag": "BwXN8_d-bOM="
}

Folgen Sie der Anleitung oben, um diese Richtlinie anzuwenden.

Chrome Enterprise Premium-Erweiterung installieren

Die Chrome Enterprise Premium-Erweiterung ist ein integraler Bestandteil eines sicheren Gateways und unterstützt die Authentifizierung. Installieren Sie die Erweiterung für alle Nutzer des sicheren Gateways. Informationen zum Bereitstellen der Erweiterung finden Sie unter Apps und Erweiterungen ansehen und festlegen. So installieren Sie die Chrome Enterprise Premium-Erweiterung:

  1. Rufen Sie die Admin-Konsole auf.
  2. Klicken Sie auf Chrome-Browser > Apps und Erweiterungen.
  3. Klicken Sie auf den Tab Nutzer und Browser.
  4. Klicken Sie zum Hinzufügen der Chrome-Erweiterung auf die Schaltfläche +.
  5. Suchen Sie nach der folgenden Erweiterung und legen Sie dann fest, dass sie für alle Nutzer in der Organisationseinheit oder Gruppe installiert werden muss:

    ekajlcmdfcigmdbphhifahdfjbkciflj
  6. Klicken Sie auf die installierte Erweiterung und geben Sie im Feld Richtlinie für Erweiterungen den folgenden JSON-Wert ein:

    {
      "securityGateway": {
        "Value": {
          "authentication": {},
          "context": { "resource": "projects/PROJECT_ID/locations/global/securityGateways/SECURITY_GATEWAY_ID" }
        }
      }
    }

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID des Projekts, in dem das Sicherheitsgateway konfiguriert ist
    • SECURITY_GATEWAY_ID: die ID des Sicherheitsgateways

  7. Klicken Sie auf Speichern, um die Konfiguration zu speichern.

Nutzererfahrung

Nach Abschluss der Einrichtung wird Endnutzern, die auf die geschützte SaaS-Anwendung zugreifen, der Zugriff basierend auf der auf die Anwendung angewendeten Zugriffsrichtlinie gewährt oder verweigert.

Auf die Anwendung in Chrome zugreifen

Die Chrome Enterprise Premium-Erweiterung ist erforderlich, um Traffic über das sichere Gateway weiterzuleiten. Die Erweiterung übernimmt die Authentifizierung zwischen dem Nutzer und dem sicheren Gateway. Die Erweiterung wird automatisch über die Domainrichtlinie installiert.

Wenn Nutzer auf die von Ihnen konfigurierte SaaS-Anwendung zugreifen, wird ihr Traffic über das sichere Gateway geleitet, das prüft, ob sie die Zugriffsrichtlinie erfüllen. Wenn die Nutzer die Prüfungen der Zugriffsrichtlinie bestehen, erhalten sie Zugriff auf die Anwendung.

Wenn der Browserzugriff auf die Anwendung durch die Autorisierungsrichtlinie abgelehnt wird, erhalten Nutzer die Meldung Access denied.

Nächste Schritte