Memeriksa data dari sumber eksternal menggunakan tugas hybrid

Topik ini menjelaskan cara menggunakan tugas hybrid dan pemicu tugas hybrid untuk memeriksa data eksternal guna menemukan informasi sensitif. Untuk mempelajari lebih lanjut tugas hybrid dan pemicu tugas hybrid—termasuk contoh lingkungan hybrid—lihat Tugas hybrid dan pemicu tugas hybrid.

Pengantar pekerjaan hybrid dan pemicu pekerjaan hybrid

Tugas hybrid dan pemicu tugas hybrid memungkinkan Anda memperluas cakupan perlindungan yang disediakan Perlindungan Data Sensitif di luar permintaan pemeriksaan konten sederhana dan pemindaian repositori penyimpanan Google Cloud. Dengan menggunakan tugas hybrid dan pemicu tugas hybrid, Anda dapat melakukan streaming data dari hampir semua sumber—termasuk di luar Google Cloud—langsung ke Perlindungan Data Sensitif, dan mengizinkan Perlindungan Data Sensitif memeriksa data untuk menemukan informasi sensitif. Perlindungan Data Sensitif otomatis menyimpan dan menggabungkan hasil pemindaian untuk analisis lebih lanjut.

Perbandingan tugas hybrid dan pemicu tugas hybrid

Saat Anda membuat tugas hybrid, tugas tersebut akan berjalan sampai Anda menghentikannya. Metode ini menerima semua data yang masuk selama data tersebut diarahkan dan diformat dengan benar.

Pemicu tugas hybrid berfungsi dengan cara yang mirip dengan tugas hybrid, tetapi Anda tidak perlu menghentikan tugas secara eksplisit dalam pemicu tugas hybrid. Perlindungan Data Sensitif otomatis menghentikan tugas dalam pemicu tugas hybrid pada akhir setiap hari.

Selain itu, dengan pemicu tugas hybrid, Anda dapat menghentikan dan memulai tugas baru dalam pemicu tanpa harus mengonfigurasi ulang permintaan hybridInspect. Misalnya, Anda dapat mengirim data ke pemicu tugas hybrid, lalu menghentikan tugas aktif, mengubah konfigurasinya, memulai tugas baru dalam pemicu tersebut, lalu melanjutkan untuk mengirim data ke pemicu yang sama.

Untuk panduan selengkapnya tentang opsi yang sesuai dengan kasus penggunaan Anda, lihat Skenario pemeriksaan hybrid standar di halaman ini.

Definisi istilah

Topik ini menggunakan istilah berikut:

  • Data eksternal: data yang disimpan di luar Google Cloud atau data yang tidak didukung oleh Perlindungan Data Sensitif secara native.

  • Tugas hybrid: tugas pemeriksaan yang dikonfigurasi untuk memindai data dari hampir semua sumber.

  • Pemicu tugas hybrid: pemicu tugas yang dikonfigurasi untuk memindai data dari hampir semua sumber.

  • Permintaan hybridInspect: permintaan yang berisi data eksternal yang ingin Anda periksa. Saat mengirim permintaan ini, Anda menentukan tugas hybrid atau pemicu tugas hybrid yang akan dikirimi permintaan.

Untuk informasi umum tentang tugas dan pemicu tugas, lihat Tugas dan pemicu tugas.

Proses pemeriksaan hybrid

Ada tiga langkah dalam proses pemeriksaan hibrida.

  1. Pilih data yang ingin Anda kirim ke Perlindungan Data Sensitif.

    Data dapat berasal dari dalam Google Cloud atau dari luarnya. Misalnya, Anda dapat mengonfigurasi skrip atau aplikasi kustom untuk mengirim data ke Perlindungan Data Sensitif, sehingga Anda dapat memeriksa data secara bertahap, dari layanan cloud lain, repositori data lokal, atau hampir semua sumber data lainnya.

  2. Siapkan pemicu tugas hybrid atau tugas hybrid di Perlindungan Data Sensitif dari awal atau menggunakan template pemeriksaan.

    Setelah Anda menyiapkan tugas hybrid atau pemicu tugas hybrid, Perlindungan Data Sensitif akan secara aktif memproses data yang dikirim ke tugas tersebut. Saat skrip kustom atau aplikasi Anda mengirimkan data ke tugas hybrid atau pemicu tugas hybrid ini, data akan diperiksa dan hasilnya disimpan sesuai dengan konfigurasi.

    Saat menyiapkan tugas hybrid atau pemicu tugas hybrid, Anda dapat menentukan tempat untuk menyimpan atau memublikasikan temuan. Opsi termasuk menyimpan ke BigQuery dan memublikasikan notifikasi ke Pub/Sub, Cloud Monitoring, atau email.

  3. Kirim permintaan hybridInspect ke tugas hybrid atau pemicu tugas hybrid.

    Permintaan hybridInspect berisi data yang akan dipindai. Dalam permintaan, sertakan metadata (juga disebut sebagai label dan ID tabel) yang menjelaskan konten dan memungkinkan Perlindungan Data Sensitif mengidentifikasi informasi yang ingin Anda lacak. Misalnya, jika memindai data terkait di beberapa permintaan (seperti baris dalam tabel database yang sama), Anda dapat menggunakan metadata yang sama dalam permintaan terkait tersebut. Selanjutnya, Anda dapat mengumpulkan, menghitung, dan menganalisis temuan untuk tabel {i>database<i} itu.

Saat tugas hybrid menjalankan dan memeriksa permintaan, hasil pemeriksaan akan tersedia saat Perlindungan Data Sensitif membuatnya. Sebaliknya, tindakan, seperti notifikasi Pub/Sub, tidak akan terjadi sampai aplikasi Anda mengakhiri tugas hybrid.

Diagram yang menggambarkan proses pemeriksaan pekerjaan hybrid

Pertimbangan

Saat bekerja dengan tugas hybrid dan pemicu tugas, pertimbangkan hal-hal berikut:

  • Tugas hybrid dan pemicu tugas hybrid tidak mendukung pemfilteran dan pengambilan sampel.
  • Tugas dan pemicu tugas tidak tunduk pada tujuan tingkat layanan (SLO), tetapi ada beberapa langkah yang dapat Anda ambil untuk mengurangi latensi. Untuk mengetahui informasi selengkapnya, lihat Latensi tugas.

Sebelum memulai

Sebelum menyiapkan dan menggunakan tugas hybrid atau pemicu tugas hybrid, pastikan Anda telah melakukan hal berikut:

Buat project baru, aktifkan penagihan, dan aktifkan Perlindungan Data Sensitif

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  6. Enable the Sensitive Data Protection API.

    Enable the API

Mengonfigurasi sumber data

Sebelum Perlindungan Data Sensitif dapat memeriksa data, Anda harus mengirim data tersebut ke Perlindungan Data Sensitif. Terlepas dari metode yang digunakan untuk mengonfigurasi pemicu tugas hybrid atau tugas hybrid, Anda harus menyiapkan sumber eksternal untuk mengirim data ke DLP API.

Untuk informasi tentang format yang diperlukan untuk permintaan pemeriksaan hybrid, lihat Pemformatan item konten campuran. Untuk mengetahui informasi tentang jenis metadata yang dapat Anda sertakan dengan data dalam permintaan, baca Jenis metadata yang dapat Anda berikan.

Membuat tugas hybrid atau pemicu tugas hybrid

Agar Perlindungan Data Sensitif memeriksa data yang Anda kirim ke sana, Anda harus menyiapkan tugas hybrid atau pemicu tugas hybrid terlebih dahulu. Untuk mengetahui informasi tentang skenario mana yang harus dibuat, lihat Skenario pemeriksaan hybrid standar di halaman ini.

Konsol

Di konsol Google Cloud, buka halaman Buat tugas atau pemicu tugas:

Buka Buat tugas atau pemicu tugas

Bagian berikut menjelaskan cara mengisi bagian halaman Membuat tugas atau pemicu tugas yang relevan dengan operasi pemeriksaan hybrid.

Pilih data input

Di bagian ini, Anda akan menentukan data input untuk Perlindungan Data Sensitif yang akan diperiksa.

  1. Opsional: Untuk Name, beri nama tugas dengan memasukkan nilai di kolom Job ID. Membiarkan kolom ini kosong akan menyebabkan Perlindungan Data Sensitif membuat ID secara otomatis.
  2. Opsional: Dari menu Resource location, pilih region tempat Anda ingin menyimpan tugas hybrid atau pemicu tugas hybrid. Untuk mengetahui informasi selengkapnya, lihat Menentukan lokasi pemrosesan.
  3. Untuk Jenis penyimpanan, pilih Hybrid.

  4. Opsional: Untuk Deskripsi, jelaskan tugas hybrid atau pemicu tugas hybrid yang Anda buat. Misalnya, Anda dapat menyertakan informasi tentang sumber data yang akan diperiksa.

  5. Opsional: Untuk Label yang diperlukan, klik Tambahkan label, lalu masukkan label yang ingin Anda wajibkan dari permintaan hybridInspect. Permintaan hybridInspect yang tidak menentukan label ini tidak akan diproses oleh tugas hybrid atau pemicu tugas hybrid ini. Anda dapat menambahkan hingga 10 label yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Mewajibkan label dari permintaan hybridInspect di halaman ini.

  6. Opsional: Untuk Label opsional, masukkan key-value pair yang ingin Anda lampirkan ke hasil semua permintaan hybridInspect yang dikirim ke tugas atau pemicu tugas ini. Anda dapat menambahkan hingga 10 label opsional. Untuk informasi selengkapnya, lihat Label opsional.

  7. Opsional: Untuk Opsi data tabular, masukkan nama kolom kolom kunci utama jika Anda berencana untuk mengirim data tabel dalam permintaan hybridInspect. Untuk informasi selengkapnya, lihat Opsi data tabular.

  8. Klik Lanjutkan.

Konfigurasikan deteksi

Di bagian ini, Anda akan menentukan jenis data sensitif yang data inputnya akan diperiksa oleh Perlindungan Data Sensitif. Pilihan untuk Anda adalah:

  • Template: Jika Anda sudah membuat template dalam project saat ini yang ingin Anda gunakan untuk menentukan parameter deteksi Perlindungan Data Sensitif, klik kolom Nama template, lalu pilih template dari daftar yang muncul.
  • InfoTypes: Perlindungan Data Sensitif memilih infoType bawaan yang paling umum untuk dideteksi. Untuk mengubah infoType, atau memilih infoType kustom yang akan digunakan, klik Manage infoTypes. Anda juga dapat menyesuaikan kriteria deteksi di bagian Kumpulan aturan pemeriksaan dan Batas keyakinan. Untuk detail selengkapnya, lihat Mengonfigurasi deteksi.

Setelah mengonfigurasi parameter deteksi, klik Lanjutkan.

Tambah tindakan

Bagian ini adalah tempat Anda menentukan tempat untuk menyimpan temuan dari setiap pemindaian pemeriksaan dan apakah akan diberi tahu melalui email atau pesan notifikasi Pub/Sub setiap kali pemindaian selesai. Jika Anda tidak menyimpan temuan ke BigQuery, hasil pemindaian hanya akan berisi statistik tentang jumlah dan infoType temuan.

  • Simpan ke BigQuery: Setiap kali pemindaian berjalan, Perlindungan Data Sensitif menyimpan temuan pemindaian ke tabel BigQuery yang Anda tentukan di sini. Jika Anda tidak menentukan ID tabel, BigQuery akan menetapkan nama default ke tabel baru saat pemindaian pertama kali dijalankan. Jika Anda menentukan tabel yang sudah ada, Perlindungan Data Sensitif akan menambahkan temuan pemindaian ke tabel tersebut.
  • Publikasikan ke Pub/Sub: Setelah tugas selesai, pesan Pub/Sub akan muncul.

  • Beri tahu melalui email: Ketika tugas selesai, pesan email akan dikirim.

  • Publikasikan ke Cloud Monitoring: Setelah tugas selesai, temuannya akan dipublikasikan ke Monitoring.

Setelah memilih tindakan, klik Lanjutkan.

Jadwal

Bagian ini adalah tempat Anda menentukan apakah akan membuat satu tugas yang langsung berjalan, atau pemicu tugas yang berjalan setiap kali dirutekan dengan benar dan data yang diformat diterima oleh Perlindungan Data Sensitif.

Lakukan salah satu hal berikut:

  • Untuk langsung menjalankan tugas hybrid, pilih Tidak ada (langsung jalankan tugas satu kali setelah pembuatan).

  • Untuk mengonfigurasi tugas agar data yang diterima dari sumber memicu tugas, pilih Create a trigger to run the job on a periodic schedule.

    Tugas hybrid memicu panggilan API gabungan, sehingga Anda dapat melihat hasil dan tren dari waktu ke waktu.

Untuk informasi selengkapnya, lihat Perbandingan tugas hybrid dan pemicu tugas hybrid.

Ulasan

