Memeriksa data dari sumber eksternal menggunakan tugas hybrid

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

Pengantar tugas hybrid dan pemicu tugas hybrid

Tugas hybrid dan pemicu tugas hybrid memungkinkan Anda memperluas cakupan perlindungan yang disediakan oleh 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 Sensitive Data Protection, dan mengizinkan Sensitive Data Protection memeriksa data untuk informasi sensitif. Sensitive Data Protection otomatis menyimpan dan menggabungkan hasil pemindaian untuk analisis lebih lanjut.

Perbandingan tugas hybrid dan pemicu tugas hybrid

Saat Anda membuat tugas campuran, tugas tersebut akan berjalan hingga Anda menghentikannya. Fungsi ini menerima semua data masuk selama data tersebut dirutekan 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 campuran, Anda dapat menghentikan dan memulai tugas baru dalam pemicu tanpa harus mengonfigurasi ulang permintaan hybridInspect. Misalnya, Anda dapat mengirim data ke pemicu tugas campuran, 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 campuran yang umum di halaman ini.

Definisi istilah

Topik ini menggunakan istilah berikut:

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

  • 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 hibrida atau pemicu tugas hibrida yang akan menerima permintaan.

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

Proses inspeksi campuran

Ada tiga langkah dalam proses pemeriksaan campuran.

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

    Data dapat berasal dari dalam Google Cloud atau di luarnya. Misalnya, Anda dapat mengonfigurasi skrip atau aplikasi kustom untuk mengirim data ke Sensitive Data Protection, sehingga Anda dapat memeriksa data saat dalam pengiriman, dari layanan cloud lain, repositori data on-premise, atau hampir semua sumber data lainnya.

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

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

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

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

    Permintaan hybridInspect berisi data yang akan dipindai. Dalam permintaan, sertakan metadata (juga disebut sebagai label dan ID tabel) yang menjelaskan konten dan memungkinkan Sensitive Data Protection mengidentifikasi informasi yang ingin Anda lacak. Misalnya, jika Anda memindai data terkait di beberapa permintaan (seperti baris dalam tabel database yang sama), Anda dapat menggunakan metadata yang sama dalam permintaan terkait tersebut. Kemudian, Anda dapat mengumpulkan, menjumlahkan, dan menganalisis temuan untuk tabel database tersebut.

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

Diagram yang menggambarkan proses inspeksi tugas campuran

Pertimbangan

Saat menggunakan tugas campuran dan pemicu tugas, pertimbangkan poin-poin berikut:

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

Sebelum memulai

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

Membuat project baru, mengaktifkan penagihan, dan mengaktifkan Perlindungan Data Sensitif

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Make sure that billing is enabled for your Google Cloud project.

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

    Buka pemilih project

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Aktifkan API Sensitive Data Protection.

    Mengaktifkan API

Mengonfigurasi sumber data

Sebelum Sensitive Data Protection dapat memeriksa data Anda, Anda harus mengirim data tersebut ke Sensitive Data Protection. Terlepas dari metode yang Anda gunakan untuk mengonfigurasi tugas campuran atau pemicu tugas campuran, Anda harus menyiapkan sumber eksternal untuk mengirim data ke DLP API.

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

Membuat tugas hybrid atau pemicu tugas hybrid

Agar Perlindungan Data Sensitif dapat memeriksa data yang Anda kirimkan, Anda harus menyiapkan tugas hybrid atau pemicu tugas hybrid terlebih dahulu. Untuk mengetahui informasi tentang yang harus dibuat, lihat Skenario pemeriksaan campuran umum di halaman ini.

Konsol

Di konsol Google Cloud, buka halaman Create job or job trigger:

Buka Membuat tugas atau pemicu tugas

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

