1. Pengantar
Dalam lab ini, kita akan mempelajari cara melindungi BigQuery Data Transfer Service, menggunakan VPC Service Controls, saat mentransfer data dari Cloud Storage ke set data BigQuery. Kemudian, kita akan 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, kita 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 masuk dan keluar menggunakan aturan masuk dan keluar. Kami juga akan menggunakan tingkat akses untuk memperbaiki pelanggaran masuk BigQuery Data Transfer. Sasaran codelab ini adalah:
- Pahami cara memperbaiki pelanggaran traffic masuk dan keluar menggunakan aturan traffic masuk dan keluar di berbagai layanan, terutama Cloud Storage, BigQuery, dan BigQuery Data Transfer Service.
- Memahami alasan pelanggaran tertentu terjadi.
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 terbatas
- 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 akan memanggil projectproject-1
danproject-2
.- Jika Anda belum memiliki 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-1
danproject-2
.
Membuat kebijakan terbatas dan perimeter layanan reguler
Dalam codelab ini, kita akan menggunakan perimeter layanan reguler yang melindungi project-2
.
- Buat kebijakan akses terbatas, yang dicakup pada tingkat folder
codelab-folder
. Untuk codelab ini, kita mengasumsikan bahwa kebijakan akses yang dibuat memiliki ID987654321
. - Buat perimeter reguler, kita menyebutnya
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 utamanya terkait dengan persyaratan colocation yang mewajibkan:
- Jika set data BigQuery Anda berada di multi-region, bucket Cloud Storage yang berisi data yang ditransfer 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.
Membuat bucket Cloud Storage baru di project project-1
Untuk membuat bucket Cloud Storage baru, ikuti langkah-langkah yang terdokumentasi 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 lokasi penyimpanan data, lokasi bucket, pilih Location type dan Location tempat data bucket akan disimpan secara permanen. Untuk codelab ini, kita akan menggunakan us (multiple regions in United States).
Membuat file CSV
Dari komputer 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 di 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-2
dengan mengikuti langkah-langkah ini.- Untuk Dataset ID, 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 (beberapa region di Amerika Serikat).
- Untuk Dataset ID, masukkan nama set data yang unik. Untuk codelab ini, kita menggunakan:
- Buat tabel BigQuery, di bagian set data
codelab_bqtransfer_dataset
yang dibuat, 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 as text 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 matikan resource yang digunakan agar tidak menimbulkan penagihan di luar codelab ini.
Resource yang dikenai 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 (berada di project-1
) ke BigQuery (berada di project-2
), dengan VPC Service Controls yang melindungi BigQuery Data Transfer Service di project-2
. Hanya melindungi BigQuery Data Transfer Service (tanpa juga melindungi BigQuery dan Cloud Storage) akan membatasi akun utama 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 Kontrol Layanan VPC. 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 masuk 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 traffic masuk dapat digunakan untuk memperbaiki pelanggaran traffic masuk. Dalam codelab ini, mari kita gunakan aturan masuk yang dikonfigurasi dengan identitas pengguna yang ditolak, yang memungkinkan akses ke layanan bigquerydatatransfer.googleapis.com
dan semua metode.
Setelah aturan masuk diterapkan, akses ke halaman Transfer data akan berfungsi tanpa masalah.
Melanjutkan penyiapan transfer data dari Cloud Storage
Dari 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, seperti
Codelab Transfer
. - Di bagian Schedule options:
- Pilih Repeat frequency seperti 15 menit.
- Pastikan untuk memilih Start now; jika tidak, transfer data hanya akan dimulai setelah Repeat frequency 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 dibuat 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, biarkan
APPEND
(atau pilihMIRROR
). - JANGAN pilih 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
- Di bagian Transfer Options, pada bagian CSV, masukkan koma(",") sebagai Field delimiter.
- Untuk Destination table, masukkan nama tabel tujuan. Tabel tujuan harus mengikuti aturan penamaan tabel. Untuk codelab ini, kita akan menggunakan tabel yang dibuat sebelumnya:
- Di menu Service Account, pilih service account 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-1
dalam codelab ini. - Untuk codelab ini, kita akan menggunakan akun layanan yang dibuat di
project-2
sebagaicodelab-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 operasi yang telah dilakukan sejauh ini akan ditampilkan.
Proses transfer data akan 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 masuk untuk mengizinkan akses ke akun utama, yang memulai transfer secara manual.
4. Pembatasan Alamat IP untuk Transfer Data yang Dipicu Secara Manual
Aturan masuk 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:
- Subjaringan IP: memeriksa apakah permintaan berasal dari alamat IP tertentu.
- Wilayah: memeriksa apakah permintaan berasal dari wilayah tertentu, yang ditentukan oleh geolokasi alamat IP.
- Prinsipal: 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 telah 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 akun utama (
user@example.com
dan user2@example.com
) dalam tiga skenario, yang menunjukkan cara VPC Service Controls mengevaluasi sumber (tingkat akses masuk) dan atribut identitas sebagai kondisi AND yang mengharuskan keduanya 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 masuk.
- Pengguna user@example.com diblokir aksesnya jika alamat IP-nya tidak cocok dengan alamat IP yang diizinkan, meskipun akunnya adalah akun yang dikonfigurasi dalam aturan masuk.
- Akses pengguna user2@example.com diblokir meskipun mencoba mengakses dari alamat IP yang diizinkan, karena akunnya tidak diizinkan oleh aturan masuk.
Membuat tingkat akses
Untuk membuat tingkat akses yang membatasi akses menurut 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 Tingkat Akses Baru, beri Judul pada tingkat akses baru. Untuk codelab ini, kita akan menyebutnya
project_2_al
. - Di bagian Kondisi, klik + di depan Subjaringan IP.
- Di kotak Subnetwork IP, pilih IP Publik
- 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 traffic masuk
Dalam aturan traffic masuk, tingkat akses dirujuk di kolom sources
, yang merupakan kolom wajib seperti yang didokumentasikan dalam referensi aturan traffic masuk. Untuk mengizinkan traffic masuk ke resource, Kontrol Layanan VPC mengevaluasi atribut sources
dan identityType
sebagai kondisi AND. Aturan masuk menggunakan identitas akun utama yang memicu transfer data secara manual, bukan akun layanan yang ditentukan dalam konfigurasi transfer data.
Menjalankan ulang 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 masuk.
- 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 mengakibatkan 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, contoh perintah berikut langsung berjalan untuk konfigurasi 12345678-90ab-cdef-ghij-klmnopqrstuv
transfer 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 Saat 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 Terbatas, 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
Filter log audit menggunakan vpcServiceControlsUniqueIdentifier
seperti yang terlihat di Ringkasan transfer.
Pelanggaran yang diamati adalah pelanggaran keluar RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
dengan detail berikut:
- Akun utama adalah akun layanan yang dikonfigurasi di Layanan Transfer Data (baik dipicu secara manual maupun menjalankan transfer data terjadwal, akun utama 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 traffic keluar Cloud Storage
Untuk memperbaiki pelanggaran keluar, kita harus menggunakan aturan keluar 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.
Membuat 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 lokasinya.
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.
Memulai 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 berjalan; sementara itu, konfigurasi transfer berhasil dibuat, untuk memulai operasi menyalin set data. Menyalin 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 di layanan BigQuery dan nama resource set data yang 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 keluar 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"
Memperbaiki semua pelanggaran BigQuery dan memulai 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, tindakan tersebut akan berhasil menyalin set data tanpa pelanggaran Kontrol Layanan VPC.
7. Pembersihan
Meskipun tidak ada biaya tersendiri untuk menggunakan Kontrol Layanan VPC saat layanan tidak digunakan, sebaiknya hapus 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
delete
pada kolom, lalu klik Delete.
- Untuk menghapus perimeter layanan, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, pilih Security, lalu VPC Service Controls di tingkat tempat kebijakan akses dicakup, dalam hal ini, di tingkat folder.
- Di halaman Kontrol Layanan VPC, di 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 menonaktifkan 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 Penonaktifan.
- Masukkan project ID, lalu pilih Shut down 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-1
di perimeter lain yang juga melindungi BigQuery, BigQuery Data Transfer Service, dan Cloud Storage. - Melakukan transfer data BigQuery dari sumber yang didukung lainnya.
- Batasi akses pengguna berdasarkan atribut lain, seperti lokasi atau kebijakan perangkat.
Lisensi
Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.