Abhängig von Ihrer Integration müssen Sie Regeln für die folgenden Datenflüsse konfigurieren:
- SAP-Daten abfragen (SAP zu BDC): Wenn Sie SAP-Tabellen ausGoogle Cloudabfragen möchten, müssen Sie eine Egress-Regel konfigurieren.
- Daten in SAP veröffentlichen (BDC in SAP): Wenn Sie Daten in SAP veröffentlichen möchten, müssen Sie eine Eingangsregel konfigurieren.
Regeln für ausgehenden Traffic für Abfragen von SAP
Dieser Fehler kann beim Abfragen von SAP-Tabellen auftreten:
VPC Service Controls: Request is prohibited by organization's policy. File: gs://example-bucket/path/to/file
Das liegt daran, dass BigQuery externe Cloud Storage-Buckets lesen muss, in denen die Tabellendaten gehostet werden. Wenn Ihr Perimeter storage.googleapis.com einschränkt, erhalten Sie möglicherweise einen RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER-Fehler, weil sich der externe Bucket außerhalb Ihres Perimeters befindet. Konfigurieren Sie eine Regel für ausgehenden Traffic, um dieses Problem zu beheben.
Weitere Informationen finden Sie unter Ressourcen, die sich nicht im selben Perimeter befinden.
Regeln für ausgehenden Traffic konfigurieren
Diese Konfiguration gilt, wenn Ihre SAP-Umgebung aufGoogle Cloudbereitgestellt wird.
Wenn in Ihrem Projekt VPC Service Controls verwendet werden und der Perimeter storage.googleapis.com einschränkt, müssen Sie eine Ausgangsregel konfigurieren, damit BigQuery SAP Cloud Storage-Buckets für Tabellenabfragen lesen kann.
Überprüfen Sie den aktuellen Perimeter.
PERIMETER_NAME=accessPolicies/ACCESS_POLICY/servicePerimeters/PERIMETER gcloud access-context-manager perimeters describe ${PERIMETER_NAME}Ersetzen Sie Folgendes:
ACCESS_POLICY: Ihre Zugriffsrichtlinie.PERIMETER: Ihr Dienstperimeter.
Ihr Perimeter schränkt das Lesen von Cloud Storage-Bucket ein, wenn die Antwort Folgendes enthält:
resources: - projects/PROJECT_ID ... restrictedServices: - storage.googleapis.comExportieren Sie die aktuellen Regeln für ausgehenden Traffic und hängen Sie eine Regel an, um das Lesen von Cloud Storage-Buckets zu ermöglichen.
PERIMETER_NAME=accessPolicies/ACCESS_POLICY/servicePerimeters/PERIMETER gcloud access-context-manager perimeters describe ${PERIMETER_NAME} \ --format="yaml(status.egressPolicies)" | sed '1,2d; s/^ //' > egress-policies.yamlErsetzen Sie Folgendes:
ACCESS_POLICY: Ihre Zugriffsrichtlinie.PERIMETER: Ihr Dienstperimeter.
Hängen Sie diese Regel an
egress-policies.yamlan, damit Sie Cloud Storage-Buckets außerhalb des Perimeters lesen können:- egressFrom: identityType: ANY_IDENTITY egressTo: operations: - methodSelectors: - method: google.storage.buckets.get - method: google.storage.objects.get - method: google.storage.objects.list serviceName: storage.googleapis.com resources: - '*'Aktualisieren Sie den Dienstperimeter:
gcloud access-context-manager perimeters update ${PERIMETER_NAME} \ --set-egress-policies=egress-policies.yamlAktualisierte Egress-Richtlinien prüfen:
gcloud access-context-manager perimeters describe ${PERIMETER_NAME}
Regeln für eingehenden Traffic für die Veröffentlichung von Daten in SAP
SAP muss die Lakehouse API abfragen, um Lakehouse-Tabellen zu lesen. Ihre VPC SC-Regeln blockieren dies möglicherweise, wenn der Perimeter des Projekts den biglake.googleapis.com-Dienst einschränkt.
Wenn für Ihr Projekt VPC Service Controls erzwungen wird und der auf das Projekt angewendete Perimeter den biglake.googleapis.com-Dienst einschränkt, müssen Sie eine Ingress-Regel konfigurieren, damit SAP-Verbundidentitäten auf Lakehouse APIs zugreifen können.
Regeln für eingehenden Traffic konfigurieren
Überprüfen Sie den aktuellen Perimeter.
PERIMETER_NAME=accessPolicies/ACCESS_POLICY/servicePerimeters/PERIMETER gcloud access-context-manager perimeters describe ${PERIMETER_NAME}Ersetzen Sie Folgendes:
ACCESS_POLICY: Ihre Zugriffsrichtlinie.PERIMETER: Ihr Dienstperimeter.
Ihr Dienstperimeter kann die Lakehouse API einschränken, wenn die Antwort Folgendes enthält:
resources: - projects/PROJECT_ID ... restrictedServices: - biglake.googleapis.comExportieren Sie die aktuellen Regeln für eingehenden Traffic und hängen Sie eine Regel an, mit der SAP-Verbundidentitäten Lakehouse-APIs aufrufen können.
PERIMETER_NAME=accessPolicies/ACCESS_POLICY/servicePerimeters/PERIMETER gcloud access-context-manager perimeters describe ${PERIMETER_NAME} \ --format="yaml(status.ingressPolicies)" | sed '1,2d; s/^ //' > ingress-policies.yamlErsetzen Sie Folgendes:
ACCESS_POLICY: Ihre Zugriffsrichtlinie.PERIMETER: Ihr Dienstperimeter.
Hängen Sie eine Regel für das föderierte SAP-Hauptkonto an:
- ingressFrom: identities: - principal://iam.googleapis.com/projects/PROJECT_ID/locations/global/workloadIdentityPools/POOL_NAME/subject/SUBJECT sources: - accessLevel: '*' ingressTo: operations: - methodSelectors: - method: '*' serviceName: biglake.googleapis.com resources: - '*'Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID des Projekts, das den Workload Identity-Pool enthält.POOL_NAME: der Name des Workload Identity-Pools.SUBJECT: die UUID, die vom SAP-seitigen Aussteller für die Arbeitslast ausgestellt wurde.
Aktualisieren Sie den Dienstperimeter:
gcloud access-context-manager perimeters update ${PERIMETER_NAME} \ --set-ingress-policies=ingress-policies.yamlAktualisierte Richtlinien prüfen:
gcloud access-context-manager perimeters describe ${PERIMETER_NAME}