1. Pengantar
Di lab ini, kita akan mempelajari cara melindungi BigQuery Data Transfer Service, menggunakan Kontrol Layanan VPC, saat mentransfer data dari Cloud Storage ke set data BigQuery. Kemudian, kami melindungi Cloud Storage dan mengulangi proses untuk mentransfer data dari Cloud Storage ke BigQuery. Perlindungan Cloud Storage menyebabkan pelanggaran Kontrol Layanan VPC, yang perlu diperbaiki agar transfer berhasil. Pada akhirnya, kami juga melindungi BigQuery, lalu mencoba menyalin set data antar-project, yang juga menyebabkan pelanggaran yang perlu diperbaiki.
Di sepanjang lab ini, kita akan melihat cara memperbaiki pelanggaran ingress dan egress menggunakan aturan ingress dan egress masing-masing. Kita juga akan menggunakan tingkat akses untuk memperbaiki pelanggaran masuk BigQuery Data Transfer. Sasaran codelab ini adalah:
- Pahami cara memperbaiki pelanggaran ingress dan egress menggunakan aturan ingress dan egress masing-masing di berbagai layanan, terutama Cloud Storage, BigQuery, dan BigQuery Data Transfer Service.
- Pahami alasan terjadinya pelanggaran tertentu.
2. Penyiapan dan Persyaratan Resource
Sebelum memulai
Dalam codelab ini, kami mengasumsikan bahwa Anda sudah mengetahui:
- Cara membuat folder
- Cara membuat project di folder atau memindahkan project yang ada di folder
- Cara membuat kebijakan akses tercakup
- Cara membuat dan mengonfigurasi perimeter layanan dari Konsol Google Cloud
- Cara menemukan log pelanggaran dari log audit
Penyiapan
Penyiapan awal kami dirancang sebagai berikut:
- Organisasi Google Cloud.
- Folder di bagian Organisasi. Untuk codelab ini, kita akan menyebutnya
codelab-folder. - Dua project Google Cloud di folder
codelab-folder. Untuk codelab ini, kita menyebut projectnyaproject-1danproject-2.- Jika Anda belum membuat folder dan project, di konsol Google Cloud, buat folder di bagian Organisasi dan buat dua project baru.
- Izin yang diperlukan: Peran IAM untuk mengelola folder, Peran IAM untuk mengelola project, Peran IAM yang diperlukan untuk mengonfigurasi Kontrol Layanan VPC, Peran IAM untuk mengelola BigQuery, dan Peran IAM untuk mengelola Cloud Storage.
- Akun penagihan untuk project
project-1danproject-2.
Membuat kebijakan tercakup dan perimeter layanan reguler
Dalam codelab ini, kita akan menggunakan perimeter layanan reguler yang melindungi project-2.
- Buat kebijakan akses tercakup, yang dicakup di tingkat folder
codelab-folder. Untuk codelab ini, kita mengasumsikan bahwa kebijakan akses yang dibuat memiliki ID987654321. - Buat perimeter reguler, kita sebut
perimeter-2, dan tambahkan projectproject-2.
Di perimeter perimeter-2, batasi BigQuery Data Transfer API.

Pembuatan bucket Cloud Storage dan set data BigQuery
Untuk tujuan codelab ini, file CSV apa pun sudah cukup, terlepas dari kontennya. Batasan utama terkait dengan persyaratan kolokasi yang mewajibkan:
- Jika set data BigQuery Anda berada di multi-region, bucket Cloud Storage yang berisi data yang Anda transfer harus berada di multi-region yang sama atau di lokasi yang terdapat dalam multi-region.
- Jika set data Anda berada di suatu region, bucket Cloud Storage Anda harus berada di region yang sama.
Selanjutnya, untuk codelab ini, kita akan memastikan bahwa bucket Cloud Storage dan set data BigQuery berada di region atau multi-region yang sama.
Buat bucket Cloud Storage baru di project project-1
Untuk membuat bucket Cloud Storage baru, ikuti langkah-langkah yang didokumentasikan untuk membuat bucket baru.
- Untuk nama bucket, masukkan nama yang memenuhi persyaratan nama bucket. Untuk codelab ini, kita akan memanggil bucket
codelab-bqtransfer-bucket. - Untuk tempat penyimpanan data, lokasi bucket, pilih Jenis lokasi dan Lokasi tempat data bucket akan disimpan secara permanen. Untuk codelab ini, kita akan menggunakan us (multiple regions in United States).

