IAM-Rollen in Regeln für ein- und ausgehenden Traffic konfigurieren

Auf dieser Seite wird beschrieben, wie Sie IAM-Rollen (Identity and Access Management) in Regeln für ein- und ausgehenden Traffic verwenden, um den Zugriff auf durch Dienstperimeter geschützte Ressourcen zuzulassen.

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. Optional können Sie Ihre Regeln für eingehenden und ausgehenden Traffic mithilfe von IAM-Rollen einschränken. Wenn Sie in einer Regel eine IAM-Rolle angeben, sind nur Aktionen zulässig, die mit den Berechtigungen verknüpft sind, die Teil der IAM-Rolle sind.

Hinweise

IAM-Rollen in Ingress-Regeln konfigurieren

Console

Wenn Sie über die Google Cloud Console eine Ingress-Richtlinie eines Dienstperimeters aktualisieren oder eine Ingress-Richtlinie beim Erstellen des Perimeters festlegen, können Sie die Ingress-Regel so konfigurieren, dass IAM-Rollen verwendet werden:

  1. Wenn Sie in der Google Cloud Console einen Perimeter erstellen oder bearbeiten, wählen Sie Ingress-Richtlinie aus.

  2. Wählen Sie im Bereich Regeln für eingehenden Traffic eine vorhandene Regel aus oder klicken Sie auf Regel für eingehenden Traffic hinzufügen.

  3. Wählen Sie in der Ingress-Richtlinie im Abschnitt An in der Liste Vorgänge oder IAM-Rollen die Option IAM-Rollen auswählen (Vorabversion) aus.

  4. Klicken Sie auf IAM-Rollen hinzufügen.

  5. Wählen Sie im Bereich IAM-Rollen hinzufügen die IAM-Rollen aus, die Sie zulassen möchten.

    Informationen zu den unterstützten Diensten und Rollen finden Sie unter Unterstützte Produkte.

  6. Klicken Sie auf Ausgewählte IAM-Rollen hinzufügen.

  7. Klicken Sie auf Fertig.

Informationen zu den anderen Attributen für Regeln für eingehenden Traffic finden Sie in der Referenz zu Regeln für eingehenden Traffic.

gcloud

Sie können eine Ingress-Regel so konfigurieren, dass IAM-Rollen verwendet werden. Dazu können Sie eine JSON-Datei oder eine YAML-Datei verwenden. Im folgenden Beispiel wird das YAML-Format verwendet:

- ingressFrom:
    identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
    *OR*
    identities:
    - PRINCIPAL_IDENTIFIER
    sources:
    - resource: RESOURCE
      *OR*
    - accessLevel: ACCESS_LEVEL
  ingressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
    *OR*
    roles:
    - ROLE_NAME
    resources:
    - projects/PROJECT_NUMBER

Ersetzen Sie ROLE_NAME durch die IAM-Rollen, die den Zugriffsbereich für die in der Regel angegebenen Dienste definieren. Geben Sie eine einzelne Rolle oder eine Kombination von Rollen an, die alle Berechtigungen für den Zugriff auf die Dienste enthalten. Verwenden Sie zum Angeben einer Rolle die Formate für Rollennamen, die unter Rollenkomponenten aufgeführt sind, mit Ausnahme des folgenden Formats: projects/PROJECT_ID/roles/IDENTIFIER.

Informationen zu den unterstützten Diensten und Rollen finden Sie unter Unterstützte Produkte.

Informationen zu den anderen Attributen für Regeln für eingehenden Traffic finden Sie in der Referenz zu Regeln für eingehenden Traffic.

Nachdem Sie eine vorhandene Ingress-Regel aktualisiert haben, um IAM-Rollen zu konfigurieren, müssen Sie die Regelrichtlinien des Dienstbereichs aktualisieren:

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

Ersetzen Sie Folgendes:

  • PERIMETER_ID: Die ID des Dienstperimeters, den Sie aktualisieren möchten.
  • RULE_POLICY: der Pfad zur geänderten Ingress-Regelndatei.

Weitere Informationen finden Sie unter Richtlinien für ein- und ausgehenden Traffic für einen Dienstperimeter aktualisieren.

IAM-Rollen in Regeln für ausgehenden Traffic konfigurieren

