Regeln für ein- und ausgehenden Traffic

Auf dieser Seite werden die Regeln für ein- und ausgehenden Traffic für VPC Service Controls erläutert. VPC Service Controls ermöglicht mithilfe von Regeln für ein- und ausgehenden Traffic den Zugriff auf die Ressourcen und Clients, die durch Dienstperimeter geschützt sind.

Die Eingangsregeln für eingehenden und ausgehenden Traffic geben die Richtung des zulässigen Zugriffs auf und von verschiedenen Identitäten und Ressourcen an. Regeln für ein- und ausgehenden Traffic können Anwendungsfälle ersetzen und vereinfachen, für die zuvor eine oder mehrere Perimeter-Bridges erforderlich waren.

Informationen zum Anwenden von Richtlinien für ein- und ausgehenden Traffic finden Sie unter Richtlinien für ein- und ausgehenden Traffic konfigurieren.

Eine Liste sicherer Anwendungsfälle und Beispiele für den Datenaustausch finden Sie unter Sicherer Datenaustausch mit Regeln für ein- und ausgehenden Traffic.

Eine Liste der Anwendungsfälle und Beispiele für den kontextsensitiven Zugriff finden Sie unter Kontextsensitiver Zugriff mit Regeln für eingehenden Traffic.

Vorteile von Regeln für ein- und ausgehenden Traffic

  1. Mit Regeln für ein- und ausgehenden Traffic können Sie Daten mithilfe von Google Cloud-Dienst-APIs privat und effizient innerhalb von Organisationen austauschen.
  2. Mit Regeln für ein- und ausgehenden Traffic können Sie den Zugriff auf Google Cloud-Ressourcen in einem Perimeter basierend auf dem Kontext der API-Anfrage gewähren:
    1. Sie können Identitätstypen oder Identitäten beschränken, die im Rahmen eines Quellnetzwerks, einer IP-Adresse oder eines Geräts verwendet werden können.
    2. Sie können Google Cloud APIs und -Methoden beschränken, auf die mit dem Quellnetzwerk, der IP-Adresse, dem Gerät und dem Identitätstyp zugegriffen werden kann.
  3. Sie können den Dienst, die Methoden, die Google Cloud-Projekte und die Identitäten beschränken, mit denen der Datenaustausch ausgeführt wird, um das Risiko der Daten-Exfiltration zu minimieren.
  4. Sie können schreibgeschützten Zugriff auf externe Datasets und Images gewähren, die nicht von Ihnen verwaltet werden.
  5. Sie können dafür sorgen, dass Clients in weniger privilegierten Segmenten keinen Zugriff auf Google Cloud-Ressourcen in mehr privilegierten Segmenten haben, während der Zugang in die andere Richtung ermöglicht wird.
  6. Sie können die Konfigurationen vereinfachen, für die zuvor eine oder mehrere Perimeter-Bridges erforderlich waren.

Definition von ein- und ausgehendem Traffic

  • Eingehender Traffic: Bezieht sich auf den Zugriff von einem API-Client von außerhalb des Dienstperimeters auf Ressourcen innerhalb eines Dienstperimeters. Beispiel:

    • Ein Cloud Storage-Client außerhalb eines Dienstperimeters, der Lese-, Schreib- oder Kopiervorgänge von Cloud Storage für eine Cloud Storage-Ressource innerhalb des Perimeters aufruft
  • Ausgehender Traffic: Bezieht sich auf alle Zugriffe, bei denen ein API-Client oder Ressourcen innerhalb des Dienstperimeters und Ressourcen außerhalb eines Dienstperimeters genutzt werden. Beispiele:

    • Ein Compute Engine-Client innerhalb eines Dienstperimeters ruft einen create-Vorgang von Compute Engine auf, wobei sich die Image-Ressource außerhalb des Perimeters befindet.
    • Ein Cloud Storage-Client, innerhalb oder außerhalb des Perimeters, der einen copy-Befehl aufruft, wobei sich ein Bucket innerhalb des Perimeters und der andere Bucket außerhalb des Perimeters befindet.

Richtlinienmodell

Eine Regel für ein- und ausgehenden Traffic besteht aus from und to-Blöcken, in denen:

  • from auf die Attribute des API-Clients verweist.
  • to auf die Attribute von Google Cloud-Diensten und -Ressourcen verweist.