Membuat file CSV
Dari mesin lokal atau menggunakan Cloud Shell, kita dapat menggunakan perintah echo untuk membuat contoh file CSV, codelab-test-file.csv, menggunakan perintah berikut:
echo "name,age" > codelab-test-file.csv; \
echo "Alice,10" >> codelab-test-file.csv; \
echo "Bob,20" >> codelab-test-file.csv; \
echo "Carol,30" >> codelab-test-file.csv; \
echo "Dan,40" >> codelab-test-file.csv; \
echo "Eve,50" >> codelab-test-file.csv; \
echo "Frank,60" >> codelab-test-file.csv; \
echo "Grace,70" >> codelab-test-file.csv; \
echo "Heidi,80" >> codelab-test-file.csv;
Mengupload file CSV ke bucket Cloud Storage
Setelah file CSV dibuat, jalankan perintah berikut untuk mengupload objek file ke bucket yang dibuat:
gcloud storage cp codelab-test-file.csv gs://codelab-bqtransfer-bucket

Anda dapat memverifikasi bahwa file telah diupload ke bucket yang dibuat dengan mencantumkan objek dalam bucket atau menjalankan perintah berikut:
gcloud storage ls --recursive gs://codelab-bqtransfer-bucket/**
Membuat set data dan tabel BigQuery di project-2
- Buat set data BigQuery, di project
project-2dengan mengikuti langkah-langkah ini.- Untuk ID Set Data, masukkan nama set data yang unik. Untuk codelab ini, kita menggunakan:
codelab_bqtransfer_dataset. - Untuk Location type, pilih lokasi geografis untuk set data. Untuk codelab ini, kita menggunakan lokasi yang sama dengan bucket Cloud Storage: US (multiple regions in the United States).

- Untuk ID Set Data, masukkan nama set data yang unik. Untuk codelab ini, kita menggunakan:
- Buat tabel BigQuery, di bagian set data yang dibuat
codelab_bqtransfer_dataset, dengan mengikuti langkah-langkah ini.- Di bagian Source, pilih Empty table dalam daftar Create table from.
- Di kolom Table, masukkan nama tabel yang ingin Anda buat. Untuk codelab ini, kita menggunakan nama:
codelab-bqtransfer-table. - Pastikan kolom Table type disetel ke Native table.
- Di bagian Schema, masukkan definisi schema. Anda dapat memasukkan informasi skema dengan mengklik Edit sebagai teks dan memasukkan skema berikut, yang sesuai dengan format file CSV yang dibuat.
[{ "name": "name", "type": "STRING", "mode": "NULLABLE", "description": "The name" }, { "name": "age", "type": "INTEGER", "mode": "NULLABLE", "description": "The age" }]
Biaya
Anda harus mengaktifkan penagihan di project project-2 dan project-1 untuk menggunakan resource/API Cloud. Sebaiknya nonaktifkan resource yang digunakan agar tidak menimbulkan penagihan di luar codelab ini.
Resource yang menimbulkan biaya adalah BigQuery dan Cloud Storage. Perkiraan biaya dapat ditemukan di kalkulator harga BigQuery dan kalkulator Cloud Storage.
3. Mengonfigurasi Transfer Data dari Objek Cloud Storage ke Tabel BigQuery
Sekarang kita akan mencoba membuat Data Transfer Service (di project-2) untuk mentransfer dari Cloud Storage (yang berada di project-1) ke BigQuery (yang berada di project-2), sekaligus mengaktifkan Kontrol Layanan VPC untuk melindungi BigQuery Data Transfer Service di project-2. Hanya melindungi BigQuery Data Transfer Service (tanpa melindungi BigQuery dan Cloud Storage) membatasi prinsipal untuk hanya membuat dan mengelola transfer data (seperti memulai transfer data secara manual).
Menyiapkan transfer data dari Cloud Storage
Untuk membuat transfer data, ikuti langkah-langkah berikut:
- Buka halaman BigQuery di konsol Google Cloud
project-2. - Klik Data transfers.

