Bergantung pada integrasi Anda, Anda harus mengonfigurasi aturan untuk aliran data berikut:
- Membuat kueri data SAP (SAP ke BDC): Untuk membuat kueri tabel SAP dari Google Cloud, Anda harus mengonfigurasi aturan egress.
- Memublikasikan data ke SAP (BDC ke SAP): Untuk memublikasikan data ke SAP, Anda harus mengonfigurasi aturan ingress.
Aturan egress untuk membuat kueri SAP
Anda mungkin melihat error ini saat membuat kueri tabel SAP:
VPC Service Controls: Request is prohibited by organization's policy. File: gs://example-bucket/path/to/file
Hal ini terjadi karena BigQuery harus membaca bucket eksternal Cloud Storage yang menghosting data tabel. Jika perimeter Anda membatasi storage.googleapis.com, Anda mungkin menerima error RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER karena bucket eksternal berada di luar perimeter Anda. Untuk mengatasinya, konfigurasikan aturan egress.
Untuk mengetahui informasi selengkapnya, lihat Resource yang tidak berada di
perimeter yang sama.
Mengonfigurasi aturan egress
Konfigurasi ini berlaku jika lanskap SAP Anda di-deploy di Google Cloud.
Jika project Anda menggunakan Kontrol Layanan VPC dan perimeter membatasi storage.googleapis.com, Anda harus mengonfigurasi aturan egress untuk mengizinkan BigQuery membaca bucket Cloud Storage SAP untuk kueri tabel.
Periksa perimeter saat ini.
PERIMETER_NAME=accessPolicies/ACCESS_POLICY/servicePerimeters/PERIMETER gcloud access-context-manager perimeters describe ${PERIMETER_NAME}Ganti kode berikut:
ACCESS_POLICY: kebijakan akses Anda.PERIMETER: perimeter layanan Anda.
Perimeter Anda membatasi pembacaan bucket Cloud Storage jika respons mencakup:
resources: - projects/PROJECT_ID ... restrictedServices: - storage.googleapis.comEkspor aturan egress saat ini dan tambahkan aturan untuk mengizinkan pembacaan bucket Cloud Storage.
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.yamlGanti kode berikut:
ACCESS_POLICY: kebijakan akses Anda.PERIMETER: perimeter layanan Anda.
Tambahkan aturan ini ke
egress-policies.yamlagar Anda dapat membaca bucket Cloud Storage di luar perimeter:- 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: - '*'Perbarui perimeter layanan:
gcloud access-context-manager perimeters update ${PERIMETER_NAME} \ --set-egress-policies=egress-policies.yamlVerifikasi kebijakan egress yang diperbarui:
gcloud access-context-manager perimeters describe ${PERIMETER_NAME}
Aturan ingress untuk memublikasikan data ke SAP
SAP perlu membuat kueri Lakehouse API untuk membaca tabel Lakehouse. Aturan VPC SC Anda mungkin memblokir hal ini jika perimeter project membatasi layanan biglake.googleapis.com.
Jika project Anda menerapkan Kontrol Layanan VPC, dan perimeter yang diterapkan pada project membatasi layanan biglake.googleapis.com, Anda harus mengonfigurasi aturan ingress untuk mengizinkan principal gabungan SAP mengakses Lakehouse API.
Mengonfigurasi aturan ingress
Periksa perimeter saat ini.
PERIMETER_NAME=accessPolicies/ACCESS_POLICY/servicePerimeters/PERIMETER gcloud access-context-manager perimeters describe ${PERIMETER_NAME}Ganti kode berikut:
ACCESS_POLICY: kebijakan akses Anda.PERIMETER: perimeter layanan Anda.
Perimeter layanan Anda dapat membatasi Lakehouse API jika respons berisi:
resources: - projects/PROJECT_ID ... restrictedServices: - biglake.googleapis.comEkspor aturan ingress saat ini dan tambahkan aturan untuk mengizinkan principal gabungan SAP memanggil Lakehouse API.
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.yamlGanti kode berikut:
ACCESS_POLICY: kebijakan akses Anda.PERIMETER: perimeter layanan Anda.
Tambahkan aturan untuk principal gabungan SAP:
- 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: - '*'Ganti kode berikut:
PROJECT_ID: project ID yang berisi workload identity pool.POOL_NAME: nama workload identity pool.SUBJECT: UUID yang dikeluarkan oleh penerbit sisi SAP untuk workload.
Perbarui perimeter layanan:
gcloud access-context-manager perimeters update ${PERIMETER_NAME} \ --set-ingress-policies=ingress-policies.yamlVerifikasi kebijakan yang diperbarui:
gcloud access-context-manager perimeters describe ${PERIMETER_NAME}