Halaman ini menjelaskan cara memeriksa resource Cloud Storage dan membuat salinan data yang dideidentifikasi menggunakan Cloud Data Loss Prevention API.
Operasi ini membantu memastikan bahwa file yang Anda gunakan dalam proses bisnis tidak berisi data sensitif, seperti informasi identitas pribadi (PII). Sensitive Data Protection dapat memeriksa file di bucket Cloud Storage untuk menemukan data sensitif, dan membuat salinan file yang telah disamarkan di bucket terpisah. Kemudian, Anda dapat menggunakan salinan yang dide-identifikasi dalam proses bisnis Anda.
Untuk mengetahui informasi selengkapnya tentang fitur ini, lihat De-identifikasi data sensitif di Cloud Storage.
Sebelum memulai
Halaman ini mengasumsikan hal berikut:
Anda telah mengaktifkan penagihan.
Anda telah mengaktifkan Perlindungan Data Sensitif.
Anda memiliki bucket Cloud Storage dengan data yang ingin dide-identifikasi.
Anda tahu cara mengirim permintaan HTTP ke DLP API. Untuk informasi selengkapnya, lihat Memeriksa teks sensitif menggunakan DLP API.
Pelajari batasan dan poin pertimbangan untuk operasi ini.
Pemeriksaan penyimpanan memerlukan cakupan OAuth berikut:
https://www.googleapis.com/auth/cloud-platform
. Untuk informasi selengkapnya, lihat
Mengautentikasi ke DLP API.
Peran IAM yang diperlukan
Jika semua resource untuk operasi ini berada dalam project yang sama, peran Agen Layanan DLP API (roles/dlp.serviceAgent
) di agen layanan sudah memadai. Dengan peran tersebut, Anda dapat melakukan hal berikut:
- Membuat tugas inspeksi
- Membaca file di direktori input
- Menulis file yang dide-identifikasi di direktori output
- Menulis detail transformasi dalam tabel BigQuery
Resource yang relevan mencakup tugas inspeksi, template de-identifikasi, bucket input, bucket output, dan tabel detail transformasi.
Jika Anda harus memiliki resource dalam project terpisah, pastikan agen layanan project Anda juga memiliki peran berikut:
- Peran Storage Object Viewer (
roles/storage.objectViewer
) di bucket input atau project yang berisinya. - Peran Storage Object Creator
(
roles/storage.objectCreator
) di bucket output atau project yang berisi bucket tersebut. - Peran BigQuery Data Editor (
roles/bigquery.dataEditor
) di tabel detail transformasi atau project yang berisinya.
Untuk memberikan peran kepada agen layanan, lihat Memberikan satu peran. Anda juga dapat mengontrol akses di tingkat berikut:
Ringkasan API
Untuk membuat salinan konten yang dide-identifikasi yang disimpan di Cloud Storage, Anda mengonfigurasi tugas pemeriksaan yang mencari data sensitif sesuai dengan kriteria yang Anda tentukan. Kemudian, dalam tugas inspeksi, Anda
memberikan petunjuk penghapusan identitas dalam bentuk tindakan Deidentify
.
Jika hanya ingin memindai sebagian file di bucket, Anda dapat
membatasi file yang dipindai tugas. Opsi yang didukung untuk tugas dengan
de-identifikasi adalah pemfilteran file menurut jenis (FileType
) dan ekspresi reguler (FileSet
).
Saat Anda mengaktifkan tindakan Deidentify
, secara default, Perlindungan Data Sensitif
akan membuat salinan yang dide-identifikasi (ditransformasi) dari semua jenis file yang didukung
yang disertakan dalam pemindaian. Namun, Anda dapat mengonfigurasi tugas untuk hanya mengubah sebagian jenis file yang didukung.
Opsional: Membuat template anonim/beridentitas lain
Jika Anda ingin mengontrol cara transformasi temuan, buat template berikut. Template ini memberikan petunjuk tentang cara mengubah temuan dalam file terstruktur, file tidak terstruktur, dan gambar.
Template de-identifikasi:
DeidentifyTemplate
default yang akan digunakan untuk file tidak terstruktur, seperti file teks bentuk bebas. JenisDeidentifyTemplate
ini tidak dapat berisi objekRecordTransformations
, yang hanya didukung untuk konten terstruktur. Jika template ini tidak ada, Sensitive Data Protection akan menggunakan metodeReplaceWithInfoTypeConfig
untuk mengubah file tidak terstruktur.Template penghapusan identitas terstruktur:
DeidentifyTemplate
yang akan digunakan untuk file terstruktur, seperti file CSV.DeidentifyTemplate
ini dapat berisiRecordTransformations
. Jika template ini tidak ada, Perlindungan Data Sensitif akan menggunakan template de-identifikasi default yang Anda buat. Jika tidak ada juga, Perlindungan Data Sensitif akan menggunakan metodeReplaceWithInfoTypeConfig
untuk mengubah file terstruktur.Template penyamaran gambar:
DeidentifyTemplate
yang akan digunakan untuk gambar. Template ini harus berisi objekImageTransformations
. Jika template ini tidak ada, Perlindungan Data Sensitif akan menyamarkan semua temuan dalam gambar dengan kotak hitam.
Pelajari lebih lanjut cara membuat template penghapusan identitas.
Membuat tugas inspeksi yang memiliki tindakan penghapusan identitas
Objek DlpJob
memberikan petunjuk tentang apa yang harus diperiksa, jenis data yang akan ditandai sebagai sensitif, dan tindakan yang harus dilakukan dengan temuan tersebut.
Untuk melakukan de-identifikasi data sensitif di direktori Cloud Storage, DlpJob
Anda harus menentukan setidaknya hal berikut:
- Objek
StorageConfig
, yang menentukan direktori Cloud Storage yang akan diperiksa. - Objek
InspectConfig
, yang berisi jenis data yang akan dicari dan petunjuk pemeriksaan tambahan tentang cara menemukan data sensitif. Tindakan
Deidentify
yang berisi hal berikut:Objek
TransformationConfig
, yang menentukan template yang Anda buat untuk melakukan de-identifikasi data dalam file terstruktur dan tidak terstruktur. Anda juga dapat menyertakan konfigurasi untuk menyamarkan data sensitif dari gambar.Jika Anda tidak menyertakan objek
TransformationConfig
, Sensitive Data Protection akan mengganti data sensitif dalam teks dengan infoType-nya. Pada gambar, fitur ini akan menutupi data sensitif dengan kotak hitam.Objek
TransformationDetailsStorageConfig
, yang menentukan tabel BigQuery tempat Perlindungan Data Sensitif harus menyimpan detail tentang setiap transformasi. Untuk setiap transformasi, detailnya mencakup deskripsi, kode berhasil atau error, detail error apa pun, jumlah byte yang ditransformasi, lokasi konten yang ditransformasi, dan nama tugas pemeriksaan tempat Perlindungan Data Sensitif melakukan transformasi. Tabel ini tidak menyimpan konten yang telah dideidentifikasi.
Saat data ditulis ke tabel BigQuery, tagihan dan penggunaan kuota akan diterapkan ke project yang berisi tabel tujuan.
Setelah konten yang disalin dide-identifikasi, tugas de-identifikasi
akan selesai. Tugas ini berisi ringkasan frekuensi transformasi yang ditentukan telah diterapkan, yang dapat Anda ambil menggunakan metode projects.dlpJobs.get
di DlpJob
. DlpJob
yang ditampilkan mencakup objek DeidentifyDataSourceDetails
dan objek InspectDataSourceDetails
. Objek tersebut berisi hasil tindakan Deidentify
dan
tugas inspeksi.
Jika Anda menyertakan objek TransformationDetailsStorageConfig
di DlpJob
, tabel BigQuery akan dibuat yang berisi metadata tentang detail transformasi. Untuk setiap
transformasi yang terjadi, Perlindungan Data Sensitif akan menulis satu baris metadata
ke tabel. Untuk informasi selengkapnya tentang konten tabel,
lihat Referensi detail transformasi.
Contoh kode
Contoh berikut menunjukkan cara menggunakan DLP API untuk membuat salinan file Cloud Storage yang dideidentifikasi.
Metode dan URL HTTP
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat library klien Perlindungan Data Sensitif.
Untuk melakukan autentikasi ke Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat library klien Perlindungan Data Sensitif.
Untuk melakukan autentikasi ke Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat library klien Perlindungan Data Sensitif.
Untuk melakukan autentikasi ke Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat library klien Perlindungan Data Sensitif.
Untuk melakukan autentikasi ke Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat library klien Perlindungan Data Sensitif.
Untuk melakukan autentikasi ke Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Perlindungan Data Sensitif, lihat library klien Perlindungan Data Sensitif.
Untuk melakukan autentikasi ke Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST
Input JSON{
"inspect_job": {
"storage_config": {
"cloud_storage_options": {
"file_set": {
"url": "INPUT_DIRECTORY"
}
}
},
"inspect_config": {
"info_types": [
{
"name": "PERSON_NAME"
}
]
},
"actions": {
"deidentify": {
"cloud_storage_output": "OUTPUT_DIRECTORY",
"transformation_config": {
"deidentify_template": "DEIDENTIFY_TEMPLATE_NAME",
"structured_deidentify_template": "STRUCTURED_DEIDENTIFY_TEMPLATE_NAME",
"image_redact_template": "IMAGE_REDACTION_TEMPLATE_NAME"
},
"transformation_details_storage_config": {
"table": {
"project_id": "TRANSFORMATION_DETAILS_PROJECT_ID",
"dataset_id": "TRANSFORMATION_DETAILS_DATASET_ID",
"table_id": "TRANSFORMATION_DETAILS_TABLE_ID"
}
},
"fileTypesToTransform": ["IMAGE","CSV", "TEXT_FILE"]
}
}
}
}
Ganti kode berikut:
PROJECT_ID
: ID project tempat Anda ingin menyimpan tugas inspeksi.INPUT_DIRECTORY
: direktori Cloud Storage yang ingin Anda periksa—misalnya,gs://input-bucket/folder1/folder1a
. Jika URL diakhiri dengan garis miring, subdirektori apa pun di dalamINPUT_DIRECTORY
tidak akan dipindai.OUTPUT_DIRECTORY
: direktori Cloud Storage tempat Anda ingin menyimpan file yang dide-identifikasi. Direktori ini tidak boleh berada di bucket Cloud Storage yang sama denganINPUT_DIRECTORY
.DEIDENTIFY_TEMPLATE_NAME
: nama resource lengkap template penghapusan identitas default—untuk file terstruktur dan tidak terstruktur—jika Anda membuatnya. Nilai ini harus dalam formatprojects/projectName/(locations/locationId)/deidentifyTemplates/templateName
.STRUCTURED_DEIDENTIFY_TEMPLATE_NAME
: nama resource lengkap dari template penghapusan identitas untuk file terstruktur jika Anda membuatnya. Nilai ini harus dalam formatprojects/projectName/(locations/locationId)/deidentifyTemplates/templateName
.IMAGE_REDACTION_TEMPLATE_NAME
: nama resource lengkap template penyamaran gambar untuk gambar jika Anda membuatnya. Nilai ini harus dalam formatprojects/projectName/(locations/locationId)/deidentifyTemplates/templateName
.TRANSFORMATION_DETAILS_PROJECT_ID
: ID project tempat Anda ingin menyimpan detail transformasi.TRANSFORMATION_DETAILS_DATASET_ID
: ID set data BigQuery tempat Anda ingin menyimpan detail transformasi. Jika Anda tidak memberikan ID tabel, sistem akan otomatis membuatnya.TRANSFORMATION_DETAILS_TABLE_ID
: ID tabel BigQuery tempat Anda ingin menyimpan detail transformasi.
Perhatikan objek berikut:
inspectJob
: Objek konfigurasi untuk tugas (DlpJob
). Objek ini berisi konfigurasi untuk tahap inspeksi dan de-identifikasi.storageConfig
: Lokasi konten yang akan diperiksa (StorageConfig
). Contoh ini menentukan bucket Cloud StorageCloudStorageOptions
.inspectConfig
: Informasi tentang data sensitif yang ingin Anda periksa (InspectConfig
). Contoh ini memeriksa konten yang cocok dengan infoTypePERSON_NAME
bawaan.actions
: Tindakan yang harus dilakukan setelah bagian inspeksi pekerjaan selesai (Action
).deidentify
: Menentukan tindakan ini akan memberi tahu Perlindungan Data Sensitif untuk menghapus identitas data sensitif yang cocok sesuai dengan konfigurasi yang ditentukan di dalamnya (Deidentify
).cloud_storage_output
: Menentukan URL direktori Cloud Storage yang ingin Anda periksa.transformation_config
: Menentukan cara Sensitive Data Protection harus melakukan de-identifikasi data sensitif dalam file terstruktur, file tidak terstruktur, dan gambar (TransformationConfig
).Jika Anda tidak menyertakan objek
TransformationConfig
, Sensitive Data Protection akan mengganti data sensitif dalam teks dengan infoType-nya. Pada gambar, fitur ini akan menutupi data sensitif dengan kotak hitam.transformation_details_storage_config
: Menentukan bahwa Sensitive Data Protection harus menyimpan metadata tentang setiap transformasi yang dilakukan untuk tugas ini. Selain itu, konfigurasi ini menentukan lokasi dan nama tabel tempat Sensitive Data Protection harus menyimpan metadata tersebut (TransformationDetailsStorageConfig
).fileTypesToTransform
: Membatasi operasi penghapusan identitas hanya pada jenis file yang Anda cantumkan. Jika Anda tidak menetapkan kolom ini, semua jenis file yang didukung dan disertakan dalam operasi inspeksi juga akan disertakan dalam operasi de-identifikasi. Dalam contoh ini, Perlindungan Data Sensitif hanya menghapus identitas file gambar, CSV, dan teks, meskipun Anda mengonfigurasiDlpJob
untuk memeriksa semua jenis file yang didukung.
Membuat tugas inspeksi melalui REST API
Untuk membuat tugas inspeksi (DlpJob
), kirim permintaan projects.dlpJobs.create
. Untuk mengirim permintaan menggunakan cURL, simpan contoh REST
sebelumnya sebagai file JSON dan jalankan
perintah berikut:
curl -s \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs \
-d @PATH_TO_JSON_FILE
Ganti kode berikut:
PROJECT_ID
: project ID tempat Anda menyimpanDlpJob
.PATH_TO_JSON_FILE
: jalur ke file JSON yang berisi isi permintaan.
Perlindungan Data Sensitif menampilkan ID DlpJob
yang baru dibuat, statusnya, dan ringkasan konfigurasi pemeriksaan yang Anda tetapkan.
{ "name": "projects/PROJECT_ID/dlpJobs/JOB_ID", "type": "INSPECT_JOB", "state": "PENDING", ... }
Mengambil hasil tugas inspeksi
Untuk mengambil hasil DlpJob
, kirim permintaan projects.dlpJobs.get
:
curl -s \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs/JOB_ID
Ganti kode berikut:
PROJECT_ID
: project ID tempat Anda menyimpanDlpJob
.JOB_ID
: ID tugas yang ditampilkan saat Anda membuatDlpJob
.
Jika operasi selesai, Anda akan mendapatkan respons yang mirip dengan berikut ini:
{ "name": "projects/PROJECT_ID/dlpJobs/JOB_ID", "type": "INSPECT_JOB", "state": "DONE", "inspectDetails": { "requestedOptions": { "snapshotInspectTemplate": {}, "jobConfig": { "storageConfig": { "cloudStorageOptions": { "fileSet": { "url": "INPUT_DIRECTORY" } } }, "inspectConfig": { "infoTypes": [ { "name": "PERSON_NAME" } ], "limits": {} }, "actions": [ { "deidentify": { "transformationDetailsStorageConfig": { "table": { "projectId": "TRANSFORMATION_DETAILS_PROJECT_ID", "datasetId": "TRANSFORMATION_DETAILS_DATASET_ID", "tableId": "TRANSFORMATION_DETAILS_TABLE_ID" } }, "transformationConfig": { "deidentifyTemplate": "DEIDENTIFY_TEMPLATE_NAME", "structuredDeidentifyTemplate": "STRUCTURED_DEIDENTIFY_TEMPLATE_NAME", "imageRedactTemplate": "IMAGE_REDACTION_TEMPLATE_NAME" }, "fileTypesToTransform": [ "IMAGE", "CSV", "TEXT_FILE" ], "cloudStorageOutput": "OUTPUT_DIRECTORY" } } ] } }, "result": { "processedBytes": "25242", "totalEstimatedBytes": "25242", "infoTypeStats": [ { "infoType": { "name": "PERSON_NAME" }, "count": "114" } ] } }, "createTime": "2022-06-09T23:00:53.380Z", "startTime": "2022-06-09T23:01:27.986383Z", "endTime": "2022-06-09T23:02:00.443536Z", "actionDetails": [ { "deidentifyDetails": { "requestedOptions": { "snapshotDeidentifyTemplate": { "name": "DEIDENTIFY_TEMPLATE_NAME", "createTime": "2022-06-09T17:46:34.208923Z", "updateTime": "2022-06-09T17:46:34.208923Z", "deidentifyConfig": { "infoTypeTransformations": { "transformations": [ { "primitiveTransformation": { "characterMaskConfig": { "maskingCharacter": "*", "numberToMask": 25 } } } ] } }, "locationId": "global" }, "snapshotStructuredDeidentifyTemplate": { "name": "STRUCTURED_DEIDENTIFY_TEMPLATE_NAME", "createTime": "2022-06-09T20:51:12.411456Z", "updateTime": "2022-06-09T21:07:53.633149Z", "deidentifyConfig": { "recordTransformations": { "fieldTransformations": [ { "fields": [ { "name": "Name" } ], "primitiveTransformation": { "replaceConfig": { "newValue": { "stringValue": "[redacted]" } } } } ] } }, "locationId": "global" }, "snapshotImageRedactTemplate": { "name": "IMAGE_REDACTION_TEMPLATE_NAME", "createTime": "2022-06-09T20:52:25.453564Z", "updateTime": "2022-06-09T20:52:25.453564Z", "deidentifyConfig": {}, "locationId": "global" } }, "deidentifyStats": { "transformedBytes": "3972", "transformationCount": "110" } } } ], "locationId": "global" }
Langkah selanjutnya
- Pelajari lebih lanjut proses de-identifikasi data dalam penyimpanan.
- Pelajari cara menghapus identitas data dalam penyimpanan menggunakan konsol Google Cloud.
- Ikuti codelab Membuat Salinan Data yang Dide-identifikasi di Cloud Storage.
- Pelajari transformasi de-identifikasi lebih lanjut.
- Pelajari cara memeriksa penyimpanan untuk menemukan data sensitif.