Richtlinien mit Dienstkonten erstellen

Ein Dienstkonto ist ein spezielles Google-Konto, das nicht von Menschen verwendet wird. Es wird von Anwendungen, automatisierten Prozessen oder Compute-Arbeitslasten wie einer Compute Engine-Instanz verwendet, um autorisierte API-Aufrufe auszuführen. Im Gegensatz zu Nutzerkonten wird ein Dienstkonto nur durch seine eindeutige E‑Mail-Adresse identifiziert.

Anwendungen verwenden Dienstkonten, um sich zu authentifizieren und Zugriff aufGoogle Cloud -Ressourcen zu erhalten. Wenn sich eine Anwendung mit einem Dienstkonto authentifiziert, erhält sie Zugriff auf die Ressourcen, für die dem Dienstkonto explizite Berechtigungen für Identity and Access Management zugewiesen wurden. So wird eine sichere, prüfbare und zentrale Methode für die Autorisierung von Maschine zu Maschine bereitgestellt.

Bei Secure Web Proxy spielen Dienstkonten eine entscheidende Rolle bei der Autorisierung und der Durchsetzung von Richtlinien. Wenn Sie ein Dienstkonto verwenden, um die Besucherquelle einer Arbeitslast zu identifizieren, können Sie detaillierte Secure Web Proxy-Richtlinien erstellen, mit denen Web-Traffic basierend auf der Identität der Anwendung und nicht nur auf ihrer IP-Adresse zugelassen oder abgelehnt wird.

Diese Seite enthält Anleitungen für Folgendes:

Hinweis

  • Führen Sie die Schritte zur Ersteinrichtung aus.

  • Bitten Sie einen Organisationsadministrator, Ihnen Zugriff auf ein Dienstkonto zu gewähren.

  • Prüfen Sie, ob die Google Cloud CLI-Version 406.0.0 oder höher installiert ist:

    gcloud version | head -n1
    

    Wenn Sie eine ältere gcloud CLI-Version installiert haben, aktualisieren Sie die Version:

    gcloud components update --version=406.0.0
    

Secure Web Proxy-Instanz mit einer leeren Richtlinie erstellen

Wenn Sie eine Secure Web Proxy-Instanz erstellen möchten, müssen Sie zuerst eine leere Sicherheitsrichtlinie und dann einen Web-Proxy erstellen, der die Richtlinie verwendet.

Leere Sicherheitsrichtlinie erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite SWP-Richtlinien auf.

    Zu den Richtlinien zum Löschen von Dienstdaten

  2. Klicken Sie auf Richtlinie erstellen.

  3. Geben Sie im Feld Name einen Namen für die Richtlinie ein, z. B. myswppolicy.

  4. Geben Sie im Feld Beschreibung eine Beschreibung für die Richtlinie ein, z. B. My new swp policy.

  5. Wählen Sie unter Regionen die Region aus, in der Sie die Richtlinie erstellen möchten, z. B. us-central1.

  6. Klicken Sie auf Erstellen.

Cloud Shell

  1. Erstellen Sie mit einem Texteditor eine policy.yaml-Datei.

  2. Fügen Sie folgenden Code in die policy.yaml-Datei ein.

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    Ersetzen Sie Folgendes:

    • PROJECT_NAME: Name Ihres Projekts

    • REGION: Region, in der Ihre Richtlinie erstellt wird, z. B. us-central1

    • POLICY_NAME: Name der Richtlinie

    • POLICY_DESCRIPTION: Beschreibung Ihrer Richtlinie

  3. Importieren Sie die Sicherheitsrichtlinie mit dem Befehl gcloud network-security gateway-security-policies import:

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

Web-Proxy erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Web-Proxys auf.

    Zu Web-Proxys

  2. Klicken Sie auf Sicheren Web-Proxy erstellen.

  3. Geben Sie im Feld Name einen Namen für den Webproxy ein, z. B. myswp.

  4. Geben Sie im Feld Beschreibung eine Beschreibung für den Webproxy ein, z. B. My new swp.

  5. Wählen Sie für Routing-Modus eine der folgenden Optionen aus:

    • Explizit: Ihre Secure Web Proxy-Instanz wird im expliziten Proxymodus bereitgestellt.
    • Nächster Hop: Ihre Secure Web Proxy-Instanz wird im Modus „Nächster Hop“ bereitgestellt.
  6. Wählen Sie unter Regionen die Region aus, in der Sie den Webproxy erstellen möchten, z. B. us-central1.

  7. Wählen Sie unter Netzwerk das Netzwerk aus, in dem Sie den Webproxy erstellen möchten.

  8. Wählen Sie unter Subnetzwerk das VPC-Subnetzwerk aus, das Sie bei der Ersteinrichtung erstellt haben.

  9. Optional: Geben Sie im Feld Web-Proxy-IP-Adresse die IP-Adresse des Secure Web Proxy ein.

    Sie können eine IP-Adresse aus dem Bereich der Secure Web Proxy-IP-Adressen eingeben, die sich im Subnetz befinden, das Sie im vorherigen Schritt erstellt haben. Wenn Sie die IP-Adresse nicht eingeben, wählt Ihre Secure Web Proxy-Instanz automatisch eine IP-Adresse aus dem ausgewählten Subnetzwerk aus.

  10. Wählen Sie unter Zertifikat das Zertifikat aus, das Sie zum Erstellen des Webproxys verwenden möchten.

  11. Wählen Sie unter Richtlinie die Richtlinie aus, die Sie erstellt haben, um den Web-Proxy damit zu verknüpfen.

  12. Klicken Sie auf Erstellen.