Console

Wenn Sie über die Google Cloud Console eine Ausstiegsrichtlinie eines Dienstperimeters aktualisieren oder beim Erstellen des Perimeters eine Ausstiegsrichtlinie festlegen, können Sie die Ausstiegsregel so konfigurieren, dass IAM-Rollen verwendet werden:

  1. Wenn Sie einen Perimeter in der Google Cloud Console erstellen oder bearbeiten, wählen Sie Ausgangsrichtlinie aus.

  2. Wählen Sie im Bereich Regeln für ausgehenden Traffic eine vorhandene Regel für ausgehenden Traffic aus oder klicken Sie auf Regel für ausgehenden Traffic hinzufügen.

  3. Wählen Sie in der Richtlinie für den Datenexport im Abschnitt Zu in der Liste Vorgänge oder IAM-Rollen die Option IAM-Rollen auswählen (Vorabversion) aus.

  4. Klicken Sie auf IAM-Rollen hinzufügen.

  5. Wählen Sie im Bereich IAM-Rollen hinzufügen die IAM-Rollen aus, die Sie zulassen möchten.

    Informationen zu den unterstützten Diensten und Rollen finden Sie unter Unterstützte Produkte.

  6. Klicken Sie auf Ausgewählte IAM-Rollen hinzufügen.

  7. Klicken Sie auf Fertig.

Informationen zu den anderen Attributen für Regeln für ausgehenden Traffic finden Sie in der Referenz zu Regeln für ausgehenden Traffic.

gcloud

Sie können eine Ausgangsregel so konfigurieren, dass IAM-Rollen verwendet werden. Dazu können Sie eine JSON-Datei oder eine YAML-Datei verwenden. Im folgenden Beispiel wird das YAML-Format verwendet:

- egressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
    *OR*
    roles:
    - ROLE_NAME
    resources:
    - projects/PROJECT_NUMBER
  egressFrom:
    identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
    *OR*
    identities:
    - PRINCIPAL_IDENTIFIER
    sources:
    - resource: RESOURCE
      *OR*
    - accessLevel: ACCESS_LEVEL
    sourceRestriction: RESTRICTION_STATUS

Ersetzen Sie ROLE_NAME durch die IAM-Rollen, die den Zugriffsbereich für die in der Regel angegebenen Dienste definieren. Geben Sie eine einzelne Rolle oder eine Kombination von Rollen an, die alle Berechtigungen für den Zugriff auf die Dienste enthalten. Verwenden Sie zum Angeben einer Rolle die Formate für Rollennamen, die unter Rollenkomponenten aufgeführt sind, mit Ausnahme des folgenden Formats: projects/PROJECT_ID/roles/IDENTIFIER.

Informationen zu den unterstützten Diensten und Rollen finden Sie unter Unterstützte Produkte.

Informationen zu den anderen Attributen für Regeln für ausgehenden Traffic finden Sie in der Referenz zu Regeln für ausgehenden Traffic.

Nachdem Sie eine vorhandene Ausstiegsregel aktualisiert haben, um IAM-Rollen zu konfigurieren, müssen Sie die Regelrichtlinien des Dienstbereichs aktualisieren:

gcloud access-context-manager perimeters update PERIMETER_ID --set-egress-policies=RULE_POLICY.yaml

Ersetzen Sie Folgendes:

  • PERIMETER_ID: Die ID des Dienstperimeters, den Sie aktualisieren möchten.
  • RULE_POLICY: der Pfad zur geänderten Datei mit der Ausstiegsregel.

Weitere Informationen finden Sie unter Richtlinien für ein- und ausgehenden Traffic für einen Dienstperimeter aktualisieren.

Unterstützte Produkte

Sie können die IAM-Rollen der folgenden Google Cloud Dienste in den Regeln für eingehenden und ausgehenden Traffic verwenden:

Produkt Beschränkungen
Artifact Registry
artifactregistry.googleapis.com
  • Keine bekannten Einschränkungen.
BigQuery
bigquery.googleapis.com
  • Keine bekannten Einschränkungen.
BigQuery Data Transfer Service
bigquerydatatransfer.googleapis.com
  • Keine bekannten Einschränkungen.