Anda dapat meninjau ringkasan pemindaian JSON di sini. Pastikan untuk mencatat nama alat hybrid atau pemicu tugas hybrid. Anda memerlukan informasi ini saat mengirim data ke Perlindungan Data Sensitif untuk diperiksa.

Setelah meninjau ringkasan JSON, klik Buat.

Perlindungan Data Sensitif memulai tugas hybrid atau pemicu tugas hybrid dengan segera. Pemindaian inspeksi dimulai saat Anda mengirim permintaan hybridInspect ke tugas hybrid atau pemicu tugas hybrid ini.

API

Tugas direpresentasikan dalam DLP API oleh resource DlpJobs. Untuk membuat tugas hybrid, panggil metode projects.locations.dlpJobs.create.

Pemicu tugas direpresentasikan dalam DLP API oleh resource JobTrigger. Untuk membuat pemicu tugas hybrid, panggil metode projects.locations.jobTriggers.create.

Objek DlpJobs atau JobTrigger yang Anda buat harus memiliki setelan berikut:

  1. Di kolom inspectJob, tetapkan objek InspectJobConfig.
  2. Pada objek InspectJobConfig, di kolom storageConfig, tetapkan objek StorageConfig.
  3. Pada objek StorageConfig, di kolom hybridOptions, tetapkan objek HybridOptions. Objek ini berisi metadata tentang data yang ingin Anda periksa.
  4. Pada objek InspectJobConfig, di kolom actions, tambahkan tindakan apa pun (Action) yang Anda inginkan untuk dilakukan Perlindungan Data Sensitif di akhir setiap tugas.

    Tindakan publishSummaryToCscc dan publishFindingsToCloudDataCatalog tidak didukung untuk operasi ini. Untuk informasi selengkapnya tentang tindakan, lihat Tindakan.

  5. Tentukan file yang akan dipindai dan cara memindainya dengan melakukan salah satu atau kedua hal berikut:

    • Tetapkan kolom inspectTemplateName ke nama resource lengkap dari template pemeriksaan yang ingin Anda gunakan, jika tersedia.

    • Tetapkan kolom inspectConfig.

    Jika Anda menetapkan kolom inspectTemplateName dan inspectConfig, setelannya akan digabungkan.

Tentang contoh JSON

Tab berikut berisi contoh JSON yang dapat Anda kirim ke Perlindungan Data Sensitif untuk membuat tugas hybrid atau pemicu tugas hybrid. Contoh pemicu tugas hybrid dan tugas hybrid ini dikonfigurasi untuk melakukan hal berikut:

  • Proses permintaan hybridInspect apa pun jika permintaan memiliki label appointment-bookings-comments.
  • Pindai konten dalam permintaan hybridInspect untuk menemukan alamat email.
  • Lampirkan label "env": "prod" ke temuan.
  • Untuk data tabel, dapatkan nilai sel di kolom booking_id (kunci utama) yang berada di baris yang sama dengan sel tempat data sensitif ditemukan. Perlindungan Data Sensitif melampirkan ID ini ke temuan, sehingga Anda dapat melacak penemuan tersebut ke baris asalnya.
  • Kirim email saat tugas dihentikan. Email tersebut akan ditujukan ke pemilik project IAM dan Kontak Penting teknis.
  • Kirim temuan ke Cloud Monitoring saat tugas dihentikan.

Untuk melihat contoh JSON, lihat tab berikut.

Tugas hybrid

Tab ini berisi contoh JSON yang dapat Anda gunakan untuk membuat tugas hybrid.

Untuk membuat tugas hybrid, kirim permintaan POST ke endpoint berikut.

Metode HTTP dan URL

POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/dlpJobs

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin menyimpan tugas hybrid.
  • REGION: region geografis tempat Anda ingin menyimpan tugas hybrid.

Input JSON

{
  "jobId": "postgresql-table-comments",
  "inspectJob": {
    "actions": [
      {
        "jobNotificationEmails": {}
      },
      {
        "publishToStackdriver": {}
      }
    ],
    "inspectConfig": {
      "infoTypes": [
        {
          "name": "EMAIL_ADDRESS"
        }
      ],
      "minLikelihood": "POSSIBLE",
      "includeQuote": true
    },
    "storageConfig": {
      "hybridOptions": {
        "description": "Hybrid job for data from the comments field of a table that contains customer appointment bookings",
        "requiredFindingLabelKeys": [
          "appointment-bookings-comments"
        ],
        "labels": {
          "env": "prod"
        },
        "tableOptions": {
          "identifyingFields": [
            {
              "name": "booking_id"
            }
          ]
        }
      }
    }
  }
}

Output JSON

{
"name": "projects/PROJECT_ID/locations/REGION/dlpJobs/i-postgresql-table-comments",
"type": "INSPECT_JOB",
"state": "ACTIVE",
"inspectDetails": {
  "requestedOptions": {
    "snapshotInspectTemplate": {},
    "jobConfig": {
      "storageConfig": {
        "hybridOptions": {
          "description": "Hybrid job for data from the comments field of a table that contains customer appointment bookings",
          "requiredFindingLabelKeys": [
            "appointment-bookings-comments"
          ],
          "labels": {
            "env": "prod"
          },
          "tableOptions": {
            "identifyingFields": [
              {
                "name": "booking_id"
              }
            ]
          }
        }
      },
      "inspectConfig": {
        "infoTypes": [
          {
            "name": "EMAIL_ADDRESS"
          }
        ],
        "minLikelihood": "POSSIBLE",
        "limits": {},
        "includeQuote": true
      },
      "actions": [
        {
          "jobNotificationEmails": {}
        },
        {
          "publishToStackdriver": {}
        }
      ]
    }
  },
  "result": {
    "hybridStats": {}
  }
},
"createTime": "JOB_CREATION_DATETIME",
"startTime": "JOB_START_DATETIME"
}

Perlindungan Data Sensitif membuat tugas hybrid dan menghasilkan ID pekerjaan. Dalam contoh ini, ID tugas adalah i-postgresql-table-comments. Catat ID pekerjaan. Anda memerlukannya dalam permintaan hybridInspect.

Untuk menghentikan tugas hybrid, Anda harus memanggil metode projects.locations.dlpJobs.finish secara eksplisit. DLP API tidak secara otomatis menghentikan tugas hybrid. Sebaliknya, DLP API secara otomatis menghentikan tugas dalam pemicu tugas hybrid di penghujung hari.

Pemicu tugas hybrid

Tab ini berisi contoh JSON yang dapat Anda gunakan untuk membuat pemicu tugas hybrid.