Menyelidiki pelanggaran saat mengakses halaman Transfer data
Di konsol Google Cloud, kita dapat melihat ID unik VPC Service Controls. Gunakan ID yang sama untuk memfilter log dan mengidentifikasi detail pelanggaran (ganti OBSERVED_VPCSC_DENIAL_UNIQUE_ID dengan ID penolakan yang diamati):
protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.metadata.vpcServiceControlsUniqueId="OBSERVED_VPCSC_DENIAL_UNIQUE_ID"
Pelanggaran yang diamati adalah NO_MATCHING_ACCESS_LEVEL, yang merupakan pelanggaran ingress dengan detail yang mirip dengan berikut ini:
ingressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
targetResource: "projects/[PROJECT2_NUMBER]"
}]
violationReason: "NO_MATCHING_ACCESS_LEVEL"
callerIp: "USER_PUBLIC_IP_ADDRESS"
resource: {
labels: {
method: "google.cloud.bigquery.datatransfer.v1.DataTransferService.ListTransferConfigs"
project_id: "project-2"
service: "bigquerydatatransfer.googleapis.com"
}
type: "audited_resource"
}
Mengakses halaman Transfer data akan mencoba mencantumkan transfer data yang dikonfigurasi; oleh karena itu, terjadi pelanggaran metode ListTransferConfigs.
Memperbaiki pelanggaran untuk layanan bigquerydatatransfer.googleapis.com
Tingkat akses atau aturan ingress dapat digunakan untuk memperbaiki pelanggaran ingress. Dalam codelab ini, mari kita gunakan aturan ingress yang dikonfigurasi dengan identitas pengguna yang ditolak, yang memungkinkan akses ke layanan bigquerydatatransfer.googleapis.com dan semua metode.

Setelah aturan ingress diterapkan, akses ke halaman Transfer data akan berfungsi tanpa masalah.
Melanjutkan penyiapan transfer data dari Cloud Storage
Dari langkah-langkah sebelumnya, saat berada di halaman Transfer data (setelah mengklik Transfer data), lanjutkan dengan langkah-langkah berikut:
- Klik + Buat transfer.
- Di bagian Source type, untuk Source, pilih Google Cloud Storage.
- Di bagian Transfer config name, untuk Display name, masukkan nama untuk transfer, misalnya
Codelab Transfer. - Di bagian Opsi jadwal:
- Pilih Repeat frequency seperti 15 menit.
- Pastikan untuk memilih Mulai sekarang; jika tidak, transfer data hanya akan dimulai setelah Frekuensi pengulangan yang dikonfigurasi
- Di bagian Destination settings, untuk Destination dataset, pilih set data yang Anda buat untuk menyimpan data:
codelab_bqtransfer_dataset - Di bagian Data source details
- Untuk Destination table, masukkan nama tabel tujuan. Tabel tujuan harus mengikuti aturan penamaan tabel. Untuk codelab ini, kita akan menggunakan tabel yang kita buat sebelumnya:
codelab-bqtransfer-table - Untuk Cloud Storage URI, masukkan Cloud Storage URI. Untuk codelab ini, kita menggunakan bucket dan file yang dibuat:
codelab-bqtransfer-bucket/codelab-test-file.csv - Untuk Write preference, pertahankan
APPEND(atau pilihMIRROR). - JANGAN memilih untuk menghapus file setelah transfer (Karena kita akan menggunakan kembali file yang sama beberapa kali. Namun, Anda dapat menggunakan beberapa file dan menghapus file sumber setelah transfer)
- Untuk File format, pilih CSV
- Dalam Opsi Transfer, di bagian CSV, masukkan koma(",") sebagai Pembatas kolom.
- Untuk Destination table, masukkan nama tabel tujuan. Tabel tujuan harus mengikuti aturan penamaan tabel. Untuk codelab ini, kita akan menggunakan tabel yang kita buat sebelumnya:
- Di menu Service Account, pilih akun layanan dari akun layanan yang terkait dengan project Google Cloud Anda
- Akun layanan yang dipilih harus memiliki izin yang diperlukan untuk Cloud Storage di project yang menghosting bucket penyimpanan;
project-1di codelab ini. - Untuk codelab ini, kita akan menggunakan akun layanan yang dibuat di
project-2sebagaicodelab-sa@project-2.iam.gserviceaccount.com.
- Akun layanan yang dipilih harus memiliki izin yang diperlukan untuk Cloud Storage di project yang menghosting bucket penyimpanan;
- Klik Simpan.
Karena kita memilih Mulai Sekarang sebagai opsi jadwal, transfer pertama akan dimulai segera setelah Simpan dipilih.
Memverifikasi status layanan transfer data
Untuk memverifikasi status transfer data yang dikonfigurasi:
- Buka halaman BigQuery di konsol Google Cloud
- Klik Data transfers.
- Daftar transfer yang dikonfigurasi akan ditampilkan