Bigtable
bigtable.googleapis.com
  • Keine bekannten Einschränkungen.
Binärautorisierung
binaryauthorization.googleapis.com
  • Keine bekannten Einschränkungen.
Cloud Composer
composer.googleapis.com
  • Keine bekannten Einschränkungen.
Cloud Key Management Service
cloudkms.googleapis.com
Cloud Logging
logging.googleapis.com
  • Keine bekannten Einschränkungen.
Cloud Monitoring
monitoring.googleapis.com
  • Keine bekannten Einschränkungen.
Cloud Run
run.googleapis.com
  • Keine bekannten Einschränkungen.
Cloud Run-Funktionen
cloudfunctions.googleapis.com
  • Keine bekannten Einschränkungen.
Cloud SQL
sqladmin.googleapis.com
  • Keine bekannten Einschränkungen.
Cloud Storage
storage.googleapis.com
  • VPC Service Controls unterstützt benutzerdefinierte Rollen für Cloud Storage in den Ein- und Ausstiegsregeln, aber nicht die vordefinierten Cloud Storage-Rollen. Wenn Sie versuchen, eine vordefinierte Cloud Storage-Rolle in einer Eingangs- oder Ausgangsregel zu verwenden, gibt VPC Service Controls einen INVALID_ARGUMENT-Fehler zurück.
  • Wenn Sie eine Objekteinfügung oder eine API-Anfrage an Projekte ausführen, die durch VPC Service Controls geschützt sind, müssen Sie Regeln für ein- und ausgehenden Traffic konfigurieren, die die Berechtigungen storage.objects.delete und storage.objects.create zulassen.
  • Wenn Sie die Funktion Anforderer bezahlt in Cloud Storage aktivieren, unterstützt VPC Service Controls die Verwendung von Cloud Storage-Rollen in den Regeln für den Datenverkehr nicht.
Compute Engine
compute.googleapis.com
  • Keine bekannten Einschränkungen.
Dataflow
dataflow.googleapis.com
  • Keine bekannten Einschränkungen.
Dataproc
dataproc.googleapis.com
  • Keine bekannten Einschränkungen.
Google Kubernetes Engine
container.googleapis.com
  • Keine bekannten Einschränkungen.
Identitäts- und Zugriffsverwaltung
iam.googleapis.com
  • Keine bekannten Einschränkungen.
Pub/Sub
pubsub.googleapis.com
  • Keine bekannten Einschränkungen.
Resource Manager
cloudresourcemanager.googleapis.com
  • Keine bekannten Einschränkungen.
Secret Manager
secretmanager.googleapis.com
  • Keine bekannten Einschränkungen.
Spanner
spanner.googleapis.com
  • Keine bekannten Einschränkungen.

Eine Liste der vordefinierten IAM-Rollen dieser Dienste, die Sie in den Ein- und Ausstiegsregeln verwenden können, finden Sie unter Vordefinierte Rollen.

Es gibt jedoch einige IAM-Rollen in diesen Diensten, die entweder teilweise oder gar nicht für die Verwendung in den Regeln für den eingehenden und ausgehenden Traffic unterstützt werden, da einige oder alle zugrunde liegenden Berechtigungen nicht unterstützt werden:

  • Wenn Sie eine teilweise unterstützte IAM-Rolle in einer Eingangs- oder Ausgangsregel verwenden, ist die Regel für Anfragen oder Aktionen, die auf den zugrunde liegenden nicht unterstützten Berechtigungen basieren, nicht wirksam.

    Eine Liste der teilweise unterstützten Rollen und der zugehörigen nicht unterstützten Berechtigungen finden Sie unter Teilweise unterstützte IAM-Rollen.

  • Wenn Sie eine nicht unterstützte IAM-Rolle in einer Regel für eingehenden oder ausgehenden Traffic verwenden, ist die Regel unwirksam.

    Eine Liste der nicht unterstützten Rollen finden Sie unter Nicht unterstützte IAM-Rollen.

Wenn Sie in den Regeln für ein- und ausgehenden Traffic eine benutzerdefinierte Rolle verwenden möchten, muss diese nur die unterstützten Berechtigungen enthalten, die zu den unterstützten Diensten gehören. Eine Liste der nicht unterstützten Berechtigungen für die unterstützten Dienste finden Sie unter Teilweise unterstützte IAM-Rollen und Nicht unterstützte IAM-Rollen.