Cloud Shell

  1. Erstellen Sie mit einem Texteditor eine gateway.yaml-Datei.

  2. Fügen Sie folgenden Code in die gateway.yaml-Datei ein.

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK
    routingMode: ROUTING_MODE
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Optional: Wenn Sie zulassen möchten, dass Clientanwendungen aus anderen Google CloudRegionen eine Verbindung zu Ihrem Proxy herstellen, aktivieren Sie beim Erstellen Ihrer Secure Web Proxy-Instanz den globalen Zugriff.

    Fügen Sie in der Datei gateway.yaml das Feld allow_global_access hinzu und legen Sie es auf true fest.

    Wichtig: Sie können allow_global_access nur aktivieren, wenn Sie eine Secure Web Proxy-Instanz erstellen. Sie können diese Einstellung später nicht mehr ändern.

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    allow_global_access: true
    

    Ersetzen Sie Folgendes:

    • GATEWAY_NAME: Name dieser Secure Web Proxy-Instanz

    • GATEWAY_PORT_NUMBERS: Liste der Portnummern für dieses Gateway, z. B. [80,443]

    • CERTIFICATE_URLS: Liste der SSL-Zertifikat-URLs

    • SUBNETWORK: Das VPC-Subnetzwerk, das Sie bei der Ersteinrichtung erstellt haben

    • ROUTING_MODE: Geben Sie den erforderlichen Webproxy-Routingmodus an:

      • EXPLICIT_ROUTING_MODE: Stellt Ihre Secure Web Proxy-Instanz im expliziten Proxymodus bereit.
      • NEXT_HOP_ROUTING_MODE: Stellt Ihre Secure Web Proxy-Instanz im Next Hop-Modus bereit.
    • GATEWAY_IP_ADDRESS: Optionale Liste von IP-Adressen für Ihre Secure Web Proxy-Instanzen in den Proxy-Subnetzen, die Sie zuvor in den Schritten zur Ersteinrichtung erstellt haben.

      Wenn Sie keine IP-Adressen angeben möchten, lassen Sie das Feld leer, damit der Web-Proxy eine IP-Adresse für Sie auswählt.

  3. Erstellen Sie die Secure Web Proxy-Instanz mit dem Befehl gcloud network-services gateways import:

    gcloud network-services gateways import GATEWAY_NAME \
        --source=gateway.yaml \
        --location=REGION
    

Verbindung testen

Verwenden Sie den Befehl curl, um die Verbindung von einer beliebigen VM-Instanz in Ihrem VPC-Netzwerk (Virtual Private Cloud) zu testen:

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure
  

Wenn alles korrekt funktioniert, gibt Ihre Secure Web Proxy-Instanz den Statuscode 403 Forbidden zurück. Dieser Fehler bestätigt Folgendes:

  • Die Secure Web Proxy-Instanz wurde erfolgreich bereitgestellt und empfängt aktiv Traffic.

  • Die Richtlinie für sichere Web-Proxys erzwingt die Standardsicherheitskonfiguration, bei der der gesamte Traffic abgelehnt wird, bis Sie in den nächsten Abschnitten bestimmte allow-Regeln definieren.

Dienstkonto erstellen und IAM-Rollen zuweisen

  1. Dienstkonto erstellen: Verwenden Sie den gcloud iam service-accounts create-Befehl, um ein Dienstkonto mit dem Namen my-swp-sa in Ihrem Google Cloud-Projekt zu erstellen.

    gcloud iam service-accounts create my-swp-sa \
        --display-name="Secure Web Proxy service account" \
        --description="Service account for Secure Web Proxy instances"
  2. IAM-Rollen für das Dienstkonto zuweisen: Verwenden Sie den gcloud projects add-iam-policy-binding-Befehl, um dem Dienstkonto die erforderlichen IAM-Rollen zuzuweisen, damit es Ressourcen in Ihrem Google Cloud -Projekt verwalten oder verwenden kann.

    Wenn das Dienstkonto beispielsweise Netzwerkressourcen verwenden darf, weisen Sie ihm die Rolle „Compute-Netzwerknutzer“ (roles/compute.networkUser) zu.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:my-swp-sa@PROJECT_ID.iam.gserviceaccount.com" \
        --role="roles/compute.networkUser"

    Ersetzen Sie PROJECT_ID durch die ID IhresGoogle Cloud -Projekts.