Klik Codelab Transfer (di bagian Nama tampilan) dan daftar semua proses yang telah dilakukan sejauh ini akan ditampilkan.

Proses transfer data harus berhasil, tanpa pelanggaran Kontrol Layanan VPC untuk transfer data yang dipicu secara manual dan terjadwal. Perhatikan bahwa hanya transfer yang dipicu secara manual yang memerlukan aturan ingress untuk mengizinkan akses ke akun utama yang memulai transfer secara manual.
4. Pembatasan Alamat IP untuk Transfer Data yang Dipicu Secara Manual
Aturan ingress yang dikonfigurasi saat ini memungkinkan identitas yang dikonfigurasi untuk memicu transfer data secara manual dari alamat IP mana pun.
Dengan penggunaan tingkat akses, Kontrol Layanan VPC memberikan kemampuan untuk membatasi akses yang diizinkan berdasarkan atribut permintaan API tertentu, terutama:
- Subnetwork IP: memeriksa apakah permintaan berasal dari alamat IP tertentu.
- Wilayah: memeriksa apakah permintaan berasal dari wilayah tertentu, yang ditentukan oleh geolokasi alamat IP.
- Principal: memeriksa apakah permintaan berasal dari akun tertentu.
- Kebijakan perangkat: memeriksa apakah permintaan berasal dari perangkat yang memenuhi persyaratan tertentu.
Untuk menerapkan verifikasi atribut ini bersama dengan aturan ingress yang sudah dikonfigurasi, kita harus membuat tingkat akses yang mengizinkan atribut yang diinginkan, lalu menambahkan tingkat akses yang dibuat sebagai sumber dalam aturan ingress.
Diagram ini menggambarkan akses yang dimulai oleh dua prinsipal (
user@example.com dan user2@example.com) dalam tiga skenario, yang menunjukkan cara Kontrol Layanan VPC mengevaluasi sumber (tingkat akses ingress) dan atribut identitas sebagai kondisi AND yang keduanya harus cocok.
- Pengguna user@example.com diizinkan mengakses saat mencoba mengakses dari alamat IP yang diizinkan oleh tingkat akses, karena alamat IP dan akun penggunanya cocok dengan konfigurasi dalam aturan ingress.
- Pengguna user@example.com diblokir aksesnya saat alamat IP-nya tidak cocok dengan alamat IP yang diizinkan, meskipun akunnya adalah akun yang dikonfigurasi dalam aturan ingress.
- Pengguna user2@example.com diblokir aksesnya meskipun mencoba mengakses dari alamat IP yang diizinkan, karena akunnya tidak diizinkan oleh aturan ingress.
Buat tingkat akses
Untuk membuat tingkat akses yang membatasi akses berdasarkan alamat IP:
- Buka halaman Access Context Manager di konsol Google Cloud.
- Jika diminta, pilih folder
codelab-folder.
- Jika diminta, pilih folder
- Di bagian atas halaman Access Context Manager, klik CREATE ACCESS LEVEL.
- Di panel New Access Level, beri Judul untuk tingkat akses baru. Untuk codelab ini, kita akan menyebutnya
project_2_al. - Di bagian Kondisi, klik + di depan subnetwork IP.
- Di kotak IP Subnetworks, pilih Public IP
- Sebagai alternatif, Anda dapat memilih untuk menggunakan IP Pribadi untuk menggunakan alamat IP internal di tingkat akses. Namun, untuk codelab ini, kita menggunakan IP publik.
- Masukkan satu atau beberapa rentang IPv4 atau IPv6 yang diformat sebagai blok CIDR.
Menambahkan tingkat akses dalam aturan ingress
Dalam aturan ingress, tingkat akses dirujuk di kolom sources, yang merupakan kolom wajib diisi seperti yang didokumentasikan dalam referensi aturan ingress. Untuk mengizinkan ingress ke resource, Kontrol Layanan VPC mengevaluasi atribut sources dan identityType sebagai kondisi AND. Aturan ingress menggunakan identitas akun utama yang memicu transfer data secara manual, bukan akun layanan yang ditentukan dalam konfigurasi transfer data.