Untuk membuat pemicu tugas hybrid, kirim permintaan POST ke endpoint berikut.

Metode HTTP dan URL

POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobTriggers

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin menyimpan pemicu tugas hybrid.
  • REGION: region geografis tempat Anda ingin menyimpan pemicu tugas hybrid.

Input JSON

{
    "triggerId": "postgresql-table-comments",
    "jobTrigger": {
      "triggers": [
        {
          "manual": {}
        }
      ],
      "inspectJob": {
        "actions": [
          {
            "jobNotificationEmails": {}
          },
          {
            "publishToStackdriver": {}
          }
        ],
        "inspectConfig": {
          "infoTypes": [
              {
                "name": "EMAIL_ADDRESS"
              }
          ],
          "minLikelihood": "POSSIBLE",
          "limits": {},
          "includeQuote": true
        },
        "storageConfig": {
          "hybridOptions": {
            "description": "Hybrid job trigger for data from the comments field of a table that contains customer appointment bookings",
            "requiredFindingLabelKeys": [
                "appointment-bookings-comments"
              ],
            "labels": {
              "env": "prod"
            },
            "tableOptions": {
              "identifyingFields": [
                {
                  "name": "booking_id"
                }
              ]
            }
          }
        }
      }
    }
  }

Output JSON

{
"name": "projects/PROJECT_ID/locations/REGION/jobTriggers/postgresql-table-comments",
"inspectJob": {
  "storageConfig": {
    "hybridOptions": {
      "description": "Hybrid job trigger for data from the comments field of a table that contains customer appointment bookings",
      "requiredFindingLabelKeys": [
        "appointment-bookings-comments"
      ],
      "labels": {
        "env": "prod"
      },
      "tableOptions": {
        "identifyingFields": [
          {
            "name": "booking_id"
          }
        ]
      }
    }
  },
  "inspectConfig": {
    "infoTypes": [
      {
        "name": "EMAIL_ADDRESS"
      }
    ],
    "minLikelihood": "POSSIBLE",
    "limits": {},
    "includeQuote": true
  },
  "actions": [
    {
      "jobNotificationEmails": {}
    },
    {
      "publishToStackdriver": {}
    }
  ]
},
"triggers": [
  {
    "manual": {}
  }
],
"createTime": ""JOB_CREATION_DATETIME",
"updateTime": "TRIGGER_UPDATE_DATETIME",
"status": "HEALTHY"
}

Perlindungan Data Sensitif membuat pemicu tugas hybrid. Output-nya berisi nama pemicu tugas hybrid. Dalam contoh ini, atribut tersebut adalah postgresql-table-comments. Catat namanya. Anda memerlukannya dalam permintaan hybridInspect.

Tidak seperti tugas hybrid, DLP API secara otomatis menghentikan tugas dalam pemicu tugas hybrid di penghujung hari. Dengan demikian, Anda tidak perlu secara eksplisit memanggil metode projects.locations.dlpJobs.finish.

Saat membuat tugas hybrid atau pemicu tugas hybrid, Anda dapat menggunakan APIs Explorer di halaman referensi API berikut:

Di kolom Parameter permintaan, masukkan projects/PROJECT_ID/locations/REGION. Kemudian, di kolom Isi permintaan, tempel contoh JSON untuk objek yang ingin Anda buat.

Permintaan yang berhasil, bahkan yang dibuat di APIs Explorer, akan membuat tugas hybrid atau pemicu tugas hybrid.

Untuk mengetahui informasi umum tentang penggunaan JSON untuk mengirim permintaan ke DLP API, lihat panduan memulai JSON.

Mengirim data ke tugas hybrid atau pemicu tugas hybrid

Untuk memeriksa data, Anda harus mengirim permintaan hybridInspect, dalam format yang benar, ke tugas hybrid atau pemicu tugas hybrid.

Format item konten campuran

Berikut adalah contoh sederhana permintaan hybridInspect yang dikirim ke Perlindungan Data Sensitif untuk diproses oleh pemicu tugas hybrid atau tugas hybrid. Perhatikan struktur objek JSON, termasuk kolom hybridItem, yang berisi kolom berikut:

  • item: berisi konten sebenarnya yang akan diperiksa.
  • findingDetails: berisi metadata yang akan dikaitkan dengan konten.
{
  "hybridItem": {
    "item": {
      "value": "My email is test@example.org"
    },
    "findingDetails": {
      "containerDetails": {
        "fullPath": "10.0.0.2:logs1:app1",
        "relativePath": "app1",
        "rootPath": "10.0.0.2:logs1",
        "type": "logging_sys",
        "version": "1.2"
      },
      "labels": {
        "env": "prod",
        "appointment-bookings-comments": ""
      }
    }
  }
}

Untuk mengetahui informasi komprehensif tentang konten item pemeriksaan campuran, lihat konten referensi API untuk objek HybridContentItem.

Endpoint pemeriksaan hybrid

Agar data diperiksa menggunakan tugas hybrid atau pemicu tugas hybrid, Anda harus mengirim permintaan hybridInspect ke endpoint yang benar.

Metode HTTP dan URL untuk tugas hybrid

POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/dlpJobs/JOB_ID:hybridInspect

Untuk mengetahui informasi selengkapnya tentang endpoint ini, lihat halaman referensi API untuk metode projects.locations.dlpJobs.hybridInspect.

Metode HTTP dan URL untuk pemicu tugas hybrid

https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobTriggers/TRIGGER_NAME:hybridInspect

Untuk mengetahui informasi selengkapnya tentang endpoint ini, lihat halaman referensi API untuk metode projects.locations.jobTriggers.hybridInspect.

Ganti kode berikut:

  • PROJECT_ID: ID project Anda.
  • REGION: region geografis tempat Anda ingin menyimpan permintaan hybridInspect. Region ini harus sama dengan region tugas hybrid.
  • JOB_ID: ID yang Anda berikan ke tugas hybrid, yang diawali dengan i-.

    Untuk mencari ID tugas, di Sensitive Data Protection, klik Inspection > Inspect jobs.

  • TRIGGER_NAME: nama yang Anda berikan untuk pemicu tugas hybrid.

    Untuk mencari nama pemicu tugas, di bagian Sensitive Data Protection, klik Inspection > Job trigger.

Wajibkan label dari hybridInspect permintaan

Jika ingin mengontrol permintaan hybridInspect mana yang dapat diproses oleh tugas hybrid atau pemicu tugas hybrid, Anda dapat menetapkan label yang diperlukan. Semua permintaan hybridInspect untuk tugas hybrid atau pemicu tugas hybrid yang tidak menyertakan label wajib ini akan ditolak.

