Regeln für ein- und ausgehenden Traffic

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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

Die Definitionen für eingehenden und ausgehenden Traffic sind unabhängig vom Vorgang, der für die Ressource aufgerufen wird. Die Definitionen beziehen sich daher auf die Richtung der Anfrage, nicht auf die Richtung der Datenbewegung.

  • 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.

Beispiele für API-Anfragen, die durch Regeln für eingehenden Traffic zugelassen sind

  • Ein Cloud Storage-Client außerhalb des Perimeters, der Objekte aus einem Cloud Storage-Bucket innerhalb des Perimeters auf die lokale Maschine herunterlädt (z. B. mit dem Befehl gsutil cp).
  • Ein BigQuery-Client außerhalb des Perimeters der mithilfe eines BigQuery-Jobs in einem Projekt innerhalb des Perimeters, ein BigQuery-Dataset innerhalb des Perimeters abfrägt (z. B. mit dem Befehl bq query).

Beispiele für API-Anfragen, die durch Regeln für ausgehenden Traffic zugelassen werden

  • Ein Cloud Storage-Client innerhalb des Perimeters, der Objekte zwischen einem Cloud Storage-Bucket außerhalb des Perimeters und einem Bucket innerhalb des Perimeters kopiert (z. B. mit dem Befehl gsutil cp).
  • Ein BigQuery-Client innerhalb des Perimeters der mithilfe eines BigQuery-Jobs in einem Projekt außerhalb des Perimeters, ein BigQuery-Dataset innerhalb des Perimeters abfrägt (z. B. mit dem Befehl bq query).

Beispiele für API-Anfragen, die durch eine Kombination aus Regeln für eingehenden und ausgehenden Traffic zugelassen werden

  • Ein Cloud Storage-Client außerhalb des Perimeters, der Objekte zwischen einem Cloud Storage-Bucket außerhalb des Perimeters und einem Bucket innerhalb des Perimeters kopiert (z. B. mit dem Befehl gsutil cp).
  • Ein BigQuery-Client außerhalb des Perimeters der mithilfe eines BigQuery-Jobs in einem Projekt außerhalb des Perimeters, ein BigQuery-Dataset innerhalb des Perimeters abfrägt (z. B. mit dem Befehl bq query).

API-Anfragen mit mehreren Dienstperimetern

Wenn die aufgerufenen Ressourcen und/oder der API-Client zu verschiedenen Dienstperimetern gehören, müssen die Richtlinien aller betroffenen Perimeter die API-Anfrage zulassen. Angenommen, Sie haben einen Cloud Storage-Client und einen Bucket a innerhalb eines Dienstperimeters A und einen Bucket b innerhalb eines Dienstperimeters B. In diesem Beispiel sind die folgenden Regeln für eingehenden und ausgehenden Traffic erforderlich, damit der Cloud Storage-Client Objekte aus dem Bucket a in den Bucket b und aus dem Bucket b in den Bucket a kopieren kann:

  • einer Regel für ausgehenden Traffic im Perimeter A, um den Zugriff auf den Cloud Storage-Bucket b zu ermöglichen
  • einer Regel für ausgehenden Traffic im Perimeter B für den Zugriff auf den Cloud Storage-Bucket a
  • einer Regel für eingehenden Traffic im Perimeter B, um den Zugriff für den Cloud Storage-Client außerhalb des Perimeters B zuzulassen.

Referenz zu Regeln für eingehenden Traffic

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

- ingressFrom:
    identityType: ANY_IDENTITY
    *OR*
    identities:
    - serviceAccount:service-account
    - user:user-account
    sources:
    - resource: projects/project
      *OR*
    - accessLevel: access-level
  ingressTo:
    operations:
    - serviceName: service
      methodSelectors:
      - method: method
      *OR*
      - permission: permission
    resources:
    - projects/project
  • - 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:: Dieses Attribut oder das Attribut identityType muss verwendet werden. Mit diesem Attribut wird eine Liste von Dienstkonten oder Nutzerkonten erstellt, die auf Ressourcen im Perimeter zugreifen können.

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

  • user: Ein Nutzerkonto, 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 Google Cloud-Projekt. Wenn Sie das Attribut accessLevel auf \"*\" setzen, erlaubt die Richtlinie für eingehenden Traffic den Zugriff von jedem Netzwerkursprung.

  • - 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.

  • - 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. Wenn Sie das Attribut accessLevel auf \"*\" setzen, erlaubt die Richtlinie für eingehenden Traffic den Zugriff von jedem Netzwerkursprung.

  • 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 die Vorgänge zugelassen, die die Berechtigung benötigen.

  • 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.

Um eine funktionsfähige Regel für eingehenden Traffic zu erstellen, müssen Sie die folgenden Attribute angeben:

  • Attribut sources. Sie müssen ein accessLevel oder eine resource (Google Cloud-Projekt) angeben oder das Attribut accessLevel auf \"*\" setzen.
  • Attribut identityType oder identities
  • resources Attribut
  • serviceName Attribut

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

Ausgangsregeln können über die Google Cloud Console, eine JSON-Datei oder eine 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
    *OR*
    externalResources:
    - external-resource-path
  egressFrom:
    identityType: ANY_IDENTITY
    *OR*
    identities:
    - serviceAccount:service-account
    - user:user-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: - (Es muss dieses oder das Attribut method verwendet werden.) Dieses Feld muss eine gültige Dienstberechtigung sein. Der Zugriff auf die angegebenen Ressourcen außerhalb des Perimeters wird für Vorgänge zugelassen, für die diese Berechtigung erforderlich ist.

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

  • externalResources: - (Es muss dieses oder das Attribut resources verwendet werden.) Dieses Attribut ist eine Liste externer Ressourcen, auf die Clients innerhalb eines Perimeters zugreifen können. Dieses Attribut unterstützt nur AWS- oder Azure-Ressourcen. Für Amazon S3 ist das unterstützte Format s3://BUCKET_NAME. Für Azure Storage ist das unterstützte Format azure://myaccount.blob.core.windows.net/CONTAINER_NAME.

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

  • identityType: - (Es muss dieses oder das Attribut identities 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: - (Es muss dieses oder das Attribut identityType verwendet werden.) Mit diesem Attribut wird eine Liste von Dienstkonten oder Nutzerkonten 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.

  • user: Ein Nutzerkonto, das auf die angegebenen Ressourcen außerhalb des Perimeters 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. Dies kann auftreten, wenn eine bestimmte Methode für einen Dienst dazu führen kann, dass eine andere Methode in einem separaten Google Cloud-Dienst aufgerufen wird. BigQuery lädt beispielsweise 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.

Nicht unterstützte Funktionen

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

  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.
  4. Die Identitätstypen ANY_SERVICE_ACCOUNT und ANY_USER_ACCOUNT können nicht für das Erlauben der folgenden Vorgänge verwendet werden:

Beschränkungen

Informationen zu Beschränkungen für eingehenden und ausgehenden Traffic finden Sie unter Kontingente und Beschränkungen.