Einem Dienstperimeter können mehrere Regeln für ein- und ausgehenden Traffic zugeordnet werden. Ein Google Cloud-Dienstaufruf wird basierend auf den folgenden semantischen Methoden zugelassen oder abgelehnt:

  • Eine Anfrage von einem Client außerhalb des Perimeters an eine Google Cloud-Ressource innerhalb des Perimeters ist zulässig, wenn die Bedingungen der erforderlichen Eingangsregel erfüllt sind.
  • Eine Anfrage von einem Client innerhalb des Perimeters an eine Google Cloud-Ressource außerhalb des Perimeters ist zulässig, wenn die Bedingungen der erforderlichen Ausgangsregel erfüllt sind.
  • Ein API-Aufruf, der eine Google Cloud-Ressource innerhalb des Perimeters und eine Google Cloud-Ressource außerhalb des Perimeters umfasst, ist zulässig, wenn eine Regel für eingehenden Traffic vorhanden ist, die der Client erfüllt (wenn sich der Client nicht innerhalb des Perimeters befindet) und eine Regel für ausgehenden Traffic, die die externe Ressource erfüllt.

Referenz zu Regeln für eingehenden Traffic

Regeln für eingehenden Traffic können mit der Google Cloud Console, einer JSON-Datei oder einer YAML-Datei konfiguriert werden. Im folgenden Beispiel wird das .yaml-Format verwendet:

- ingressFrom:
    identityType: ANY_IDENTITY
    *OR*
    identities:
    - serviceAccount:service-account
    sources:
    - resource: projects/project
      *OR*
    - accessLevel: access-level
  ingressTo:
    operations:
    - serviceName: service
      methodSelectors:
      - method: method
      *OR*
      - permission: permission
    resources:
    - projects/project
Attributreferenz
  • - ingressFrom: – (Erforderlich) Startet den from-Block, in dem zulässige Quellen und Identitäten außerhalb des Perimeters aufgeführt werden.

  • identityType: – (Dieses oder das identities-Attribut muss verwendet werden.) Dieses Attribut definiert die Arten von Identitäten, die aus den angegebenen sources verwendet werden können (Netzwerkursprung). Zulässige Werte: ANY_IDENTITY, ANY_USER_ACCOUNT, ANY_SERVICE_ACCOUNT. ANY_IDENTITY erlaubt alle Identitäten. ANY_USER_ACCOUNT erlaubt alle menschlichen Nutzer. ANY_SERVICE_ACCOUNT erlaubt alle Dienstkonten.

  • identities:: (Es muss dieses Attribut oder das Attribut identityType verwendet werden.) Mit diesem Attribut wird eine Liste von Dienstkonten gestartet, die auf Ressourcen im Perimeter zugreifen können.

  • serviceAccount: Ein Dienstkonto, dem Zugriff auf Ressourcen im Perimeter gewährt wird.

  • sources:: (Erforderlich) Dieses Attribut bezieht sich auf eine Liste mit Netzwerkursprüngen. Jeder Wert in der Liste ist entweder eine Zugriffsebene oder ein VPC-Netzwerkprojekt.

  • - resource:: (Es muss dieses oder das Attribut accessLevel verwendet werden.) Gibt das Projekt von außerhalb des Perimeters an, auf den der Zugriff gewährt wird. Der Zugriff wird dem VPC-Netzwerk des Projekts gewährt.

  • - accessLevel:: (Es muss dieses oder das Attribut resource verwendet werden.) Gibt die Zugriffsebene von außerhalb des Perimeters an, auf den der Zugriff gewährt wird.

  • ingressTo:: (Erforderlich) Startet den to-Block, mit dem zugelassene Dienstvorgänge für angegebene Google Cloud-Ressourcen innerhalb des Perimeters aufgeführt werden.

  • operations:: (Erforderlich) Markiert den Anfang der Liste der zugänglichen Dienste und Aktionen/Methoden, auf die ein Client zugreifen darf, der die from-Block-Bedingungen erfüllt.

  • - serviceName:: (Erforderlich) Dieses Feld kann ein gültiger Dienstname sein oder auf \"*\" gesetzt sein, um den Zugriff auf alle Dienste zu ermöglichen. Beispiel: bigquery.googleapis.com ist ein gültiger serviceName. Eine Liste der verfügbaren Dienste finden Sie unter Unterstützte Produkte.

  • methodSelectors:: (Erforderlich) Der Anfang einer Liste von Methoden, auf die ein Client zugreifen kann, der die from-Block-Bedingungen erfüllt. Eine Liste der Methoden und Berechtigungen für Dienste finden Sie unter Unterstützte Einschränkungen für Dienstmethoden.

  • - method:: (Dieses oder das Attribut permission muss verwendet werden.) Dieses Feld kann eine gültige Dienstmethode sein oder auf \"*\" gesetzt werden, um Zugriff auf alle Methoden des angegebenen Diensts zu gewähren.

  • - permission:: (Dieses oder das Attribut methodmuss verwendet werden.) Dieses Feld muss eine gültige Dienstberechtigung enthalten. Der Zugriff auf die Ressourcen innerhalb des Perimeters wird für Vorgänge zugelassen, für die diese Berechtigung erforderlich ist.

  • resources:: (Erforderlich.) Dieses Attribut gibt die Liste der Google Cloud-Ressourcen im Dienstperimeter an, auf die der Client außerhalb des Perimeters zugreifen kann. Dieses Feld kann auf \"*\" gesetzt werden, um eingehenden Zugriff auf alle Google Cloud-Ressourcen innerhalb des Perimeters zu ermöglichen.

