Membuat salinan data yang telah dide-identifikasi yang disimpan di Cloud Storage menggunakan API

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 tersebut yang telah di-de-identifikasi di bucket terpisah. Kemudian, Anda dapat menggunakan salinan yang tidak berisi informasi pribadi 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:

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 di-de-identifikasi di direktori output
  • Menulis detail transformasi dalam tabel BigQuery

Resource yang relevan mencakup tugas inspeksi, template anonimisasi, 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) di 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 penghapusan informasi pribadi 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: Membuat template de-identifikasi

Jika Anda ingin mengontrol cara temuan ditransformasikan, 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. Jenis DeidentifyTemplate ini tidak dapat berisi objek RecordTransformations, yang hanya didukung untuk konten terstruktur. Jika template ini tidak ada, Sensitive Data Protection menggunakan metode ReplaceWithInfoTypeConfig untuk mengubah file tidak terstruktur.

  • Template de-identifikasi terstruktur: DeidentifyTemplate yang akan digunakan untuk file terstruktur, seperti file CSV. DeidentifyTemplate dapat berisi RecordTransformations. 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 metode ReplaceWithInfoTypeConfig untuk mengubah file terstruktur.

  • Template penyensoran gambar: DeidentifyTemplate yang akan digunakan untuk gambar. Template ini harus berisi objek ImageTransformations. 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 de-identifikasi

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 di-de-identifikasi.

    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.


using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dlp.V2;
using System.Linq;

public class DeidentifyDataStoredInCloudStorage
{
    public static DlpJob Deidentify(
        string projectId,
        string gcsInputPath,
        string unstructuredDeidentifyTemplatePath,
        string structuredDeidentifyTemplatePath,
        string imageRedactionTemplatePath,
        string gcsOutputPath,
        string datasetId,
        string tableId)
    {
        // Instantiate the client.
        var dlp = DlpServiceClient.Create();

        //Construct the storage config by specifying the input directory.
        var storageConfig = new StorageConfig
        {
            CloudStorageOptions = new CloudStorageOptions
            {
                FileSet = new CloudStorageOptions.Types.FileSet
                {
                    Url = gcsInputPath
                }
            }
        };

        // Construct the inspect config by specifying the type of info to be inspected.
        var inspectConfig = new