Melakukan de-identifikasi dan mengidentifikasi ulang data sensitif
Proses yang dijelaskan dalam panduan memulai ini disebut pseudonimisasi (atau tokenisasi). Dalam proses ini, Perlindungan Data Sensitif menggunakan kunci kriptografis untuk mengonversi (melakukan de-identifikasi) teks sensitif menjadi token. Untuk memulihkan (mengidentifikasi ulang) teks tersebut, Anda memerlukan kunci kriptografi yang Anda gunakan selama de-identifikasi dan token.
Perlindungan Data Sensitif mendukung metode kriptografi yang dapat dibalikkan dan tidak dapat dibalikkan. Untuk mengidentifikasi ulang konten, Anda harus memilih metode yang dapat dibalikkan.
Metode kriptografi yang dijelaskan di sini disebut enkripsi deterministik menggunakan AES-SIV (Advanced Encryption Standard dalam mode Synthetic Initialization Vector). Kami merekomendasikan metode ini di antara semua metode kriptografi yang dapat dibalik yang didukung oleh Perlindungan Data Sensitif, karena metode ini memberikan tingkat keamanan tertinggi.
Anda dapat menyelesaikan langkah-langkah dalam topik ini dalam waktu 10 hingga 20 menit, tidak termasuk langkah-langkah Sebelum Anda memulai.
Sebelum memulai
- 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.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/dlp.user
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
Langkah 1: Buat key ring dan kunci
Sebelum memulai prosedur ini, tentukan tempat Anda ingin Sensitive Data Protection memproses permintaan de-identifikasi dan re-identifikasi. Saat membuat kunci Cloud KMS, Anda harus menyimpannya di global
atau di region yang sama dengan yang akan Anda gunakan untuk permintaan Perlindungan Data Sensitif.
Jika tidak, permintaan Sensitive Data Protection akan gagal.
Anda dapat menemukan daftar lokasi yang didukung di
Lokasi Sensitive Data Protection. Catat nama region yang Anda pilih (misalnya, us-west1
).
Prosedur ini menggunakan global
sebagai lokasi untuk semua permintaan API. Jika Anda ingin
menggunakan region lain, ganti global
dengan nama region.
Buat key ring:
gcloud kms keyrings create "dlp-keyring" \ --location "global"
Buat kunci:
gcloud kms keys create "dlp-key" \ --location "global" \ --keyring "dlp-keyring" \ --purpose "encryption"
Mencantumkan key ring dan kunci Anda:
gcloud kms keys list \ --location "global" \ --keyring "dlp-keyring"
Anda akan mendapatkan output berikut:
NAME PURPOSE ALGORITHM PROTECTION_LEVEL LABELS PRIMARY_ID PRIMARY_STATE projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key ENCRYPT_DECRYPT GOOGLE_SYMMETRIC_ENCRYPTION SOFTWARE 1 ENABLED
Dalam output ini,
PROJECT_ID
adalah ID project Anda.Jalur di bawah
NAME
adalah nama resource lengkap kunci Cloud KMS Anda. Catat ID tersebut karena permintaan penghapusan identitas dan identifikasi ulang memerlukannya.
Langkah 2: Buat kunci AES berenkode base64
Bagian ini menjelaskan cara membuat kunci Advanced Encryption Standard (AES) dan mengenkodekannya dalam format base64.
Buat kunci AES 128, 192, atau 256 bit. Perintah berikut menggunakan
openssl
untuk membuat kunci 256-bit di direktori saat ini:openssl rand -out "./aes_key.bin" 32
File
aes_key.bin
ditambahkan ke direktori Anda saat ini.Enkode kunci AES sebagai string base64:
base64 -i ./aes_key.bin
Anda akan mendapatkan output yang mirip dengan berikut ini:
uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=
Langkah 3: Gabungkan kunci AES menggunakan kunci Cloud KMS
Bagian ini menjelaskan cara menggunakan kunci Cloud KMS yang Anda buat di Langkah 1 untuk menggabungkan kunci AES yang dienkode base64 yang Anda buat di Langkah 2.
Untuk menggabungkan kunci AES, gunakan curl
untuk mengirim permintaan berikut ke Cloud KMS API
projects.locations.keyRings.cryptoKeys.encrypt
:
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key:encrypt" \
--request "POST" \
--header "Authorization:Bearer $(gcloud auth application-default print-access-token)" \
--header "content-type: application/json" \
--data "{\"plaintext\": \"BASE64_ENCODED_AES_KEY\"}"
Ganti kode berikut:
PROJECT_ID
: ID project Anda.BASE64_ENCODED_AES_KEY
: string berenkode base64 yang ditampilkan di Langkah 2.
Respons yang Anda dapatkan dari Cloud KMS mirip dengan JSON berikut:
{ "name": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key/cryptoKeyVersions/1", "ciphertext": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=", "ciphertextCrc32c": "901327763", "protectionLevel": "SOFTWARE" }
Dalam output ini, PROJECT_ID
adalah ID project Anda.
Catat nilai ciphertext
dalam respons yang Anda dapatkan.
Itu adalah kunci gabungan Anda.
Langkah 4: Kirim permintaan de-identifikasi ke DLP API
Bagian ini menjelaskan cara menganonimkan data sensitif dalam konten teks.
Untuk menyelesaikan tugas ini, Anda memerlukan hal berikut:
- Nama resource lengkap kunci Cloud KMS yang Anda buat di Langkah 1.
- Kunci gabungan yang Anda buat di Langkah 3.
Di bagian ini, Anda harus menyimpan contoh permintaan dalam file JSON. Jika menggunakan Cloud Shell, Anda dapat menggunakan Editor Cloud Shell untuk membuat file. Untuk meluncurkan editor, klik
Open Editor di toolbar jendela Cloud Shell.Untuk menganonimkan data sensitif dalam konten teks, ikuti langkah-langkah berikut:
Buat file permintaan JSON dengan teks berikut.
{ "item": { "value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com." }, "deidentifyConfig": { "infoTypeTransformations": { "transformations": [ { "infoTypes": [ { "name": "EMAIL_ADDRESS" } ], "primitiveTransformation": { "cryptoDeterministicConfig": { "cryptoKey": { "kmsWrapped": { "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key", "wrappedKey": "WRAPPED_KEY" } }, "surrogateInfoType": { "name": "EMAIL_ADDRESS_TOKEN" } } } } ] } }, "inspectConfig": { "infoTypes": [ { "name": "EMAIL_ADDRESS" } ] } }
Ganti kode berikut:
PROJECT_ID
: ID project Anda.WRAPPED_KEY
: kunci gabungan yang Anda buat di Langkah 3.
Pastikan nilai
cryptoKeyName
yang dihasilkan membentuk nama resource lengkap kunci Cloud KMS Anda.Untuk mengetahui informasi selengkapnya tentang komponen permintaan JSON ini, lihat
projects.locations.content.deidentify
. Setelah menyelesaikan panduan memulai ini, coba bereksperimen dengan berbagai input untuk permintaan ini. Anda dapat menggunakancurl
seperti yang dijelaskan di sini. Atau, Anda dapat menggunakan API Explorer di halaman referensi API tersebut di bagian Coba API ini.Simpan file sebagai
deidentify-request.json
.Gunakan
curl
untuk membuat permintaanprojects.locations.content.deidentify
:curl -s \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/global/content:deidentify \ -d @deidentify-request.json
Ganti
PROJECT_ID
dengan ID project Anda.Untuk meneruskan nama file ke
curl
, Anda menggunakan opsi-d
(untuk data) dan mengawali nama file dengan tanda@
. File ini harus berada di direktori yang sama dengan tempat Anda menjalankan perintahcurl
.Respons yang Anda dapatkan dari Sensitive Data Protection mirip dengan JSON berikut:
{ "item": { "value": "My name is Alicia Abernathy, and my email address is EMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q." }, "overview": { "transformedBytes": "22", "transformationSummaries": [ { "infoType": { "name": "EMAIL_ADDRESS" }, "transformation": { "cryptoDeterministicConfig": { "cryptoKey": { "kmsWrapped": { "wrappedKey": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=", "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key" } }, "surrogateInfoType": { "name": "EMAIL_ADDRESS_TOKEN" } } }, "results": [ { "count": "1", "code": "SUCCESS" } ], "transformedBytes": "22" } ] } }
Di kolom
item
, alamat email diganti dengan token sepertiEMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q
. Untuk mengidentifikasi ulang konten ini, Anda harus meneruskan seluruh token dalam permintaan identifikasi ulang.
Langkah 5: Kirim permintaan identifikasi ulang ke DLP API
Bagian ini menjelaskan cara mengidentifikasi ulang data yang di-tokenisasi dalam konten teks.
Untuk menyelesaikan tugas ini, Anda memerlukan hal berikut:
- Nama resource lengkap kunci Cloud KMS yang Anda buat di Langkah 1.
- Kunci gabungan yang Anda buat di Langkah 3.
- Token yang Anda terima di Langkah 4.
Untuk mengidentifikasi ulang konten yang di-token, ikuti langkah-langkah berikut:
Buat file permintaan JSON dengan teks berikut.
{ "reidentifyConfig":{ "infoTypeTransformations":{ "transformations":[ { "infoTypes":[ { "name":"EMAIL_ADDRESS_TOKEN" } ], "primitiveTransformation":{ "cryptoDeterministicConfig":{ "cryptoKey":{ "kmsWrapped": { "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key", "wrappedKey": "WRAPPED_KEY" } }, "surrogateInfoType":{ "name":"EMAIL_ADDRESS_TOKEN" } } } } ] } }, "inspectConfig":{ "customInfoTypes":[ { "infoType":{ "name":"EMAIL_ADDRESS_TOKEN" }, "surrogateType":{ } } ] }, "item":{ "value": "My name is Alicia Abernathy, and my email address is TOKEN." } }
Ganti kode berikut:
PROJECT_ID
: ID project Anda.WRAPPED_KEY
: kunci gabungan yang Anda buat di Langkah 3.TOKEN
: token yang Anda terima di Langkah 4—misalnya,EMAIL_ADDRESS_TOKEN(52):AVAx2eIEnIQP5jbNEr2j9wLOAd5m4kpSBR/0jjjGdAOmryzZbE/q
.
Pastikan nilai
cryptoKeyName
yang dihasilkan membentuk nama resource lengkap kunci Cloud KMS Anda.Untuk mengetahui informasi selengkapnya tentang komponen permintaan JSON ini, lihat
projects.locations.content.reidentify
. Setelah menyelesaikan panduan memulai ini, coba bereksperimen dengan berbagai input untuk permintaan ini. Anda dapat menggunakancurl
seperti yang dijelaskan di sini. Atau, Anda dapat menggunakan API Explorer di halaman referensi API tersebut di bagian Coba API ini.Simpan file sebagai
reidentify-request.json
.Gunakan
curl
untuk membuat permintaanprojects.locations.content.reidentify
:curl -s \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/global/content:reidentify \ -d @reidentify-request.json
Ganti
PROJECT_ID
dengan ID project Anda.Untuk meneruskan nama file ke
curl
, Anda menggunakan opsi-d
(untuk data) dan mengawali nama file dengan tanda@
. File ini harus berada di direktori yang sama dengan tempat Anda menjalankan perintahcurl
.Respons yang Anda dapatkan dari Sensitive Data Protection mirip dengan JSON berikut:
{ "item": { "value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com." }, "overview": { "transformedBytes": "70", "transformationSummaries": [ { "infoType": { "name": "EMAIL_ADDRESS" }, "transformation": { "cryptoDeterministicConfig": { "cryptoKey": { "kmsWrapped": { "wrappedKey": "CiQAYuuIGo5DVaqdE0YLioWxEhC8LbTmq7Uy2G3qOJlZB7WXBw0SSQAjdwP8ZusZJ3Kr8GD9W0vaFPMDksmHEo6nTDaW/j5sSYpHa1ym2JHk+lUgkC3Zw5bXhfCNOkpXUdHGZKou1893O8BDby/82HY=", "cryptoKeyName": "projects/PROJECT_ID/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key" } }, "surrogateInfoType": { "name": "EMAIL_ADDRESS_TOKEN" } } }, "results": [ { "count": "1", "code": "SUCCESS" } ], "transformedBytes": "70" } ] } }
Di kolom
item
, token alamat email diganti dengan alamat email sebenarnya dari teks asli.Anda baru saja melakukan de-identifikasi dan identifikasi ulang data sensitif dalam konten teks menggunakan enkripsi deterministik.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan di halaman ini, hapus project Google Cloud yang berisi resource tersebut.
Menghancurkan versi kunci Anda
Jika Anda tidak ingin lagi menggunakan kunci yang dibuat dalam panduan memulai ini, hancurkan versinya.
Mencantumkan versi yang tersedia untuk kunci Anda:
gcloud kms keys versions list \
--location "global" \
--keyring "dlp-keyring" \
--key "dlp-key"
Untuk menghancurkan versi, jalankan perintah berikut:
gcloud kms keys versions destroy KEY_VERSION \
--location "global" \
--keyring "dlp-keyring" \
--key "dlp-key"
Ganti KEY_VERSION
dengan nomor versi yang akan
dihapus.
Menghapus project
Jika Anda membuat project baru untuk panduan memulai ini, cara termudah untuk mencegah biaya tambahan adalah dengan menghapus project tersebut.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Mencabut kredensial Anda
Optional: Revoke credentials from the gcloud CLI.
gcloud auth revoke
Langkah berikutnya
- Untuk mengetahui informasi lebih mendalam tentang cara melakukan de-identifikasi konten sensitif, lihat Melakukan de-identifikasi data sensitif.
- Untuk mengetahui informasi tentang cara alur kerja de-identifikasi sesuai dengan penerapan di dunia nyata, lihat De-identifikasi dan identifikasi ulang PII dalam set data berskala besar menggunakan Sensitive Data Protection.
- Untuk informasi konseptual tentang tokenisasi data melalui kunci kriptografi, lihat Pseudonimisasi.