Wenn Sie die Konfiguration Ihrer Richtliniendatei für eingehenden Traffic abgeschlossen haben, finden Sie unter Richtlinien für ein- und ausgehenden Traffic aktualisieren Anweisungen zum Anwenden Ihrer Richtliniendatei für eingehenden Traffic auf Ihren Dienstbereich.

Referenz zu Regeln für ausgehenden Traffic

Regeln für ausgehenden Traffic können mit der Google Cloud Console, einer JSON-Datei oder einer YAML-Datei konfiguriert werden. Im folgenden Beispiel wird das .yaml-Format verwendet:

- egressTo:
    operations:
    - serviceName:service-name
      methodSelectors:
      - method: method
      *OR*
      - permission: permission
    resources:
    - projects/project
  egressFrom:
    identityType: ANY_IDENTITY
    *OR*
    identities:
    - serviceAccount:service-account
  • - egressTo:: (Erforderlich) Startet den to-Block, mit dem zugelassene Dienstvorgänge in Google Cloud-Ressourcen in angegebenen Projekten außerhalb des Perimeters aufgeführt werden.

  • operations:: (Erforderlich) Markiert den Anfang der Liste der zugänglichen Dienste und Aktionen/Methoden, auf die ein Client zugreifen darf, der die from-Block-Bedingungen erfüllt.

  • - serviceName:: (Erforderlich) Dieses Feld kann ein gültiger Dienstname sein oder auf \"*\" gesetzt sein, um den Zugriff auf alle Dienste zu ermöglichen. Eine Liste der verfügbaren Dienste finden Sie unter Unterstützte Produkte.

  • methodSelectors:: (Erforderlich) Der Anfang einer Liste von Methoden, auf die ein Client zugreifen kann, der die from-Block-Bedingungen erfüllt. Eine Liste der Methoden und Berechtigungen für Dienste finden Sie unter Unterstützte Einschränkungen für Dienstmethoden.

  • - method:: (Es muss dieses oder das Attribut permission verwendet werden.) Dieses Feld kann eine gültige Dienstmethode sein oder auf \"*\" gesetzt werden, um den Zugriff auf alle Methoden des angegebenen Dienstes zu ermöglichen.

  • - permission:: (Dieses oder das Attribut methodmuss verwendet werden.) Dieses Feld muss eine gültige Dienstberechtigung enthalten. Der Zugriff auf die angegebenen Ressourcen außerhalb des Perimeters wird für Vorgänge zugelassen, für die diese Berechtigung erforderlich ist.

  • resources:: (Erforderlich) Dieses Attribut ist eine Liste von Google Cloud-Ressourcen, die von ihren Projekten angegeben werden, auf die Clients innerhalb eines Perimeters zugreifen können. Dieses Feld kann auf \"*\" gesetzt werden, um ausgehenden Zugriff auf jede Google Cloud-Ressource zuzulassen.

  • egressFrom:: (Erforderlich) Startet den Block, mit dem zugelassene Dienstvorgänge in Google Cloud-Ressourcen in angegebenen Projekten außerhalb des Perimeters aufgeführt werden.

  • identityType:: (Dieses oder das Attribut identities muss verwendet werden.) Dieses Attribut definiert die Identitätstypen, die für den Zugriff auf die angegebenen Ressourcen außerhalb des Perimeters verwendet werden können. Zulässige Werte: ANY_IDENTITY, ANY_USER_ACCOUNT, ANY_SERVICE_ACCOUNT. ANY_IDENTITY erlaubt alle Identitäten. ANY_USER_ACCOUNT erlaubt alle menschlichen Nutzer. ANY_SERVICE_ACCOUNT erlaubt alle Dienstkonten.

  • identities:: (Dieses oder das identityType-Attribut muss verwendet werden.) Mit diesem Attribut wird eine Liste von Dienstkonten erstellt, die auf die angegebenen Ressourcen außerhalb des Perimeters zugreifen können.

  • serviceAccount: Ein Dienstkonto, das außerhalb des Perimeters auf die angegebenen Ressourcen zugreifen kann.