Untuk menetapkan label yang diperlukan, lakukan hal berikut:

  1. Saat membuat tugas hybrid atau pemicu tugas hybrid, tetapkan kolom requiredFindingLabelKeys ke daftar label yang diperlukan.

    Contoh berikut menetapkan appointment-bookings-comments sebagai label yang diperlukan dalam tugas hybrid atau pemicu tugas hybrid.

    "hybridOptions": {
      ...
      "requiredFindingLabelKeys": [
        "appointment-bookings-comments"
      ],
      "labels": {
        "env": "prod"
      },
      ...
    }
    
  2. Pada permintaan hybridInspect, di kolom labels, tambahkan setiap label yang diperlukan sebagai kunci dalam pasangan nilai kunci. Nilai yang sesuai bisa berupa string kosong.

    Contoh berikut menetapkan label yang diperlukan, appointment-bookings-comments, dalam permintaan hybridInspect.

    {
      "hybridItem": {
        "item": {
          "value": "My email is test@example.org"
        },
        "findingDetails": {
          "containerDetails": {...},
          "labels": {
            "appointment-bookings-comments": ""
          }
        }
      }
    }
    

Jika label yang diperlukan tidak disertakan dalam permintaan hybridInspect, Anda akan mendapatkan error seperti berikut:

{
  "error": {
    "code": 400,
    "message": "Trigger required labels that were not included: [appointment-bookings-comments]",
    "status": "INVALID_ARGUMENT"
  }
}

Contoh kode: Membuat pemicu tugas hybrid dan mengirim data ke pemicu tersebut

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.


using System;
using Google.Api.Gax.ResourceNames;
using Google.Api.Gax;
using Google.Cloud.Dlp.V2;
using Grpc.Core;

public class SendDataToTheHybridJobTrigger
{
    public static DlpJob SendToHybridJobTrigger(
       string projectId,
       string jobTriggerId,
       string text = null)
    {
        // Instantiate the dlp client.
        var dlp = DlpServiceClient.Create();

        // Construct the hybrid finding details which will be used as metadata with the content.
        // Refer to this for more information: https://cloud.google.com/dlp/docs/reference/rpc/google.privacy.dlp.v2#google.privacy.dlp.v2.Container
        var findingDetails = new HybridFindingDetails
        {
            ContainerDetails = new Container
            {
                FullPath = "10.0.0.2:logs1:aap1",
                RelativePath = "app1",
                RootPath = "10.0.0.2:logs1",
                Type = "System Logs"
            }
        };

        // Construct the hybrid content item using the finding details and text to be inspected.
        var hybridContentItem = new HybridContentItem
        {
            Item = new ContentItem { Value = text ?? "My email is ariel@example.org and name is Ariel." },
            FindingDetails = findingDetails
        };

        var jobTriggerName = new JobTriggerName(projectId, jobTriggerId);

        // Construct the request to activate the Job Trigger.
        var activate = new ActivateJobTriggerRequest
        {
            JobTriggerName = jobTriggerName
        };

        DlpJob triggerJob = null;

        try
        {
            // Call the API to activate the trigger.
            triggerJob = dlp.ActivateJobTrigger(activate);
        }
        catch (RpcException)
        {
            ListDlpJobsRequest listJobsRequest = new ListDlpJobsRequest
            {
                ParentAsLocationName = new LocationName(projectId, "global"),
                Filter = $"trigger_name={jobTriggerName}"
            };

            PagedEnumerable<ListDlpJobsResponse, DlpJob> res = dlp.ListDlpJobs(listJobsRequest);
            foreach (DlpJob j in res)
            {
                triggerJob = j;
            }
        }

        // Construct the request using hybrid content item.
        var request = new HybridInspectJobTriggerRequest
        {
            HybridItem = hybridContentItem,
            JobTriggerName = jobTriggerName
        };

        // Call the API.
        HybridInspectResponse _ = dlp.HybridInspectJobTrigger(request);

        Console.WriteLine($"Hybrid job created successfully. Job name: {triggerJob.Name}");

        return triggerJob;
    }
}

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.

import (
	"context"
	"fmt"
	"io"
	"log"
	"time"

	dlp "cloud.google.com/go/dlp/apiv2"
	"cloud.google.com/go/dlp/apiv2/dlppb"
)

// inspectDataToHybridJobTrigger uses the Data Loss Prevention API to inspect sensitive
// information using Hybrid jobs trigger that scans payloads of data sent from
// virtually any source and stores findings in Google Cloud.
func inspectDataToHybridJobTrigger(w io.Writer, projectID, textToDeIdentify, jobTriggerName string) error {
	// projectId := "your-project-id"
	// jobTriggerName := "your-job-trigger-name"
	// textToDeIdentify := "My email is test@example.org"

	ctx := context.Background()

	// Initialize a client once and reuse it to send multiple requests. Clients
	// are safe to use across goroutines. When the client is no longer needed,
	// call the Close method to cleanup its resources.
	client, err := dlp.NewClient(ctx)
	if err != nil {
		return err
	}

	// Closing the client safely cleans up background resources.
	defer client.Close()

	// Specify the content to be inspected.
	contentItem := &dlppb.ContentItem{
		DataItem: &dlppb.ContentItem_Value{
			Value: textToDeIdentify,
		},
	}

	// Contains metadata to associate with the content.
	// Refer to https://cloud.google.com/dlp/docs/reference/rpc/google.privacy.dlp.v2#container for specifying the paths in container object.
	container := &dlppb.Container{
		Type:         "logging_sys",
		FullPath:     "10.0.0.2:logs1:app1",
		RelativePath: "app1",
		RootPath:     "10.0.0.2:logs1",
		Version:      "1.2",
	}

	// Set the required label.
	labels := map[string]string{
		"env":                           "prod",
		"appointment-bookings-comments": "",
	}

	hybridFindingDetails := &dlppb.HybridFindingDetails{
		ContainerDetails: container,
		Labels:           labels,
	}

	hybridContentItem := &dlppb.HybridContentItem{
		Item:           contentItem,
		FindingDetails: hybridFindingDetails,
	}

	// Activate the job trigger.
	activateJobreq := &dlppb.ActivateJobTriggerRequest{
		Name: jobTriggerName,
	}

	dlpJob, err := client.ActivateJobTrigger(ctx, activateJobreq)
	if err != nil {
		log.Printf("Error from return part %v", err)
		return err
	}
	// Build the hybrid inspect request.
	req := &dlppb.HybridInspectJobTriggerRequest{
		Name:       jobTriggerName,
		HybridItem: hybridContentItem,
	}

	// Send the hybrid inspect request.
	_, err = client.HybridInspectJobTrigger(ctx, req)
	if err != nil {
		return err
	}

	getDlpJobReq := &dlppb.GetDlpJobRequest{
		Name: dlpJob.Name,
	}

	var result *dlppb.DlpJob
	for i := 0; i < 5; i++ {
		// Get DLP job
		result, err = client.GetDlpJob(ctx, getDlpJobReq)
		if err != nil {
			fmt.Printf("Error getting DLP job: %v\n", err)
			return err
		}

		// Check if processed bytes is greater than 0
		if result.GetInspectDetails().GetResult().GetProcessedBytes() > 0 {
			break
		}

		// Wait for 5 seconds before checking again
		time.Sleep(5 * time.Second)
		i++
	}

	fmt.Fprintf(w, "Job Name: %v\n", result.Name)
	fmt.Fprintf(w, "Job State: %v\n", result.State)

	inspectionResult := result.GetInspectDetails().GetResult()
	fmt.Fprint(w, "Findings: \n")
	for _, v := range inspectionResult.GetInfoTypeStats() {
		fmt.Fprintf(w, "Infotype: %v\n", v.InfoType.Name)
		fmt.Fprintf(w, "Likelihood: %v\n", v.GetCount())
	}

	fmt.Fprint(w, "successfully inspected data using hybrid job trigger ")
	return nil
}

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.


