Kontextsensitiver Zugriff mit Regeln für eingehenden Traffic

Kontextsensitive Zugriffsregel-Setups für eingehenden Traffic ermöglichen den Zugriff auf Ressourcen basierend auf Clientattributen wie Netzwerkursprung (IP-Adresse oder VPC-Netzwerk), Identitätstyp (Dienstkonto oder Nutzer), Identität und Gerätedaten. Der Zugriff wird durch Regeln für eingehenden Traffic definiert.

Eine Übersicht über Regeln für ein- und ausgehenden Traffic finden Sie unter Regeln für ein- und ausgehenden Traffic.

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

Konfigurationsbeispiele für kontextsensitive Zugriffe

Dieser Abschnitt enthält die folgenden Beispiele für den kontextsensitiven Zugriff:

  1. Menschlichen Nutzern den Zugriff auf BigQuery über das Internet und nur den Zugriff bestimmter Dienstkonten über einen bestimmten IP-Bereich erlauben
  2. Mitarbeitern erlauben, BigQuery von vertrauenswürdigen Geräten über das Internet und ein bestimmtes Dienstkonto abzufragen, um Daten privat in einen Cloud Storage Bucket (Quelldaten) zu laden.

Menschlichen Nutzern den Zugriff auf BigQuery über das Internet und nur den Zugriff bestimmter Dienstkonten über einen bestimmten IP-Bereich erlauben

Eingehenden Traffic von erkannten Nutzern und Netzwerken

Angenommen, Sie haben den folgenden Perimeter definiert, der durch Listen des Perimeters mit gcloud ermittelt wird:

name: accessPolicies/222/servicePerimeters/Example
status:
  resources:
  - projects/111
  restrictedServices:
  - bigquery.googleapis.com
  - storage.googleapis.com
  vpcAccessibleServices:
    enableRestriction: true
    allowedServices:
    - RESTRICTED_SERVICES
title: Example

Nehmen wir außerdem an, dass eine Zugriffsebene namens "CorpDatacenters" definiert wurde. CorpDatacenters ist in diesem Beispiel ein IP-Bereich mit IP-Adressen von Unternehmensdatenzentren, auf die von den Dienstkonten zugegriffen werden kann.

Die folgende Richtlinie gilt für alle Menschen und bestimmte Dienstkonten, die auf eine bestimmte Gruppe von IP-Adressen beschränkt sind (definiert durch eine Zugriffsebene):

echo """
- ingressFrom:
    identities:
    - serviceAccount:my-sa@my-project.iam.gserviceaccount.com
    sources:
    - accessLevel: accessPolicies/222/accessLevels/CorpDatacenters
  ingressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: \"*\"
    resources:
    - \"*\"
- ingressFrom:
    identityType: ANY_USER_ACCOUNT
    sources:
    - accessLevel: \"*\"
  ingressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: \"*\"
    resources:
    - \"*\"
""" > ingress.yaml

Wenden Sie die Eingangsregeln an. Führen Sie dazu den folgenden Befehl aus:

gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml

Mitarbeitern erlauben, BigQuery abzufragen und Daten privat in einen Cloud Storage-Bucket zu laden

Eingehenden Traffic von erkannten Geräten und Netzwerken

Angenommen, Sie haben den folgenden Perimeter definiert, der durch Listen des Perimeters mit gcloud ermittelt wird:

name: accessPolicies/222/servicePerimeters/Example
status:
  resources:
  - projects/111
  restrictedServices:
  - bigquery.googleapis.com
  - storage.googleapis.com
  vpcAccessibleServices:
    enableRestriction: true
    allowedServices:
    - RESTRICTED_SERVICES
title: Example

Hier ist die Richtungsrichtlinie, mit der Nutzer von vertrauenswürdigen Geräten (mithilfe einer Zugriffsebene) und einem bestimmten privaten Dienstkonto auf BigQuery-Ansichten zugreifen können, um über ein autorisiertes VPC-Netzwerk auf Cloud-Speicher zuzugreifen:

echo """
- ingressFrom:
    identities:
    - serviceAccount:my-sa@my-project.iam.gserviceaccount.com
    sources:
    - resource: projects/111
  ingressTo:
    operations:
    - serviceName: storage.googleapis.com
      methodSelectors:
      - method: google.storage.Write
      - method: google.storage.objects.create
    resources:
    - \"*\"

- ingressFrom:
    identityType: ANY_SERVICE_ACCOUNT
    sources:
      - resource: //compute.googleapis.com/projects/my-network-project/global/networks/top-tier-vpc-network
  ingressTo:
    operations:
    - serviceName: storage.googleapis.com
      methodSelectors:
      - method: google.storage.Write
      - method: google.storage.objects.create
    resources:
    - \"*\"

- ingressFrom:
    identityType: ANY_USER_ACCOUNT
    sources:
    - accessLevel: accessPolicies/222/accessLevels/TrustedDevices
  ingressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - permission: bigquery.tables.getData
    resources:
    - \"*\"
""" > ingress.yaml

Wenden Sie die Eingangsregeln an. Führen Sie dazu den folgenden Befehl aus:

gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml

Informationen zu den Einschränkungen von VPC-Netzwerken bei der Verwendung in Dienstperimetern finden Sie unter Einschränkungen von VPC-Netzwerken.