Tutorial ini menunjukkan cara mengimplementasikan karantina data otomatis dan sistem klasifikasi menggunakan Cloud Storage dan produk Google Cloud lainnya. Tutorial ini mengasumsikan bahwa Anda sudah memahami Google Cloud dan pemrograman shell dasar.
Di setiap organisasi, petugas perlindungan data seperti Anda menghadapi jumlah data yang terus meningkat, data yang harus dilindungi dan diperlakukan dengan tepat. Mengarantina dan mengklasifikasikan data tersebut dapat menjadi rumit dan memakan waktu, terutama jika ada ratusan atau ribuan file dalam sehari.
Bagaimana jika Anda dapat mengambil setiap file, menguploadnya ke lokasi karantina, dan membuatnya diklasifikasikan secara otomatis serta dipindahkan ke lokasi yang sesuai berdasarkan hasil klasifikasi? Tutorial ini menunjukkan cara menerapkan sistem tersebut dengan menggunakan fungsi Cloud Run, Cloud Storage, dan Cloud Data Loss Prevention.
Tujuan
- Buat bucket Cloud Storage untuk digunakan sebagai bagian dari pipeline karantina dan klasifikasi.
- Buat topik dan langganan Pub/Sub untuk memberi tahu Anda saat pemrosesan file selesai.
- Buat Cloud Function sederhana yang memanggil DLP API saat file diupload.
- Upload beberapa file contoh ke bucket karantina untuk memanggil Cloud Function. Fungsi ini menggunakan DLP API untuk memeriksa dan mengklasifikasikan file, lalu memindahkannya ke bucket yang sesuai.
Biaya
Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:
- Cloud Storage
- Fungsi Cloud Run
- Cloud Data Loss Prevention
Anda dapat menggunakan Kalkulator Harga untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run functions, Cloud Storage,Cloud Build Cloud Build, and Cloud Data Loss Prevention APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run functions, Cloud Storage,Cloud Build Cloud Build, and Cloud Data Loss Prevention APIs.
Memberikan izin ke akun layanan
Langkah pertama Anda adalah memberikan izin ke dua akun layanan: akun layanan fungsi Cloud Run dan akun layanan Cloud DLP.
Memberikan izin ke akun layanan default App Engine
Di konsol Google Cloud, buka halaman IAM & Admin, lalu pilih project yang Anda buat:
Temukan akun layanan App Engine. Akun ini memiliki format
[PROJECT_ID]@
. Ganti[PROJECT_ID]
dengan project ID Anda.Pilih ikon edit edit di samping akun layanan.
Tambahkan peran berikut:
- Cloud DLP > DLP Administrator
- DLP API Service Agent (Anda harus memfilter peran ini untuk menemukannya)
Klik Simpan.
Memberikan izin ke akun layanan Sensitive Data Protection
Agen Layanan Cloud DLP dibuat saat pertama kali diperlukan.
Di Cloud Shell, buat Agen Layanan Cloud DLP dengan melakukan panggilan ke
InspectContent
:curl --request POST
"https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/us-central1/content:inspect"
--header "X-Goog-User-Project: PROJECT_ID"
--header "Authorization: Bearer $(gcloud auth print-access-token)"
--header 'Accept: application/json'
--header 'Content-Type: application/json'
--data '{"item":{"value":"google@google.com"}}'
--compressedGanti
PROJECT_ID
dengan project ID Anda.Di konsol Google Cloud, buka halaman IAM & Admin, lalu pilih project yang Anda buat:
Centang kotak Sertakan pemberian peran yang disediakan Google
Temukan akun layanan Cloud DLP Service Agent. Akun ini memiliki format
service-[PROJECT_NUMBER]@dlp-api.
. Ganti[PROJECT_NUMBER]
dengan nomor project Anda.Pilih ikon edit edit di samping akun layanan.
Tambahkan peran Project > Viewer, lalu klik Save.
Membuat pipeline karantina dan klasifikasi
Di bagian ini, Anda akan membuat pipeline karantina dan klasifikasi yang ditunjukkan dalam diagram berikut.
Angka dalam pipeline ini sesuai dengan langkah-langkah berikut:
- Anda mengupload file ke Cloud Storage.
- Anda memanggil Cloud Function.
- Cloud DLP akan memeriksa dan mengklasifikasikan data.
- File akan dipindahkan ke bucket yang sesuai.
Membuat bucket Cloud Storage
Dengan mengikuti panduan yang diuraikan dalam panduan penamaan bucket, buat tiga bucket dengan nama unik, yang akan Anda gunakan di seluruh tutorial ini:
- Bucket 1: Ganti
[YOUR_QUARANTINE_BUCKET]
dengan nama unik. - Bucket 2: Ganti
[YOUR_SENSITIVE_DATA_BUCKET]
dengan nama unik. - Bucket 3: Ganti
[YOUR_NON_SENSITIVE_DATA_BUCKET]
dengan nama unik.
console
Di konsol Google Cloud, buka browser Cloud Storage:
Klik Create bucket.
Di kotak teks Bucket name, masukkan nama yang Anda pilih untuk
[YOUR_QUARANTINE_BUCKET]
, lalu klik Create.Ulangi untuk bucket
[YOUR_SENSITIVE_DATA_BUCKET]
dan[YOUR_NON_SENSITIVE_DATA_BUCKET]
.
gcloud
Buka Cloud Shell:
Buat tiga bucket menggunakan perintah berikut:
gcloud storage buckets create gs://[YOUR_QUARANTINE_BUCKET] gcloud storage buckets create gs://[YOUR_SENSITIVE_DATA_BUCKET] gcloud storage buckets create gs://[YOUR_NON_SENSITIVE_DATA_BUCKET]
Membuat topik dan langganan Pub/Sub
console
Buka halaman Pub/Sub Topics:
Klik Create topic.
Di kotak teks, masukkan nama topik.
Centang kotak Tambahkan langganan default.
Klik Buat Topik.
gcloud
Buka Cloud Shell:
Buat topik, dengan mengganti
[PUB/SUB_TOPIC]
dengan nama pilihan Anda:gcloud pubsub topics create [PUB/SUB_TOPIC]
Buat langganan, ganti
[PUB/SUB_SUBSCRIPTION]
dengan nama pilihan Anda:gcloud pubsub subscriptions create [PUB/SUB_SUBSCRIPTION] --topic [PUB/SUB_TOPIC]
Membuat fungsi Cloud Run
Bagian ini menjelaskan langkah-langkah untuk men-deploy skrip Python yang berisi dua fungsi Cloud Run berikut:
- Fungsi yang dipanggil saat objek diupload ke Cloud Storage.
- Fungsi yang dipanggil saat pesan diterima di antrean Pub/Sub.
Skrip Python yang Anda gunakan untuk menyelesaikan tutorial ini terdapat dalam repositori GitHub Untuk membuat Cloud Function pertama, Anda harus mengaktifkan API yang benar.
Untuk mengaktifkan API, lakukan hal berikut:
- Jika Anda bekerja di konsol, saat mengklik Create function, Anda akan melihat panduan tentang cara mengaktifkan API yang diperlukan untuk menggunakan Cloud Functions.
- Jika Anda bekerja di gcloud CLI, Anda harus mengaktifkan API berikut secara manual:
- Artifact Registry API
- API Eventarc
- Cloud Run Admin API
Membuat fungsi pertama
console
Buka halaman Ringkasan fungsi Cloud Run:
Pilih project tempat Anda mengaktifkan fungsi Cloud Run.
Klik Create function.
Di kotak Nama fungsi, ganti nama default dengan
create_DLP_job
.Di kolom Pemicu, pilih Cloud Storage.
Di kolom Jenis peristiwa, pilih Finalize/Create.
Di kolom Bucket, klik browse, pilih bucket karantina dengan menandai bucket di menu drop-down, lalu klik Select.
Klik Simpan
Klik Berikutnya.
Di bagian Runtime, pilih Python 3.7.
Di bagian Source code, centang Inline editor.
Ganti teks di kotak main.py dengan konten file
https://github.com/GoogleCloudPlatform/dlp-cloud-functions-tutorials/blob/master/gcs-dlp-classification-python/main.py
berikut.Ganti kode berikut:
[PROJECT_ID_DLP_JOB & TOPIC]
: project ID yang menghosting fungsi Cloud Run dan topik Pub/Sub Anda.[YOUR_QUARANTINE_BUCKET]
nama bucket tempat Anda akan mengupload file yang akan diproses .[YOUR_SENSITIVE_DATA_BUCKET]
: nama bucket tempat Anda akan memindahkan file sensitif.[YOUR_NON_SENSITIVE_DATA_BUCKET]
: nama bucket tempat Anda akan mengupload file yang akan diproses.[PUB/SUB_TOPIC]
: nama topik Pub/Sub yang Anda buat sebelumnya.
Di kotak teks Titik entri, ganti teks default dengan teks berikut:
create_DLP_job
.Ganti teks di kotak teks requirements.txt dengan konten file berikut:
https://github.com/GoogleCloudPlatform/dlp-cloud-functions-tutorials/blob/master/gcs-dlp-classification-python/requirements.txt.
Klik Deploy.
Tanda centang hijau di samping fungsi menunjukkan deployment berhasil.
gcloud
Buka sesi Cloud Shell dan clone repositori GitHub yang berisi kode dan beberapa file data contoh:
Ubah direktori ke folder tempat repositori telah di-clone:
cd ~dlp-cloud-functions-tutorials/gcs-dlp-classification-python/
Lakukan penggantian berikut di file main.py
[PROJECT_ID_DLP_JOB & TOPIC]
: project ID yang menghosting fungsi Cloud Run dan topik Pub/Sub Anda.[YOUR_QUARANTINE_BUCKET]
: nama bucket tempat Anda akan mengupload file yang akan diproses .[YOUR_SENSITIVE_DATA_BUCKET]
: nama bucket tempat Anda akan memindahkan file sensitif.[YOUR_NON_SENSITIVE_DATA_BUCKET]
: nama bucket tempat Anda akan mengupload file yang akan diproses.[PUB/SUB_TOPIC
: nama topik Pub/Sub yang Anda buat sebelumnya.
Deploy fungsi, ganti
[YOUR_QUARANTINE_BUCKET]
dengan nama bucket Anda:gcloud functions deploy create_DLP_job --runtime python37 \ --trigger-resource [YOUR_QUARANTINE_BUCKET] \ --trigger-event google.storage.object.finalize
Validasi bahwa fungsi telah berhasil di-deploy:
gcloud functions describe create_DLP_job
Deployment yang berhasil ditunjukkan dengan status siap yang mirip dengan berikut:
status: READY timeout: 60s
Setelah Cloud Function berhasil di-deploy, lanjutkan ke bagian berikutnya untuk membuat Cloud Function kedua.
Membuat fungsi kedua
console
Buka halaman Ringkasan fungsi Cloud Run:
Pilih project tempat Anda mengaktifkan fungsi Cloud Run.
Klik Create function.
Di kotak Function Name, ganti nama default dengan
resolve_DLP
.Di kolom Trigger, pilih Pub/Sub.
Di kolom Select a Cloud Pub/Sub Topic, telusuri topik Pub/Sub yang Anda buat sebelumnya.
Klik Simpan
Klik Berikutnya
Di bagian Runtime, pilih Python 3.7.
Pada Source code, pilih Inline editor.
Di kotak teks Titik entri, ganti teks default dengan
resolve_DLP
.Ganti teks di kotak main.py dengan konten file berikut: https://github.com/GoogleCloudPlatform/dlp-cloud-functions-tutorials/blob/master/gcs-dlp-classification-python/main.py. Lakukan penggantian berikut
[PROJECT_ID_DLP_JOB & TOPIC]
: project ID yang menghosting fungsi Cloud Run dan topik Pub/Sub Anda.[YOUR_QUARANTINE_BUCKET]
: nama bucket tempat Anda akan mengupload file yang akan diproses .[YOUR_SENSITIVE_DATA_BUCKET]
: nama bucket tempat Anda akan memindahkan file sensitif.[YOUR_NON_SENSITIVE_DATA_BUCKET]
: nama bucket tempat Anda akan mengupload file yang akan diproses.[PUB/SUB_TOPIC
: nama topik Pub/Sub yang Anda buat sebelumnya.
Klik Deploy.
Tanda centang hijau di samping fungsi menunjukkan deployment berhasil.
gcloud
Buka (atau buka kembali) sesi Cloud Shell dan clone repositori GitHub yang berisi kode dan beberapa file data contoh:
Ubah direktori ke folder dengan kode Python:
cd gcs-dlp-classification-python/
Lakukan penggantian berikut di file
main.py
:[PROJECT_ID_DLP_JOB & TOPIC]
: project ID yang menghosting fungsi Cloud Run dan topik Pub/Sub Anda.[YOUR_QUARANTINE_BUCKET]
: nama bucket tempat Anda akan mengupload file yang akan diproses.[YOUR_SENSITIVE_DATA_BUCKET]
: nama bucket tempat Anda akan memindahkan file sensitif.[YOUR_NON_SENSITIVE_DATA_BUCKET]
: nama bucket tempat Anda akan mengupload file yang akan diproses.[PUB/SUB_TOPIC
: nama topik Pub/Sub yang Anda buat sebelumnya.
Deploy fungsi, ganti
[PUB/SUB_TOPIC]
dengan topik Pub/Sub Anda:gcloud functions deploy resolve_DLP --runtime python37 --trigger-topic [PUB/SUB_TOPIC]
Validasi bahwa fungsi telah berhasil di-deploy:
gcloud functions describe resolve_DLP
Deployment yang berhasil ditunjukkan dengan status siap yang mirip dengan berikut:
status: READY timeout: 60s
Setelah Cloud Function berhasil di-deploy, lanjutkan ke bagian berikutnya.
Mengupload file sampel ke bucket karantina
Repositori GitHub yang terkait dengan artikel ini menyertakan file data contoh. Folder
ini berisi beberapa file yang memiliki data sensitif dan file lain yang memiliki
data nonsensitif. Data sensitif diklasifikasikan sebagai berisi satu atau beberapa nilai INFO_TYPES
berikut:
US_SOCIAL_SECURITY_NUMBER EMAIL_ADDRESS PERSON_NAME LOCATION PHONE_NUMBER
Jenis data yang digunakan untuk mengklasifikasikan file sampel ditentukan dalam
konstanta INFO_TYPES
dalam file main.py
, yang awalnya ditetapkan ke
'FIRST_NAME,PHONE_NUMBER,EMAIL_ADDRESS,US_SOCIAL_SECURITY_NUMBER'
.
Jika Anda belum meng-clone repositori, buka Cloud Shell dan clone repositori GitHub yang berisi kode dan beberapa file data contoh:
Ubah folder ke file data contoh:
cd ~/dlp-cloud-functions-tutorials/sample_data/
Salin file data sampel ke bucket karantina menggunakan perintah
cp
, dengan mengganti[YOUR_QUARANTINE_BUCKET]
dengan nama bucket karantina Anda:gcloud storage cp * gs://[YOUR_QUARANTINE_BUCKET]/
Cloud DLP memeriksa dan mengklasifikasikan setiap file yang diupload ke bucket karantina dan memindahkannya ke bucket target yang sesuai berdasarkan klasifikasinya.
Di konsol Cloud Storage, buka halaman Storage Browser:
Pilih salah satu bucket target yang Anda buat sebelumnya dan tinjau file yang diupload. Tinjau juga bucket lain yang Anda buat.
Pembersihan
Setelah menyelesaikan tutorial, Anda dapat membersihkan resource yang dibuat agar resource tersebut berhenti menggunakan kuota dan dikenai biaya. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.
Menghapus project
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Langkah selanjutnya
- Coba tetapkan
nilai jenis data yang valid
yang berbeda untuk
INFO_TYPES
. - Pelajari lebih lanjut cara memeriksa penyimpanan dan database untuk menemukan data sensitif menggunakan Cloud DLP.
- Pelajari lebih lanjut fungsi Cloud Run.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.