Halaman ini menjelaskan cara menggunakan Cloud Key Management Service (Cloud KMS) untuk membuat kunci terlapisi yang kemudian dapat Anda gunakan untuk mengirim permintaan deidentify dan reidentify ke Cloud Data Loss Prevention API Sensitive Data Protection.
Proses penggunaan kunci kriptografi untuk melakukan de-identifikasi dan mengidentifikasi ulang konten disebut pseudonimisasi (atau tokenisasi). Untuk mengetahui informasi konseptual tentang proses ini, lihat Pseudonimisasi.
Untuk contoh yang menunjukkan cara membuat kunci terenkapsulasi, membuat token konten, dan mengidentifikasi ulang konten yang diberi token, lihat Melakukan de-identifikasi dan mengidentifikasi ulang teks sensitif.
Anda dapat menyelesaikan langkah-langkah dalam dokumen ini dalam waktu 5 hingga 10 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.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Install the Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith 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_IDwith your Google Cloud project name.
-
Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Sensitive Data Protection and Cloud KMS APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable dlp.googleapis.com
cloudkms.googleapis.com -
Cloud KMS Admin (
roles/cloudkms.admin) -
Pengenkripsi CryptoKey Cloud KMS (
roles/cloudkms.cryptoKeyEncrypter) 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: projects/<var>PROJECT_ID</var>/locations/global/keyRings/dlp-keyring/cryptoKeys/dlp-key PURPOSE: ENCRYPT_DECRYPT ALGORITHM: GOOGLE_SYMMETRIC_ENCRYPTION PROTECTION_LEVEL: SOFTWARE LABELS: PRIMARY_ID: 1 PRIMARY_STATE: ENABLEDDalam output ini,
PROJECT_IDadalah ID project Anda.Nilai
NAMEadalah nama resource lengkap kunci Cloud KMS Anda. Catat nilai ini karena permintaan anonimisasi dan identifikasi ulang memerlukannya.Buat kunci AES 128, 192, atau 256 bit. Perintah berikut menggunakan
openssluntuk membuat kunci 256-bit di direktori saat ini:openssl rand -out "./aes_key.bin" 32File
aes_key.binditambahkan ke direktori Anda saat ini.Enkode kunci AES sebagai string base64:
base64 -i ./aes_key.binAnda akan mendapatkan output yang mirip dengan berikut ini:
uEDo6/yKx+zCg2cZ1DBwpwvzMVNk/c+jWs7OwpkMc/s=PROJECT_ID: ID project Anda.BASE64_ENCODED_AES_KEY: string berenkode base64 yang ditampilkan di Membuat kunci AES berenkode base64.Pelajari lebih lanjut cara melakukan tokenisasi data melalui kunci kriptografi.
Pelajari contoh yang menunjukkan cara membuat kunci yang dienkapsulasi, membuat token konten, dan mengidentifikasi ulang konten yang diberi token.
Pelajari lebih lanjut metode penghapusan identitas yang menggunakan kunci terenkapsulasi ini, dan lihat contoh kode.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna membuat kunci AES yang dienkapsulasi, minta administrator untuk memberi Anda peran IAM berikut pada project:
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat 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 Perlindungan Data Sensitif. 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.
Membuat kunci AES berenkode base64
Bagian ini menjelaskan cara membuat kunci Advanced Encryption Standard (AES) dan mengenkodekannya dalam format base64.
Gabungkan kunci AES menggunakan kunci Cloud KMS
Bagian ini menjelaskan cara menggunakan kunci Cloud KMS yang Anda buat di Membuat key ring dan kunci untuk mengenkapsulasi kunci AES berenkode base64 yang Anda buat di Membuat kunci AES berenkode base64.
Untuk menggabungkan kunci AES, gunakan curl untuk mengirim permintaan berikut ke metode
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:
Respons yang Anda dapatkan dari Cloud KMS mirip dengan JSON berikut:
{
"name": "projects/<var>PROJECT_ID</var>/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.
Itu adalah kunci gabungan Anda.