import com.google.api.gax.rpc.InvalidArgumentException;
import com.google.cloud.dlp.v2.DlpServiceClient;
import com.google.privacy.dlp.v2.ActivateJobTriggerRequest;
import com.google.privacy.dlp.v2.Container;
import com.google.privacy.dlp.v2.ContentItem;
import com.google.privacy.dlp.v2.DlpJob;
import com.google.privacy.dlp.v2.GetDlpJobRequest;
import com.google.privacy.dlp.v2.HybridContentItem;
import com.google.privacy.dlp.v2.HybridFindingDetails;
import com.google.privacy.dlp.v2.HybridInspectJobTriggerRequest;
import com.google.privacy.dlp.v2.InfoTypeStats;
import com.google.privacy.dlp.v2.InspectDataSourceDetails;
import com.google.privacy.dlp.v2.JobTriggerName;
import com.google.privacy.dlp.v2.ListDlpJobsRequest;

public class InspectDataToHybridJobTrigger {

  public static void main(String[] args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    // The Google Cloud project id to use as a parent resource.
    String projectId = "your-project-id";
    // The job trigger id used to for processing a hybrid job trigger.
    String jobTriggerId = "your-job-trigger-id";
    // The string to de-identify.
    String textToDeIdentify = "My email is test@example.org and my name is Gary.";
    inspectDataToHybridJobTrigger(textToDeIdentify, projectId, jobTriggerId);
  }

  // Inspects data using a hybrid job trigger.
  // Hybrid jobs trigger allows to scan payloads of data sent from virtually any source for
  // sensitive information and then store the findings in Google Cloud.
  public static void inspectDataToHybridJobTrigger(
      String textToDeIdentify, String projectId, String jobTriggerId) throws Exception {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (DlpServiceClient dlpClient = DlpServiceClient.create()) {
      // Specify the content to be inspected.
      ContentItem contentItem = ContentItem.newBuilder().setValue(textToDeIdentify).build();

      // Contains metadata to associate with the content.
      // Refer to https://cloud.google.com/dlp/docs/reference/rest/v2/Container for specifying the
      // paths in container object.
      Container container =
          Container.newBuilder()
              .setFullPath("10.0.0.2:logs1:app1")
              .setRelativePath("app1")
              .setRootPath("10.0.0.2:logs1")
              .setType("logging_sys")
              .setVersion("1.2")
              .build();

      HybridFindingDetails hybridFindingDetails =
          HybridFindingDetails.newBuilder().setContainerDetails(container).build();

      HybridContentItem hybridContentItem =
          HybridContentItem.newBuilder()
              .setItem(contentItem)
              .setFindingDetails(hybridFindingDetails)
              .build();

      // Activate the job trigger.
      ActivateJobTriggerRequest activateJobTriggerRequest =
          ActivateJobTriggerRequest.newBuilder()
              .setName(JobTriggerName.of(projectId, jobTriggerId).toString())
              .build();

      DlpJob dlpJob;

      try {
        dlpJob = dlpClient.activateJobTrigger(activateJobTriggerRequest);
      } catch (InvalidArgumentException e) {
        ListDlpJobsRequest request =
            ListDlpJobsRequest.newBuilder()
                .setParent(JobTriggerName.of(projectId, jobTriggerId).toString())
                .setFilter("trigger_name=" + JobTriggerName.of(projectId, jobTriggerId).toString())
                .build();

        // Retrieve the DLP jobs triggered by the job trigger
        DlpServiceClient.ListDlpJobsPagedResponse response = dlpClient.listDlpJobs(request);
        dlpJob = response.getPage().getResponse().getJobs(0);
      }

      // Build the hybrid inspect request.
      HybridInspectJobTriggerRequest request =
          HybridInspectJobTriggerRequest.newBuilder()
              .setName(JobTriggerName.of(projectId, jobTriggerId).toString())
              .setHybridItem(hybridContentItem)
              .build();

      // Send the hybrid inspect request.
      dlpClient.hybridInspectJobTrigger(request);

      // Build a request to get the completed job
      GetDlpJobRequest getDlpJobRequest =
          GetDlpJobRequest.newBuilder().setName(dlpJob.getName()).build();

      DlpJob result = null;

      do {
        result = dlpClient.getDlpJob(getDlpJobRequest);
        Thread.sleep(5000);
      } while (result.getInspectDetails().getResult().getProcessedBytes() <= 0);

      System.out.println("Job status: " + result.getState());
      System.out.println("Job name: " + result.getName());
      // Parse the response and process results.
      InspectDataSourceDetails.Result inspectionResult = result.getInspectDetails().getResult();
      System.out.println("Findings: ");
      for (InfoTypeStats infoTypeStat : inspectionResult.getInfoTypeStatsList()) {
        System.out.println("\tInfoType: " + infoTypeStat.getInfoType().getName());
        System.out.println("\tCount: " + infoTypeStat.getCount() + "\n");
      }
    }
  }
}

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.

// Imports the Google Cloud Data Loss Prevention library
const DLP = require('@google-cloud/dlp');