Jalankan kembali transfer dengan konfigurasi yang membatasi akses menurut alamat IP
Untuk mengevaluasi efektivitas konfigurasi yang diterapkan, picu transfer lagi menggunakan skenario berikut:
- menggunakan alamat IP dalam rentang yang diizinkan di tingkat akses yang dirujuk oleh aturan ingress.
- menggunakan alamat IP yang tidak diizinkan oleh konfigurasi
Akses dari alamat IP yang diizinkan akan berhasil, sedangkan akses dari alamat IP yang tidak diizinkan akan gagal dan menghasilkan pelanggaran Kontrol Layanan VPC.
Salah satu cara mudah untuk menguji menggunakan alamat IP yang berbeda adalah dengan mengizinkan alamat IP yang ditetapkan saat menggunakan Konsol Google Cloud, lalu menguji saat menggunakan Cloud Shell.
Di Cloud Shell, jalankan perintah berikut untuk memicu transfer secara manual, dengan mengganti RUN_TIME dan RESOURCE_NAME:
bq mk \
--transfer_run \
--run_time='RUN_TIME' \
RESOURCE_NAME
Misalnya, perintah contoh berikut akan segera dijalankan untuk konfigurasi transfer 12345678-90ab-cdef-ghij-klmnopqrstuv di project 1234567890.
NOW=$(TZ=GMT date +"%Y-%m-%dT%H:%M:%SZ");
bq mk \
--transfer_run \
--run_time=$NOW \
projects/1234567890/locations/us/transferConfigs/12345678-90ab-cdef-ghij-klmnopqrstuv
Output yang diamati menunjukkan pelanggaran Kontrol Layanan VPC, seperti yang diharapkan, karena alamat IP tidak diizinkan.

Pelanggaran yang diamati ada pada metode DataTransferService.StartManualTransferRuns.
ingressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
targetResource: "projects/[PROJECT2_NUMBER]"
targetResourcePermissions: [0: "vpcsc.permissions.unavailable"]
}]
violationReason: "RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER"
resource: {
labels: {
method: "google.cloud.bigquery.datatransfer.v1.DataTransferService.StartManualTransferRuns"
project_id: "project-2"
service: "bigquerydatatransfer.googleapis.com"
}
type: "audited_resource"
}
severity: "ERROR"
5. Memulai Transfer Data Sambil Melindungi Layanan Cloud Storage
Karena kita melakukan transfer dari Cloud Storage ke BigQuery, mari tambahkan Cloud Storage di antara layanan yang dilindungi oleh Kontrol Layanan VPC dan lihat apakah transfer tetap berhasil.
Dalam konfigurasi perimeter-2, tambahkan Cloud Storage API sebagai salah satu Layanan yang Dibatasi, bersama dengan BigQuery Data Transfer API.