Pilih data input

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

  1. Opsional: Untuk Nama, beri nama tugas dengan memasukkan nilai di kolom ID Tugas. Jika kolom ini dibiarkan kosong, Sensitive Data Protection akan membuat ID secara otomatis.
  2. Opsional: Dari menu Resource location, pilih region tempat Anda ingin menyimpan tugas campuran atau pemicu tugas campuran. Untuk informasi selengkapnya, lihat Menentukan lokasi pemrosesan.
  3. Untuk Storage type, pilih Hybrid.

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

  5. Opsional: Untuk Label wajib, klik Tambahkan label, lalu masukkan label yang ingin Anda tetapkan sebagai wajib dari permintaan hybridInspect. Permintaan hybridInspect yang tidak menentukan label ini tidak diproses oleh tugas hibrida atau pemicu tugas hibrida ini. Anda dapat menambahkan hingga 10 label yang diperlukan. Untuk informasi selengkapnya, lihat Memerlukan label dari permintaan hybridInspect di halaman ini.

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

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

  8. Klik Lanjutkan.

Konfigurasikan deteksi

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

  • Template: Jika Anda telah membuat template di project saat ini yang ingin digunakan untuk menentukan parameter deteksi Perlindungan Data Sensitif, klik kolom Template name, lalu pilih template dari daftar yang muncul.
  • InfoTypes: Sensitive Data Protection memilih infoType bawaan yang paling umum untuk dideteksi. Untuk mengubah infoTypes, atau memilih infoType kustom yang akan digunakan, klik Kelola infoTypes. Anda juga dapat menyesuaikan kriteria deteksi di bagian Aturan pemeriksaan dan Batas kepercayaan. Untuk mengetahui detail selengkapnya, lihat Mengonfigurasi deteksi.

Setelah mengonfigurasi parameter deteksi, klik Lanjutkan.

Tambah tindakan

Di bagian ini, Anda menentukan tempat untuk menyimpan temuan dari setiap pemindaian inspeksi 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 infoTypes temuan.

  • Save to BigQuery: Setiap kali pemindaian berjalan, Perlindungan Data Sensitif akan 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: Saat tugas selesai, pesan Pub/Sub akan dikeluarkan.

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

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

Setelah memilih tindakan, klik Lanjutkan.

Jadwal

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

Lakukan salah satu hal berikut:

  • Untuk segera menjalankan tugas campuran, pilih None (jalankan langsung tugas satu kali saat dibuat).

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

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

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

Ulasan

Anda dapat meninjau ringkasan JSON pemindaian di sini. Pastikan untuk mencatat nama pemicu tugas campuran atau ob campuran; Anda memerlukan informasi ini saat mengirim data ke Sensitive Data Protection untuk diperiksa.

Setelah meninjau ringkasan JSON, klik Create.

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

API

Tugas direpresentasikan di DLP API oleh resource DlpJobs. Untuk membuat tugas campuran, Anda harus memanggil metode projects.locations.dlpJobs.create.

Pemicu tugas direpresentasikan di DLP API oleh resource JobTrigger. Untuk membuat pemicu tugas campuran, Anda harus memanggil 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. Di objek InspectJobConfig, di kolom actions, tambahkan tindakan apa pun (Action) yang ingin Anda lakukan oleh Perlindungan Data Sensitif di akhir setiap tugas.

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

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

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

    • Tetapkan kolom inspectConfig.

    Jika Anda menetapkan kolom inspectTemplateName dan inspectConfig, setelan kolom tersebut akan digabungkan.

Tentang contoh JSON

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

  • Memproses permintaan hybridInspect jika permintaan memiliki label appointment-bookings-comments.
  • Pindai konten dalam permintaan hybridInspect untuk 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 temuan ke baris tertentu tempat temuan berasal.
  • Kirim email saat tugas berhenti. Email akan dikirim ke pemilik project IAM dan Kontak Penting teknis.
  • Kirim temuan ke Cloud Monitoring saat tugas dihentikan.

Untuk melihat contoh JSON, lihat tab berikut.

Pekerjaan hybrid

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

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

Metode dan URL HTTP

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

Ganti kode berikut:

  • PROJECT_ID: ID project tempat Anda ingin menyimpan tugas campuran.
  • REGION: Region geografis tempat Anda ingin menyimpan tugas campuran.

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 campuran dan menghasilkan ID tugas. Dalam contoh ini, ID tugas adalah i-postgresql-table-comments. Catat ID tugas. Anda memerlukannya dalam permintaan hybridInspect.

Untuk menghentikan tugas campuran, Anda harus memanggil metode projects.locations.dlpJobs.finish secara eksplisit. DLP API tidak otomatis menghentikan tugas hibrida. Sebaliknya, DLP API otomatis menghentikan tugas dalam pemicu tugas hibrida pada akhir setiap hari.