Sie können keine benutzerdefinierten Rollen verwenden, die Sie auf Projektebene erstellt haben. Mit anderen Worten: Sie können keine benutzerdefinierte Rolle mit folgendem Format verwenden: projects/PROJECT_ID/roles/IDENTIFIER.

Teilweise unterstützte IAM-Rollen

In der folgenden Tabelle sind die teilweise unterstützten IAM-Rollen bestimmter Dienste aufgeführt:

Produkt Teilweise unterstützte Rollen Nicht unterstützte Berechtigungen
Cloud SQL
  • roles/cloudsql.viewer
  • cloudsql.backupRuns.list
  • cloudaicompanion.*
  • roles/cloudsql.editor
  • cloudsql.backupRuns.list
  • cloudaicompanion.*
Cloud Storage
  • roles/storage.objectUser
  • storage.objects.move
Identity and Access Management
  • roles/iam.serviceAccountTokenCreator
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt
Resource Manager
  • roles/resourcemanager.tagAdmin
  • resourcemanager.tagKeys.get
  • resourcemanager.tagValues.get
  • roles/resourcemanager.tagUser
  • resourcemanager.tagKeys.get
  • resourcemanager.tagValues.get
  • alloydb.*
  • certificatemanager.*
  • clouddeploy.*
  • roles/resourcemanager.tagViewer
  • resourcemanager.tagKeys.get
  • resourcemanager.tagValues.get
  • alloydb.*
  • certificatemanager.*
  • clouddeploy.*
Spanner
  • roles/spanner.databaseReaderWithDataBoost
  • spanner.databases.useDataBoost
Andere teilweise unterstützte Rollen
  • Alle Rollen der unterstützten Dienste, die diese zugrunde liegenden nicht unterstützten Berechtigungen enthalten.
  • alloydb.*
  • backupdr.*
  • bigquerymigration.*
  • certificatemanager.*
  • cloudaicompanion.*
  • cloudasset.*
  • cloudbuild.*
  • clouddeploy.*
  • dataform.*
  • dataplex.*
  • dns.*
  • eventarc.*
  • networkconnectivity.*
  • networkmanagement.*
  • networksecurity.*
  • networkservices.*

Nicht unterstützte IAM-Rollen

In der folgenden Tabelle sind die nicht unterstützten IAM-Rollen bestimmter Dienste aufgeführt:

Produkt Nicht unterstützte Rollen
Identity and Access Management
  • roles/iam.denyReviewer
  • roles/iam.oauthClientViewer
  • roles/iam.operationViewer
  • roles/iam.workforcePoolEditor
  • roles/iam.workforcePoolViewer
  • roles/iam.workloadIdentityPoolViewer
  • roles/iam.workforcePoolEditor
  • roles/iam.workforcePoolViewer

Beschränkungen

  • Sie können keine rollenbasierten Ein- oder Ausstiegsregeln verwenden, um Anfragen zuzulassen, die die IAM-Zulassungsrichtlinie eines Projekts über die Perimetergrenze hinweg festlegen.

  • Wenn Sie aufgrund von Einschränkungen durch VPC Service Controls Probleme beim Laden der Bearbeitungsseite für Dienste in der Google Cloud Console haben, lässt sich das Problem möglicherweise nicht durch die Verwendung von IAM-Rollen in Ingress-Regeln beheben. Diese Einschränkung gilt nicht für die Seite nur zum Ansehen dieser Dienste.

  • Wenn eine Anfrage mehrere Ressourcentypen aus verschiedenen Projekten umfasst, funktioniert die Ein- oder Ausstiegsregel, die IAM-Rollen verwendet, möglicherweise nicht. Das ist beispielsweise der Fall, wenn Sie eine Dataflow-Vorlage starten, die Text aus Cloud Storage in einem anderen Projekt liest.

  • Wenn Sie eine benutzerdefinierte Rolle löschen, nachdem Sie auf sie in der Ein- oder Ausstiegsregel eines Perimeter verwiesen haben, kann der Perimeter nicht mehr bearbeitet werden.

Nächste Schritte