Setelah mengamankan Cloud Storage API, tunggu transfer data terjadwal berikutnya, atau picu transfer secara manual menggunakan langkah-langkah berikut:
- Buka halaman BigQuery di konsol Google Cloud.
- Klik Data transfers.
- Pilih transfer Anda dari daftar: untuk codelab ini, kita menggunakan transfer Codelab Transfer
- Klik Jalankan transfer sekarang
- Klik Oke.
Transfer lain akan dimulai. Anda mungkin perlu memuat ulang halaman untuk melihatnya. Kali ini transfer akan gagal karena pelanggaran Kontrol Layanan VPC.

Menyelidiki pelanggaran Kontrol Layanan VPC Cloud Storage
Memfilter log audit menggunakan vpcServiceControlsUniqueIdentifier seperti yang terlihat dalam Ringkasan transfer.
Pelanggaran yang diamati adalah pelanggaran egress RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER dengan detail berikut:
- Principal adalah akun layanan yang dikonfigurasi di Layanan Transfer Data (baik dipicu secara manual atau menjalankan transfer data terjadwal, principal yang ditolak akan sama).
- Layanan yang terpengaruh adalah Cloud Storage
- Sumber permintaan adalah project tempat Data Transfer Service dikonfigurasi:
project-2 - Project target adalah project tempat objek Cloud Storage berada:
project-1
principalEmail: "codelab-sa@project-2.iam.gserviceaccount.com"
egressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
source: "projects/[PROJECT2_NUMBER]"
sourceType: "Resource"
targetResource: "projects/[PROJECT1_NUMBER]"
targetResourcePermissions: [0: "storage.objects.get"]
}]
labels: {
method: "google.storage.objects.get"
project_id: "project-2"
service: "storage.googleapis.com"
}
Memperbaiki pelanggaran keluar Cloud Storage
Untuk memperbaiki pelanggaran egress, kita harus menggunakan aturan egress yang mengizinkan traffic dari akun layanan yang ditolak ke project dengan objek Cloud Storage.

Setelah mengubah perimeter layanan perimeter-2, ulangi proses untuk memicu transfer lagi. Transfer tidak akan menampilkan error.

6. Menyalin Set Data BigQuery dari project-2 ke project-1
Setelah mengonfirmasi bahwa kita dapat mentransfer data dari bucket Cloud Storage di project-1 ke set data BigQuery di project-2, mari kita menyalin set data BigQuery dari project-2 ke project-1; sementara BigQuery API dilindungi oleh Kontrol Layanan VPC.
Untuk membuat dan menyalin set data, kita akan menggunakan perintah bq mk, yang menggunakan alat bq.
Buat set data tujuan di project-1
Sebelum menyalin set data, set data tujuan harus dibuat terlebih dahulu. Untuk membuat set data tujuan, kita dapat menjalankan perintah berikut, yang membuat set data bernama copied_dataset, di project project-1 dengan us sebagai lokasi.
bq mk \
--dataset \
--location=us \
project-1:copied_dataset
Melindungi layanan BigQuery di project-2 dengan Kontrol Layanan VPC
Ubah konfigurasi perimeter perimeter-2 dan tambahkan BigQuery API sebagai layanan yang dilindungi, bersama dengan layanan BigQuery Data Transfer dan Cloud Storage.

