Halaman ini menjelaskan cara memeriksa resource Cloud Storage dan membuat salinan data yang di-de-identifikasi 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 di-de-identifikasi di bucket terpisah. Kemudian, Anda dapat menggunakan salinan yang dianonimkan 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 Anda de-identifikasi.
Anda tahu cara mengirim permintaan HTTP ke DLP API. Untuk mengetahui informasi selengkapnya, lihat Memeriksa teks sensitif menggunakan DLP API.
Pelajari batasan dan hal-hal yang perlu dipertimbangkan untuk operasi ini.
Pemeriksaan penyimpanan memerlukan cakupan OAuth berikut:
https://www.googleapis.com/auth/cloud-platform
. Untuk mengetahui 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 cukup. Dengan peran tersebut, Anda dapat melakukan hal berikut:
- Buat tugas inspeksi
- Membaca file di direktori input
- Menulis file yang tidak diidentifikasi di direktori output
- Menulis detail transformasi dalam tabel BigQuery
Resource yang relevan mencakup tugas inspeksi, template penghapusan identitas, 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 berisi bucket tersebut. - Peran Storage Object Creator
(
roles/storage.objectCreator
) pada bucket output atau project yang berisi bucket output. - Peran BigQuery Data Editor (
roles/bigquery.dataEditor
) di tabel detail transformasi atau project yang berisi tabel tersebut.
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 telah dide-identifikasi yang disimpan di Cloud Storage, Anda mengonfigurasi tugas pemeriksaan yang mencari data sensitif sesuai dengan kriteria yang Anda tentukan. Kemudian, dalam tugas pemeriksaan, Anda
memberikan petunjuk penghapusan identitas dalam bentuk tindakan Deidentify
.
Jika ingin memindai hanya sebagian file dalam bucket, Anda dapat
membatasi file yang dipindai tugas. Opsi yang didukung untuk tugas dengan
penghilangan identitas adalah pemfilteran file menurut jenis (FileType
) dan ekspresi
reguler (FileSet
).
Saat Anda mengaktifkan tindakan Deidentify
, secara default, Perlindungan Data Sensitif
membuat salinan yang sudah di-de-identifikasi (ditransformasi) dari semua jenis file yang didukung
yang disertakan dalam pemindaian. Namun, Anda dapat mengonfigurasi tugas untuk mengubah hanya subset jenis file yang didukung.
Opsional: Buat template anonim/beridentitas lain
Jika Anda ingin mengontrol cara temuan diubah, buat template berikut. Template ini memberikan petunjuk tentang 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 menggunakan metodeReplaceWithInfoTypeConfig
untuk mengubah file tidak terstruktur.Template penghapusan identitas terstruktur:
DeidentifyTemplate
yang akan digunakan untuk file terstruktur, seperti file CSV.DeidentifyTemplate
dapat berisiRecordTransformations
. Jika template ini tidak ada, Sensitive Data Protection akan menggunakan template de-identifikasi default yang Anda buat. Jika tidak ada, Sensitive Data Protection akan menggunakan metodeReplaceWithInfoTypeConfig
untuk mengubah file terstruktur.Template penyensoran gambar:
DeidentifyTemplate
yang akan digunakan untuk gambar. Template ini harus berisi objekImageTransformations
. Jika template ini tidak ada, Sensitive Data Protection 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 apa yang harus ditandai sebagai sensitif, dan apa 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 menggantikan data sensitif dalam teks dengan infoType-nya. Pada gambar, fitur ini 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 keberhasilan atau error, detail error, jumlah byte yang ditransformasi, lokasi konten yang ditransformasi, dan nama tugas pemeriksaan tempat Perlindungan Data Sensitif melakukan transformasi. Tabel ini tidak menyimpan konten yang sebenarnya telah dianonimkan.
Saat data ditulis ke tabel BigQuery, penggunaan penagihan dan kuota akan diterapkan ke project yang berisi tabel tujuan.
Setelah konten yang disalin di-de-identifikasi, tugas de-identifikasi
selesai. Pekerjaan ini berisi ringkasan berapa kali 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 masing-masing berisi hasil tindakan Deidentify
dan tugas
pemeriksaan.
Jika Anda menyertakan objek TransformationDetailsStorageConfig
dalam DlpJob
, tabel BigQuery akan dibuat yang berisi metadata tentang detail transformasi. Untuk setiap transformasi yang terjadi, Perlindungan Data Sensitif menulis satu baris metadata ke tabel. Untuk mengetahui informasi selengkapnya tentang isi tabel, lihat Referensi detail transformasi.
Contoh kode
Contoh berikut menunjukkan cara menggunakan DLP API untuk membuat salinan file Cloud Storage yang telah di-de-identifikasi.
Metode HTTP dan URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/dlpJobs
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, 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 Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, 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 Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, 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 Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, 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 Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, 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 Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, 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 pemeriksaan.INPUT_DIRECTORY
: direktori Cloud Storage yang ingin Anda periksa—misalnya,gs://input-bucket/folder1/folder1a
. Jika URL diakhiri dengan garis miring, semua subdirektori di dalamINPUT_DIRECTORY
tidak dipindai.OUTPUT_DIRECTORY
: direktori Cloud Storage tempat Anda ingin menyimpan file yang tidak diidentifikasi. Direktori ini tidak boleh berada di bucket Cloud Storage yang sama denganINPUT_DIRECTORY
.DEIDENTIFY_TEMPLATE_NAME
: nama lengkap resource template penghilangan identitas default—untuk file tidak terstruktur dan terstruktur—jika Anda membuatnya. Nilai ini harus dalam formatprojects/projectName/(locations/locationId)/deidentifyTemplates/templateName
.STRUCTURED_DEIDENTIFY_TEMPLATE_NAME
: nama lengkap resource template penghapusan identitas untuk file terstruktur jika Anda membuatnya. Nilai ini harus dalam formatprojects/projectName/(locations/locationId)/deidentifyTemplates/templateName
.IMAGE_REDACTION_TEMPLATE_NAME
: nama lengkap resource template penyensoran 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 membuat ID tabel.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 penghapusan identitas.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 tugas selesai (Action
).deidentify
: Menentukan tindakan ini akan memberi tahu Sensitive Data Protection untuk menyamarkan 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 menggantikan data sensitif dalam teks dengan infoType-nya. Pada gambar, fitur ini menutupi data sensitif dengan kotak hitam.transformation_details_storage_config
: Menentukan bahwa Sensitive Data Protection harus menyimpan metadata tentang setiap transformasi yang dilakukannya 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 menyetel kolom ini, semua jenis file yang didukung yang disertakan dalam operasi pemeriksaan juga disertakan dalam operasi penghapusan identitas. Dalam contoh ini, Sensitive Data Protection hanya menyamarkan 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
: ID project 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 snapshot 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
: ID project 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 berikutnya
- Pelajari lebih lanjut proses de-identifikasi data dalam penyimpanan.
- Pelajari cara melakukan de-identifikasi data dalam penyimpanan menggunakan konsol Google Cloud .
- Ikuti codelab Membuat Salinan Data yang Sudah Dide-identifikasi di Cloud Storage.
- Pelajari lebih lanjut transformasi de-identifikasi.
- Pelajari cara memeriksa penyimpanan untuk menemukan data sensitif.