// Instantiates a client
const dlpClient = new DLP.DlpServiceClient();

// The project ID to run the API call under.
// const projectId = "your-project-id";

// The string to de-identify
// const string = 'My email is test@example.org';

// Job Trigger ID
// const jobTriggerId = 'your-job-trigger-id';

async function inspectDataToHybridJobTrigger() {
  // Contains metadata to associate with the content.
  const container = {
    full_path: '10.0.0.2:logs1:app1',
    relative_path: 'app1',
    root_path: '10.0.0.2:logs1',
    type: 'logging_sys',
    version: '1.2',
  };

  const labels = {env: 'prod', 'appointment-bookings-comments': ''};

  // Build the hybrid content item.
  const hybridContentItem = {
    item: {value: string},
    findingDetails: {
      containerDetails: container,
      labels,
    },
  };
  let jobName;
  const fullTriggerName = `projects/${projectId}/jobTriggers/${jobTriggerId}`;
  // Activate the job trigger.
  try {
    const response = await dlpClient.activateJobTrigger({
      name: fullTriggerName,
    });
    jobName = response[0].name;
  } catch (err) {
    console.log(err);
    if (err.code === 3) {
      const response = await dlpClient.listDlpJobs({
        parent: fullTriggerName,
        filter: `trigger_name=${fullTriggerName}`,
      });
      jobName = response[0][0].name;
    }
    // Ignore error related to job trigger already active
    if (err.code !== 3) {
      console.log(err.message);
      return;
    }
  }
  // Build the hybrid inspect request.
  const request = {
    name: `projects/${projectId}/jobTriggers/${jobTriggerId}`,
    hybridItem: hybridContentItem,
  };
  // Send the hybrid inspect request.
  await dlpClient.hybridInspectJobTrigger(request);
  // Waiting for a maximum of 15 minutes for the job to get complete.
  let job;
  let numOfAttempts = 30;
  while (numOfAttempts > 0) {
    // Fetch DLP Job status
    [job] = await dlpClient.getDlpJob({name: jobName});

    if (job.state === 'FAILED') {
      console.log('Job Failed, Please check the configuration.');
      return;
    }
    // Check if the job has completed.
    if (job.inspectDetails.result.processedBytes > 0) {
      break;
    }
    // Sleep for a short duration before checking the job status again.
    await new Promise(resolve => {
      setTimeout(() => resolve(), 30000);
    });
    numOfAttempts -= 1;
  }
  // Finish the job once the inspection is complete.
  await dlpClient.finishDlpJob({name: jobName});

  // Print out the results.
  const infoTypeStats = job.inspectDetails.result.infoTypeStats;
  if (infoTypeStats.length > 0) {
    infoTypeStats.forEach(infoTypeStat => {
      console.log(
        `  Found ${infoTypeStat.count} instance(s) of infoType ${infoTypeStat.infoType.name}.`
      );
    });
  } else {
    console.log('No findings.');
  }
}
await inspectDataToHybridJobTrigger();

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.


use Google\ApiCore\ApiException;
use Google\Cloud\Dlp\V2\Container;
use Google\Cloud\Dlp\V2\DlpServiceClient;
use Google\Cloud\Dlp\V2\ContentItem;
use Google\Cloud\Dlp\V2\DlpJob\JobState;
use Google\Cloud\Dlp\V2\HybridContentItem;
use Google\Cloud\Dlp\V2\HybridFindingDetails;

/**
 * Inspect data hybrid job trigger.
 * Send data to the hybrid job or hybrid job trigger.
 *
 * @param string $callingProjectId  The Google Cloud project id to use as a parent resource.
 * @param string $string            The string to inspect (will be treated as text).
 */

function inspect_send_data_to_hybrid_job_trigger(
    // TODO(developer): Replace sample parameters before running the code.
    string $callingProjectId,
    string $jobTriggerId,
    string $string
): void {
    // Instantiate a client.
    $dlp = new DlpServiceClient();

    $content = (new ContentItem())
        ->setValue($string);

    $container = (new Container())
        ->setFullPath('10.0.0.2:logs1:app1')
        ->setRelativePath('app1')
        ->setRootPath('10.0.0.2:logs1')
        ->setType('logging_sys')
        ->setVersion('1.2');

    $findingDetails = (new HybridFindingDetails())
        ->setContainerDetails($container)
        ->setLabels([
            'env' => 'prod',
            'appointment-bookings-comments' => ''
        ]);

    $hybridItem = (new HybridContentItem())
        ->setItem($content)
        ->setFindingDetails($findingDetails);

    $parent = "projects/$callingProjectId/locations/global";
    $name = "projects/$callingProjectId/locations/global/jobTriggers/" . $jobTriggerId;

    $triggerJob = null;
    try {
        $triggerJob = $dlp->activateJobTrigger($name);
    } catch (ApiException $e) {
        $result = $dlp->listDlpJobs($parent, ['filter' => 'trigger_name=' . $name]);
        foreach ($result as $job) {
            $triggerJob = $job;
        }
    }

    $dlp->hybridInspectJobTrigger($name, [
        'hybridItem' => $hybridItem,
    ]);

    $numOfAttempts = 10;
    do {
        printf('Waiting for job to complete' . PHP_EOL);
        sleep(10);
        $job = $dlp->getDlpJob($triggerJob->getName());
        if ($job->getState() != JobState::RUNNING) {
            break;
        }
        $numOfAttempts--;
    } while ($numOfAttempts > 0);

    // Print finding counts.
    printf('Job %s status: %s' . PHP_EOL, $job->getName(), JobState::name($job->getState()));
    switch ($job->getState()) {
        case JobState::DONE:
            $infoTypeStats = $job->getInspectDetails()->getResult()->getInfoTypeStats();
            if (count($infoTypeStats) === 0) {
                printf('No findings.' . PHP_EOL);
            } else {
                foreach ($infoTypeStats as $infoTypeStat) {
                    printf(
                        '  Found %s instance(s) of infoType %s' . PHP_EOL,
                        $infoTypeStat->getCount(),
                        $infoTypeStat->getInfoType()->getName()
                    );
                }
            }
            break;
        case JobState::FAILED:
            printf('Job %s had errors:' . PHP_EOL, $job->getName());
            $errors = $job->getErrors();
            foreach ($errors as $error) {
                var_dump($error->getDetails());
            }
            break;
        case JobState::PENDING:
            printf('Job has not completed. Consider a longer timeout or an asynchronous execution model' . PHP_EOL);
            break;
        default:
            printf('Unexpected job state. Most likely, the job is either running or has not yet started.');
    }
}

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.