Mulai penyalinan set data
Untuk menyalin set data, jalankan perintah bq mk berikut, yang menyalin set data codelab_bqtransfer_dataset di project project-2 ke set data copied_dataset di project-1, dan menimpa konten set data, jika ada.
bq mk \
--transfer_config \
--project_id=project-1 \
--target_dataset=copied_dataset \
--data_source=cross_region_copy \
--display_name='Dataset from project-2 to project-1' \
--params='{
"source_dataset_id":"codelab_bqtransfer_dataset",
"source_project_id":"project-2",
"overwrite_destination_table":"true"
}'
Perintah akan berhasil dijalankan; sementara itu, konfigurasi transfer berhasil dibuat, untuk memulai operasi penyalinan set data. Penyalinan set data itu sendiri akan gagal, dengan pelanggaran Kontrol Layanan VPC.
Untuk menemukan detail pelanggaran Kontrol Layanan VPC yang sesuai, periksa log di project-2 (project set data sumber) dengan kueri log berikut. Kueri log memfilter log pada layanan BigQuery dan nama resource set data yang sedang disalin (codelab_bqtransfer_dataset).
resource.labels.service="bigquery.googleapis.com"
protoPayload.metadata.resourceNames:"datasets/codelab_bqtransfer_dataset"
Pelanggaran Kontrol Layanan VPC yang diamati adalah pelanggaran egress dari project-2 ke project-1.
egressViolations: [
0: {
servicePerimeter: "accessPolicies/987654321/servicePerimeters/perimeter-2"
source: "projects/[PROJECT-2-NUMBER]"
sourceType: "Resource"
targetResource: "projects/[PROJECT-1-NUMBER]"
targetResourcePermissions: [
0: "bigquery.transfers.update"
1: "bigquery.transfers.get"
2: "bigquery.jobs.create"
]
}
]
method: "bigquery.tables.getData"
service: "bigquery.googleapis.com"
Perbaiki semua pelanggaran BigQuery dan mulai penyalinan set data lagi
Untuk memperbaiki pelanggaran egress, kita perlu membuat aturan egress yang mengizinkan akun utama yang ditolak. Akun utama yang ditolak adalah akun yang menjalankan perintah mk.

Setelah aturan keluar diterapkan, di perimeter perimeter-2, jalankan perintah yang sama untuk menyalin set data. Kali ini, dataset akan berhasil disalin tanpa pelanggaran Kontrol Layanan VPC.
7. Pembersihan
Meskipun tidak ada biaya terpisah untuk menggunakan Kontrol Layanan VPC saat layanan tidak digunakan, sebaiknya bersihkan penyiapan yang digunakan di laboratorium ini. Anda juga dapat menghapus instance VM dan/atau project Cloud untuk menghindari tagihan. Menghapus project Cloud akan menghentikan penagihan untuk semua resource yang digunakan dalam project tersebut.
- Untuk menghapus bucket Cloud Storage, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Bucket Cloud Storage.
- Centang kotak bucket yang akan dihapus, lalu klik Hapus.
- Di jendela overlay yang muncul, konfirmasi bahwa Anda ingin menghapus bucket dan isinya.

- Untuk menghapus set data BigQuery, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman BigQuery.
- Di panel Explorer, luaskan project Anda dan pilih set data.
- Luaskan menu tiga titik, lalu klik Hapus.
- Pada dialog Delete dataset, ketik
deletepada kolom, lalu klik Delete.
- Untuk menghapus perimeter layanan, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, pilih Keamanan, lalu VPC Service Controls di tingkat tempat kebijakan akses dicakup, dalam hal ini, di tingkat folder.
- Di halaman VPC Service Controls, pada baris tabel yang sesuai dengan perimeter yang ingin Anda hapus, pilih
Delete Icon.
- Untuk menghapus Tingkat Akses, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Access Context Manager di cakupan Folder.
- Di petak, identifikasi baris untuk tingkat akses yang ingin Anda hapus, pilih menu tiga titik, lalu pilih Hapus.
- Untuk mematikan project, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman IAM & Admin Settings project yang ingin Anda hapus.
- Di halaman Setelan IAM & Admin, pilih Shutdown.
- Masukkan project ID, lalu pilih Shutdown anyway.
8. Selamat!
Dalam codelab ini, Anda telah membuat perimeter Kontrol Layanan VPC, menerapkannya, dan memecahkan masalahnya.
Pelajari lebih lanjut
Anda juga dapat mempelajari skenario berikut:
- Tambahkan
project-1di perimeter lain yang juga melindungi BigQuery, BigQuery Data Transfer Service, dan Cloud Storage. - Lakukan transfer data BigQuery dari sumber yang didukung lainnya.
- Membatasi akses pengguna berdasarkan atribut lain, seperti lokasi atau kebijakan perangkat.
Lisensi
Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.