Wenn Sie die Konfiguration Ihrer Richtliniendatei für ausgehenden Traffic abgeschlossen haben, finden Sie unter Richtlinien für ein- und ausgehenden Traffic aktualisieren Anweisungen zum Anwenden Ihrer Richtliniendatei für ausgehenden Traffic auf Ihren Dienstbereich.

Mit dem Probelaufmodus Richtlinien für ein-/ausgehenden Traffic testen

Wenn Sie keinen Zugriff auf alle Methoden eines Dienstes gewähren möchten, ist es manchmal schwierig, die genaue Liste der zulässigen Methoden zu bestimmen. Das kann daran liegen, dass eine bestimmte Methode für einen Dienst dazu führt, dass eine andere Methode für einen separaten Google Cloud-Dienst aufgerufen wird (z. B. BigQuery lädt eine Tabelle aus einem Cloud Storage-Bucket, um eine Abfrage auszuführen).

Zur Bestimmung der richtigen Methoden können Sie den Probelaufmodus von VPC Service Controls verwenden. Aktivieren Sie dazu zuerst einen Perimeter im Probelaufmodus ohne Richtlinien für ein- oder ausgehenden Traffic und erfassen Sie die Liste der Methoden, die im Audit-Log aufgerufen werden. Anschließend fügen Sie diese Methoden schrittweise den Richtlinien für ein-/ausgehenden Traffic im Probelaufmodus hinzu, bis alle Verstöße behoben sind. An dieser Stelle kann die Konfiguration vom Probelaufmodus in den erzwungenen Modus verschoben werden.

Beschränkungen

Sie sind auf das folgende Kontingent beschränkt, wenn Sie Regeln für ein- und ausgehenden Traffic verwenden:

Beschränkung pro Dienstperimeter Beschränkung pro Zugriffsrichtlinie
Richtlinien für eingehenden Traffic 100 10.000
Richtlinien für ausgehenden Traffic 100 10.000
Eingangsquelle1 30 500
Identitäten 2000
Proto-Nachrichten zu API-Vorgängen 1.000 ApiOperation-Proto-Nachrichten können innerhalb einer AccessPolicy-Proto-Nachricht angegeben werden

1 Die Zugriffsebenenreferenzen in sources werden auf die Gesamtzahl der in Dienstperimetern definierten Zugriffsebenenreferenzen angerechnet. Ressourcen in sources werden auf die Gesamtzahl der in Zugriffsrichtlinien zulässigen Dienstperimeter angerechnet.

Nicht unterstützte Features

Die folgenden Features werden derzeit für die Regeln für ein- und ausgehenden Traffic portiert:

  1. Google Cloud-Ressourcen anhand von Labels anstelle von Projekten identifizieren.
  2. Gruppen werden im Feld identities einer from-Regel für ein-/ausgehenden Traffic angegeben.
  3. Nicht alle Dienste unterstützen Regeln für ein-/ausgehenden Traffic. Siehe Unterstützte Einschränkungen für Dienstmethoden.