Halaman ini menjelaskan cara memeriksa resource Cloud Storage dan membuat salinan data yang dide-identifikasi menggunakan Cloud Data Loss Prevention API.
Operasi ini membantu memastikan bahwa file yang Anda gunakan dalam proses bisnis Anda tidak berisi data sensitif, seperti informasi identitas pribadi (PII). Perlindungan Data Sensitif dapat memeriksa file dalam bucket Cloud Storage untuk menemukan data sensitif, dan membuat salinan yang telah dide-identifikasi dari file tersebut di bucket terpisah. Selanjutnya, Anda dapat menggunakan salinan yang telah 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.
Mengetahui cara mengirim permintaan HTTP ke DLP API. Untuk mengetahui informasi selengkapnya, lihat Memeriksa teks sensitif menggunakan DLP API.
Pelajari batasan dan titik pertimbangan untuk operasi ini.
Pemeriksaan penyimpanan memerlukan cakupan OAuth berikut:
https://www.googleapis.com/auth/cloud-platform
. Untuk mengetahui informasi selengkapnya, lihat bagian 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
) pada
agen layanan sudah cukup. Dengan peran tersebut, Anda dapat melakukan hal berikut:
- Membuat tugas inspeksi
- Membaca file di direktori input
- Menulis file yang telah dide-identifikasi di direktori output
- Menulis detail transformasi dalam tabel BigQuery
Resource yang relevan mencakup tugas pemeriksaan, template de-identifikasi, bucket input, bucket output, dan tabel detail transformasi.
Jika Anda harus memiliki resource di project terpisah, pastikan agen layanan project Anda juga memiliki peran berikut:
- Peran Storage Object Viewer (
roles/storage.objectViewer
) pada bucket input atau project yang memuatnya. - Peran Storage Object Creator
(
roles/storage.objectCreator
) pada bucket output atau project yang berisinya. - Peran BigQuery Data Editor (
roles/bigquery.dataEditor
) pada tabel detail transformasi atau project yang memuatnya.
Untuk memberikan peran kepada agen layanan Anda, yang merupakan akun layanan yang dikelola Google, lihat Memberikan satu peran. Anda juga dapat mengontrol akses pada 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 de-identifikasi dalam bentuk tindakan Deidentify
.
Jika ingin memindai sebagian file di bucket saja, Anda dapat
membatasi file yang dipindai tugas. Opsi yang didukung untuk tugas dengan
de-identifikasi adalah pemfilteran file berdasarkan jenis (FileType
) dan ekspresi
reguler (FileSet
).
Saat Anda mengaktifkan tindakan Deidentify
, secara default, Perlindungan Data Sensitif akan membuat salinan yang telah dide-identifikasi (ditransformasi) dari semua jenis file yang didukung yang disertakan dalam pemindaian. Namun, Anda dapat mengonfigurasi tugas untuk hanya mengubah
sebagian dari jenis file yang didukung.
Opsional: Membuat template de-identifikasi
Jika Anda ingin mengontrol cara temuan ditransformasi, buat template berikut. Template ini memberikan petunjuk tentang transformasi temuan dalam file terstruktur, file tidak terstruktur, dan gambar.
De-identifikasi template:
DeidentifyTemplate
default yang akan digunakan untuk file tidak terstruktur, seperti file teks berformat bebas. JenisDeidentifyTemplate
ini tidak boleh berisi objekRecordTransformations
, yang hanya didukung untuk konten terstruktur. Jika template ini tidak ada, Perlindungan Data Sensitif akan menggunakan metodeReplaceWithInfoTypeConfig
untuk mengubah file yang tidak terstruktur.Template de-identifikasi 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 itu juga tidak ada, 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 de-identifikasi.
Membuat tugas inspeksi yang memiliki tindakan de-identifikasi
Objek DlpJob
memberikan petunjuk tentang apa yang harus diperiksa, jenis
data yang perlu 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 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
, Perlindungan Data Sensitif akan mengganti data sensitif dalam teks dengan infoType-nya. Pada gambar, gambar itu 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 sebenarnya yang telah dide-identifikasi.
Ketika data ditulis ke tabel BigQuery, penagihan dan penggunaan kuota diterapkan ke project yang berisi tabel tujuan.
Setelah konten yang disalin dide-identifikasi, tugas de-identifikasi
akan selesai. Tugas ini berisi ringkasan frekuensi penerapan transformasi
yang ditentukan, yang dapat Anda ambil menggunakan
metode projects.dlpJobs.get
di DlpJob
. DlpJob
yang ditampilkan menyertakan
objek DeidentifyDataSourceDetails
dan objek
InspectDataSourceDetails
. Objek tersebut berisi hasil tindakan Deidentify
dan
tugas pemeriksaan.
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 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 dide-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 Perlindungan Data Sensitif, lihat Library klien Perlindungan Data Sensitif.
Untuk mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 mengautentikasi Perlindungan Data Sensitif, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca 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 diperiksa—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 sudah dide-identifikasi. Direktori ini tidak boleh berada di bucket Cloud Storage yang sama denganINPUT_DIRECTORY
.DEIDENTIFY_TEMPLATE_NAME
: nama resource lengkap dari template de-identifikasi 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 resource lengkap dari template de-identifikasi 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 secara 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 pemeriksaan 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 infoType bawaanPERSON_NAME
.actions
: Tindakan yang harus diambil setelah bagian pemeriksaan tugas selesai (Action
).deidentify
: Menentukan tindakan ini akan memberi tahu Perlindungan Data Sensitif untuk de-identifikasi data sensitif yang cocok berdasarkan konfigurasi yang ditentukan di dalamnya (Deidentify
).cloud_storage_output
: Menentukan URL direktori Cloud Storage yang ingin Anda periksa.transformation_config
: Menentukan cara Perlindungan Data Sensitif harus melakukan de-identifikasi data sensitif dalam file terstruktur, file tidak terstruktur, dan gambar (TransformationConfig
).Jika Anda tidak menyertakan objek
TransformationConfig
, Perlindungan Data Sensitif akan mengganti data sensitif dalam teks dengan infoType-nya. Pada gambar, gambar itu menutupi data sensitif dengan kotak hitam.transformation_details_storage_config
: Menentukan bahwa Perlindungan Data Sensitif harus menyimpan metadata tentang setiap transformasi yang dijalankannya untuk tugas ini. Selain itu, parameter ini menentukan lokasi dan nama tabel tempat Perlindungan Data Sensitif harus menyimpan metadata tersebut (TransformationDetailsStorageConfig
).fileTypesToTransform
: Membatasi operasi de-identifikasi hanya untuk jenis file yang Anda cantumkan. Jika Anda tidak menetapkan kolom ini, semua jenis file yang didukung, yang disertakan dalam operasi pemeriksaan, juga disertakan dalam operasi de-identifikasi. Dalam contoh ini, Perlindungan Data Sensitif hanya melakukan de-identifikasi file gambar, CSV, dan teks, meskipun Anda mengonfigurasiDlpJob
untuk memeriksa semua jenis file yang didukung.
Membuat tugas inspeksi melalui REST API
Untuk membuat tugas pemeriksaan (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, serta snapshot konfigurasi pemeriksaan yang Anda tetapkan.
{ "name": "projects/PROJECT_ID/dlpJobs/JOB_ID", "type": "INSPECT_JOB", "state": "PENDING", ... }
Mengambil hasil tugas pemeriksaan
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 seperti berikut:
{ "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 di penyimpanan.
- Pelajari cara melakukan de-identifikasi data di penyimpanan menggunakan Konsol Google Cloud.
- Bekerja melalui codelab Membuat Salinan Data yang Dide-identifikasi di Cloud Storage.
- Pelajari transformasi de-identifikasi lebih lanjut.
- Pelajari cara memeriksa penyimpanan untuk data sensitif.