Richtlinien mit Dienstkonten erstellen

Ein Dienstkonto ist ein spezielles Google-Konto, das nicht mit einer Person verknüpft ist und von Anwendungen, automatisierten Prozessen oder Compute-Arbeitslasten wie einer Compute Engine-Instanz verwendet wird, um autorisierte API-Aufrufeauszufü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 auf Google 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 Identity and Access Management-Berechtigungen zugewiesen wurden. Dies bietet eine sichere, prüfbare und zentralisierte Methode für die Machine-to-Machine-Autorisierung.

Für Secure Web Proxy spielen Dienstkonten eine entscheidende Rolle bei der Autorisierung und Richtlinienerzwingung. Wenn Sie ein Dienstkonto verwenden, um die Traffic-Quelle einer Arbeitslast zu identifizieren, können Sie detaillierte Secure Web Proxy-Richtlinien erstellen, mit denen Webtraffic 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

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. Öffnen Sie in der Google Cloud Console die Seite Richtlinien zum Löschen von Dienstdaten.

    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 Ihrem bevorzugten Texteditor eine Datei policy.yaml.

  2. Fügen Sie der erstellten Datei policy.yaml Folgendes hinzu:

    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 Ihrer Richtlinie

    • POLICY_DESCRIPTION: Beschreibung Ihrer Richtlinie

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

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

Web-Proxy erstellen

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Web-Proxys.

    Zu den Web-Proxys

  2. Klicken Sie auf Sicheren Web-Proxy erstellen.

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

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

  5. Wählen Sie unter Routingmodus die Option Explizit aus.

  6. Wählen Sie unter Regionen die Region aus, in der Sie den Web-Proxy erstellen möchten, z. B. us-central1.

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

  8. Wählen Sie unter Subnetzwerk das VPC-Subnetz aus, das Sie zuvor im Rahmen der Schritte zur Ersteinrichtungerstellt haben.

  9. Optional: Geben Sie im Feld IP-Adresse des Web-Proxys die IP-Adresse des sicheren Web-Proxys ein.

    Sie können eine IP-Adresse aus dem Bereich der IP-Adressen des sicheren Web-Proxys 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 Subnetz aus.

  10. Wählen Sie unter Zertifikat das Zertifikat aus, mit dem Sie den Web-Proxy erstellen möchten.

  11. Wählen Sie unter Richtlinie die Richtlinie aus, die Sie zum Verknüpfen des Web-Proxys erstellt haben.

  12. Klicken Sie auf Erstellen.

Cloud Shell

  1. Erstellen Sie mit Ihrem bevorzugten Texteditor eine Datei gateway.yaml.

  2. Fügen Sie der Datei gateway.yaml Folgendes hinzu:

    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
    

    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: VPC-Subnetz, das Sie zuvor im Rahmen der Schritte zur Ersteinrichtung erstellt haben

    • GATEWAY_IP_ADDRESS: optionale Liste der IP Adressen für Ihre Secure Web Proxy-Instanzen in den Proxy Subnetzen, die Sie zuvor im Rahmen der Schritte zur Ersteinrichtung erstellt haben

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

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

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

Verbindung testen

Verwenden Sie den Befehl curl von einer beliebigen VM-Instanz in Ihrem VPC-Netzwerk (Virtual Private Cloud), um die Verbindung 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 Secure Web Proxy-Richtlinie erzwingt korrekt 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 in Ihrem Google Cloud Projekt ein Dienstkonto mit dem Namen my-swp-sa 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. Weisen Sie dem Dienstkonto IAM-Rollen zu: 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 Ihres Google Cloud Projekts.

Secure Web Proxy-Regel erstellen

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Richtlinien zum Löschen von Dienstdaten.

    Zu den Richtlinien zum Löschen von Dienstdaten

  2. Klicken Sie auf den Namen der zuvor erstellten Richtlinie, z. B. myswppolicy.

  3. Klicken Sie auf Regel hinzufügen.

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

    1. Geben Sie im Feld Priorität eine numerische Auswertungsreihenfolge für die Regel ein. Die 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 unter Aktion eine der folgenden Optionen aus:

      • Zulassen: Verbindungsanfragen zulassen, die der Regel entsprechen.
      • Ablehnen: Verbindungsanfragen ablehnen, die der Regel entsprechen.
    5. Wählen Sie im Feld Status eine der folgenden Optionen für die Erzwingung der Regel aus:

      • Aktiviert: Die Regel für Ihre Secure Web Proxy Instanz erzwingen.
      • Deaktiviert: Die Regel für Ihre Secure Web Proxy Instanz nicht erzwingen.
    6. Geben Sie im Abschnitt Sitzungsübereinstimmung die E-Mail-Adresse des zuvor erstellten Dienstkontos an. Beispiel:

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

      Weitere Informationen zur Syntax für SessionMatcher, finden Sie unter CEL-Matcher-Sprachreferenz.

    7. Geben Sie im Abschnitt Anwendungsübereinstimmung 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 mit Ihrem bevorzugten Texteditor die Datei rule.yaml.

  2. Fügen Sie der erstellten Datei rule.yaml Folgendes hinzu, um den Zugriff auf eine URL über das entsprechende Dienstkonto zuzulassen:

    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 unter 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 für sessionMatcher erstellten YAML-Datei Folgendes 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 erstellten Regeln mit dem gcloud network-security gateway-security-policies rules import Befehl:

    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 die gesamte Secure Web Proxy-Konfiguration, einschließlich des Dienstkontos, der Sicherheitsrichtlinienregeln und des Gateways, wie erwartet 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: Er beweist, dass der von der Ressource stammende Traffic korrekt durch das zugewiesene Dienstkonto identifiziert wird und dass diese Identität mit der allow Regel übereinstimmt, die Sie der Sicherheitsrichtlinie hinzugefügt haben.

  • End-to-End-Funktionalität: Er bestätigt, dass der Traffic korrekt über den konfigurierten Pfad fließt: von der Ressource > zur Secure Web Proxy-Instanz > durch die Sicherheitsrichtlinie > und zum externen Ziel.

Nächste Schritte