Secure Web Proxy-Regel erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite SWP-Richtlinien auf.

    Zu den Richtlinien zum Löschen von Dienstdaten

  2. Klicken Sie auf den Namen der Richtlinie, die Sie zuvor erstellt haben, z. B. myswppolicy.

  3. Klicken Sie auf Regel hinzufügen.

  4. Führen Sie für jede Regel folgende Schritte aus:

    1. Geben Sie im Feld Priorität eine numerische Auswertungsreihenfolge für die Regel ein. Regeln werden von der höchsten bis zur niedrigsten Priorität ausgewertet, wobei 0 die höchste Priorität ist.

    2. Geben Sie im Feld Name einen Namen für die Regel ein.

    3. Geben Sie im Feld Beschreibung eine Beschreibung für die Regel ein.

    4. Wählen Sie für Aktion eine der folgenden Optionen aus:

      • Zulassen: Damit werden Verbindungsanfragen zugelassen, die der Regel entsprechen.
      • Ablehnen: Verbindungsanfragen, die der Regel entsprechen, werden abgelehnt.
    5. Wählen Sie für das Feld Status eine der folgenden Optionen für die Durchsetzung der Regel aus:

      • Aktiviert: Die Regel wird für Ihre Secure Web Proxy-Instanz erzwungen.
      • Deaktiviert: Die Regel wird nicht für Ihre Secure Web Proxy-Instanz erzwungen.
    6. Geben Sie im Bereich Session Match die E-Mail-Adresse des Dienstkontos an, das Sie zuvor erstellt haben. Beispiel:

        sessionMatcher: "source.matchServiceAccount(SERVICE_ACCOUNT) && host() == 'example.com'"
        

      Weitere Informationen zur Syntax für SessionMatcher finden Sie in der CEL-Matcher-Sprachreferenz.

    7. Geben Sie im Bereich Application Match (Anwendungsabgleich) die Kriterien für den Abgleich der Anfrage an.

    8. Klicken Sie auf Regel hinzufügen.

  5. Wenn Sie eine weitere Regel hinzufügen möchten, klicken Sie auf Regel hinzufügen.

Cloud Shell

  1. Erstellen Sie die Datei rule.yaml mit einem Texteditor.

  2. Wenn Sie den Zugriff auf eine URL über das entsprechende Dienstkonto zulassen möchten, fügen Sie der erstellten rule.yaml-Datei Folgendes hinzu:

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    description: RULE_DESCRIPTION
    enabled: true
    priority: RULE_PRIORITY
    sessionMatcher: CEL_EXPRESSION
    basicProfile: ALLOW
    

    Ersetzen Sie Folgendes:

    • RULE_NAME: Name dieser Regel
    • RULE_DESCRIPTION: Beschreibung der Regel
    • RULE_PRIORITY: Priorität dieser Regel. Eine niedrigere Zahl entspricht einer höheren Priorität.
    • CEL_EXPRESSION: Ein CEL-Ausdruck (Common Expression Language). Weitere Informationen finden Sie in der CEL-Matcher-Sprachreferenz.

    Wenn Sie beispielsweise den Zugriff auf example.com über die Ressource mit dem erforderlichen Dienstkonto zulassen möchten, fügen Sie der YAML-Datei, die Sie für sessionMatcher erstellt haben, den folgenden Code hinzu:

    ```yaml
    sessionMatcher: "source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'example.com'"
    ```
    

    Ersetzen Sie SERVICE_ACCOUNT durch das Dienstkonto, das Sie zulassen möchten. Dies muss die E-Mail-Adresse des Dienstkontos sein.

  3. Importieren Sie die Regeln, die Sie mit dem Befehl gcloud network-security gateway-security-policies rules import erstellt haben:

    gcloud network-security gateway-security-policies rules import RULE_NAME \
        --source=RULE_FILE.yaml \
        --location=REGION \
        --gateway-security-policy=POLICY_NAME
    

Verbindung testen

Sie können die Verbindung noch einmal testen, um zu prüfen, ob Ihre gesamte Secure Web Proxy-Konfiguration, einschließlich des Dienstkontos, der Sicherheitsrichtlinienregeln und des Gateways, wie vorgesehen funktioniert.

Verwenden Sie den Befehl curl von der Ressource, z. B. einer VM-Instanz, mit dem angehängten SERVICE_ACCOUNT, um die Verbindung zu testen:

curl -x https://IPv4_ADDRESS:443 http://example.com 
--proxy-insecure

Ersetzen Sie IPv4_ADDRESS durch die IPv4-Adresse Ihrer Secure Web Proxy-Instanz.

Wenn alles korrekt funktioniert, erhalten Sie den Statuscode 200 OK. Dieser Statuscode bestätigt die folgenden wichtigen Ergebnisse:

  • Erfolgreiche Autorisierung: Dies beweist, dass der von der Ressource stammende Traffic vom zugewiesenen Dienstkonto korrekt identifiziert wird und dass diese Identität erfolgreich mit der allow-Regel übereinstimmt, die Sie der Sicherheitsrichtlinie hinzugefügt haben.

  • End-to-End-Funktionalität: Hier wird geprüft, ob der Traffic korrekt über den konfigurierten Pfad fließt – von der Ressource > zur Secure Web Proxy-Instanz > durch die Sicherheitsrichtlinie > zum externen Ziel.

Nächste Schritte