import time

import google.cloud.dlp

def inspect_data_to_hybrid_job_trigger(
    project: str,
    trigger_id: str,
    content_string: str,
) -> None:
    """
    Uses the Data Loss Prevention API to inspect sensitive information
    using Hybrid jobs trigger that scans payloads of data sent from
    virtually any source and stores findings in Google Cloud.
    Args:
        project: The Google Cloud project id to use as a parent resource.
        trigger_id: The job trigger identifier for hybrid job trigger.
        content_string: The string to inspect.
    """

    # Instantiate a client.
    dlp = google.cloud.dlp_v2.DlpServiceClient()

    # Construct the `item` to inspect.
    item = {"value": content_string}

    # Construct the container details that contains metadata to be
    # associated with the content. For more details, please refer to
    # https://cloud.google.com/dlp/docs/reference/rest/v2/Container
    container_details = {
        "full_path": "10.0.0.2:logs1:app1",
        "relative_path": "app1",
        "root_path": "10.0.0.2:logs1",
        "type_": "logging_sys",
        "version": "1.2",
    }

    # Construct hybrid inspection configuration.
    hybrid_config = {
        "item": item,
        "finding_details": {
            "container_details": container_details,
            "labels": {
                "env": "prod",
                "appointment-bookings-comments": "",
            },
        },
    }

    # Convert the trigger id into a full resource id.
    trigger_id = f"projects/{project}/jobTriggers/{trigger_id}"

    # Activate the job trigger.
    dlp_job = dlp.activate_job_trigger(request={"name": trigger_id})

    # Call the API.
    dlp.hybrid_inspect_job_trigger(
        request={
            "name": trigger_id,
            "hybrid_item": hybrid_config,
        }
    )

    # Get inspection job details.
    job = dlp.get_dlp_job(request={"name": dlp_job.name})

    # Wait for dlp job to get finished.
    while job.inspect_details.result.processed_bytes <= 0:
        time.sleep(5)
        job = dlp.get_dlp_job(request={"name": dlp_job.name})

    # Print the results.
    print(f"Job name: {dlp_job.name}")
    if job.inspect_details.result.info_type_stats:
        for finding in job.inspect_details.result.info_type_stats:
            print(f"Info type: {finding.info_type.name}; Count: {finding.count}")
    else:
        print("No findings.")

Skenario inspeksi hybrid umum

Bagian berikut menjelaskan penggunaan umum untuk pemeriksaan hybrid dan alur kerja yang sesuai.

Melakukan pemindaian satu kali

Menjalankan pemindaian database satu kali di luar Google Cloud sebagai bagian dari pemeriksaan database setiap tiga bulan.

  1. Buat tugas hybrid menggunakan Google Cloud Console atau DLP API.

  2. Kirim data ke tugas dengan memanggil projects.locations.dlpJobs.hybridInspect. Jika Anda ingin memeriksa data lainnya, ulangi langkah ini sebanyak yang diperlukan.

  3. Setelah mengirim data untuk diperiksa, panggil metode projects.locations.dlpJobs.finish.

    Perlindungan Data Sensitif melakukan tindakan yang ditentukan dalam permintaan projects.locations.dlpJobs.create Anda.

Konfigurasi pemantauan berkelanjutan

Memantau semua konten baru yang ditambahkan setiap hari ke database yang tidak didukung secara native oleh Perlindungan Data Sensitif.

  1. Buat pemicu tugas hybrid menggunakan Google Cloud Console atau DLP API.

  2. Aktifkan pemicu tugas dengan memanggil metode projects.locations.jobTriggers.activate.

  3. Kirim data ke pemicu tugas dengan memanggil projects.locations.jobTriggers.hybridInspect. Jika Anda ingin memeriksa data lainnya, ulangi langkah ini sebanyak yang diperlukan.

Dalam hal ini, Anda tidak perlu memanggil metode projects.locations.dlpJobs.finish. Perlindungan Data Sensitif akan otomatis membagi data yang Anda kirim. Selama pemicu tugas aktif, di penghujung hari, Perlindungan Data Sensitif akan melakukan tindakan yang Anda tentukan saat membuat pemicu tugas hybrid.

Memindai data yang masuk ke database

Memindai data yang masuk ke database, sambil mengontrol cara data dipartisi. Setiap tugas dalam pemicu tugas merupakan satu partisi.

  1. Buat pemicu tugas hybrid menggunakan Google Cloud Console atau DLP API.

  2. Aktifkan pemicu tugas dengan memanggil metode projects.locations.jobTriggers.activate.

    Sistem menampilkan ID tugas dari satu tugas. Anda memerlukan ID tugas ini pada langkah berikutnya.

  3. Kirim data ke tugas dengan memanggil projects.locations.dlpJobs.hybridInspect.

    Dalam hal ini, Anda mengirim data ke tugas, bukan pemicu tugas. Pendekatan ini memungkinkan Anda mengontrol partisi data yang dikirim untuk diperiksa. Jika ingin menambahkan lebih banyak data untuk diperiksa di partisi saat ini, ulangi langkah ini.

  4. Setelah mengirim data ke tugas, panggil metode projects.locations.dlpJobs.finish.

    Perlindungan Data Sensitif melakukan tindakan yang ditentukan dalam permintaan projects.locations.jobTriggers.create Anda.

  5. Jika Anda ingin membuat tugas lain untuk partisi berikutnya, aktifkan kembali pemicu tugas, lalu kirim data ke tugas yang dihasilkan.

Memantau traffic dari proxy

Memantau traffic dari proxy yang diinstal di antara dua aplikasi kustom.

  1. Buat pemicu tugas hybrid menggunakan Google Cloud Console atau DLP API.

  2. Aktifkan pemicu tugas dengan memanggil metode projects.locations.jobTriggers.activate.

  3. Kirim data ke pemicu tugas dengan memanggil projects.locations.jobTriggers.hybridInspect. Jika Anda ingin memeriksa data lainnya, ulangi langkah ini sebanyak yang diperlukan.

    Anda dapat memanggil permintaan ini tanpa batas waktu untuk semua traffic jaringan. Pastikan Anda menyertakan metadata dalam setiap permintaan.

Dalam hal ini, Anda tidak perlu memanggil metode projects.locations.dlpJobs.finish. Perlindungan Data Sensitif akan otomatis membagi data yang Anda kirim. Selama pemicu tugas aktif, di penghujung hari, Perlindungan Data Sensitif akan melakukan tindakan yang Anda tentukan saat membuat pemicu tugas hybrid.

Langkah selanjutnya