Pemicu tugas hybrid

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

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

Metode dan URL HTTP

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 campuran.
  • REGION: Region geografis tempat Anda ingin menyimpan pemicu tugas campuran.

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"
}

Sensitive Data Protection membuat pemicu tugas hybrid. Output-nya berisi nama pemicu tugas campuran. Dalam contoh ini, nilainya adalah postgresql-table-comments. Catat namanya. Anda memerlukannya dalam permintaan hybridInspect.

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

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

Di kolom Request parameters, 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 API Explorer, akan membuat tugas hybrid atau pemicu tugas hybrid.

Untuk 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.

Pemformatan item konten campuran

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

  • item: berisi konten sebenarnya yang akan diperiksa.
  • findingDetails: berisi metadata untuk 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 informasi komprehensif tentang konten item pemeriksaan campuran, lihat konten referensi API untuk objek HybridContentItem.

Endpoint pemeriksaan hybrid

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

Metode dan URL HTTP untuk tugas campuran

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

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

Metode dan URL HTTP untuk pemicu tugas campuran

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

Untuk 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 campuran.
  • JOB_ID: ID yang Anda berikan ke tugas campuran, diawali dengan i-.

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

  • TRIGGER_NAME: nama yang Anda berikan ke pemicu tugas campuran.

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

Memerlukan label dari permintaan hybridInspect

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 yang diperlukan ini akan ditolak.

Untuk menetapkan label yang diperlukan, lakukan hal berikut:

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

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

    "hybridOptions": {
      ...
      "requiredFindingLabelKeys": [
        "appointment-bookings-comments"
      ],
      "labels": {
        "env": "prod"
      },
      ...
    }
    
  2. Dalam permintaan hybridInspect, di kolom labels, tambahkan setiap label yang diperlukan sebagai kunci dalam pasangan nilai kunci. Nilai yang sesuai dapat 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 tidak menyertakan label yang diperlukan 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 campuran 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 melakukan autentikasi ke 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 melakukan autentikasi ke 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 melakukan autentikasi ke 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 melakukan autentikasi ke 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 melakukan autentikasi ke 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 melakukan autentikasi ke 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 pemeriksaan campuran standar

Bagian berikut menjelaskan penggunaan umum untuk pemeriksaan campuran dan alur kerjanya yang sesuai.

Melakukan pemindaian satu kali

Menjalankan pemindaian satu kali pada database di luar Google Cloud sebagai bagian dari pemeriksaan spot kuartalan pada database.

  1. Buat tugas campuran menggunakan konsol Google Cloud atau DLP API.

  2. Kirim data ke tugas dengan memanggil projects.locations.dlpJobs.hybridInspect. Jika Anda ingin memeriksa lebih banyak data, ulangi langkah ini sebanyak mungkin sesuai kebutuhan.

  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.

Mengonfigurasi pemantauan berkelanjutan

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

  1. Buat pemicu tugas campuran menggunakan konsol Google Cloud 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 lebih banyak data, ulangi langkah ini sebanyak mungkin sesuai kebutuhan.

Dalam hal ini, Anda tidak perlu memanggil metode projects.locations.dlpJobs.finish. Perlindungan Data Sensitif otomatis mempartisi data yang Anda kirim. Selama pemicu tugas aktif, pada akhir setiap hari, Sensitive Data Protection akan melakukan tindakan yang Anda tentukan saat membuat pemicu tugas campuran.

Memindai data yang masuk ke database

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

  1. Buat pemicu tugas campuran menggunakan konsol Google Cloud 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 di 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 cara partisi data yang Anda kirim untuk diperiksa. Jika Anda 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 pemicu tugas lagi, 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 campuran menggunakan konsol Google Cloud 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 lebih banyak data, ulangi langkah ini sebanyak mungkin sesuai kebutuhan.

    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 otomatis mempartisi data yang Anda kirim. Selama pemicu tugas aktif, pada akhir setiap hari, Sensitive Data Protection akan melakukan tindakan yang Anda tentukan saat membuat pemicu tugas campuran.

Langkah selanjutnya