Membuat kunci gabungan

Halaman ini menjelaskan cara menggunakan Cloud Key Management Service (Cloud KMS) untuk membuat kunci gabungan yang kemudian dapat Anda gunakan untuk mengirim permintaan deidentify dan reidentify ke Cloud Data Loss Prevention API Perlindungan Data Sensitif.

Proses penggunaan kunci kriptografis untuk melakukan de-identifikasi dan mengidentifikasi ulang konten disebut pseudonimisasi (atau tokenisasi). Untuk informasi konseptual tentang proses ini, lihat Pseudonimisasi.

Untuk contoh menyeluruh yang menunjukkan cara membuat kunci gabungan, membuat token konten, dan mengidentifikasi ulang konten dengan token, lihat Panduan Memulai: Melakukan de-identifikasi dan mengidentifikasi ulang teks sensitif.

Anda dapat menyelesaikan langkah-langkah dalam topik ini dalam waktu 5 hingga 10 menit, tidak termasuk langkah Sebelum memulai.

Sebelum memulai

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Install the Google Cloud CLI.
  3. Configure the gcloud CLI to use your federated identity.

    For more information, see Browser-based sign-in with the gcloud CLI.

  4. To initialize the gcloud CLI, run the following command:

    gcloud init
  5. Buat atau pilih project Google Cloud.

    • Membuat project Google Cloud:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk project Google Cloud yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

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

  7. Aktifkan API Sensitive Data Protection and Cloud KMS:

    gcloud services enable dlp.googleapis.com cloudkms.googleapis.com
  8. 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
  9. Install the Google Cloud CLI.
  10. Configure the gcloud CLI to use your federated identity.

    For more information, see Browser-based sign-in with the gcloud CLI.

  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Buat atau pilih project Google Cloud.

    • Membuat project Google Cloud:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk project Google Cloud yang Anda buat.

    • Pilih project Google Cloud yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama project Google Cloud Anda.

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

  14. Aktifkan API Sensitive Data Protection and Cloud KMS:

    gcloud services enable dlp.googleapis.com cloudkms.googleapis.com
  15. 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

Langkah 1: Buat key ring dan kunci

Sebelum memulai prosedur ini, tentukan tempat Anda ingin Perlindungan Data Sensitif memproses permintaan de-identifikasi dan identifikasi ulang. 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 Perlindungan Data Sensitif 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 yang berbeda, ganti global dengan nama wilayah.

  1. Buat key ring:

    gcloud kms keyrings create "dlp-keyring" \
        --location "global"
    
  2. Buat kunci:

    gcloud kms keys create "dlp-key" \
        --location "global" \
        --keyring "dlp-keyring" \
        --purpose "encryption"
    
  3. Cantumkan 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 pada NAME adalah nama resource lengkap kunci Cloud KMS Anda. Perhatikan hal ini karena permintaan de-identifikasi dan mengidentifikasi ulang memerlukannya.

Langkah 2: Buat kunci AES berenkode base64

Bagian ini menjelaskan cara membuat kunci Advanced Encryption Standard (AES) dan mengenkodenya dalam format base64.

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

  2. 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 berenkode base64 yang Anda buat di Langkah 2.

Untuk menggabungkan kunci AES, gunakan curl untuk mengirim permintaan berikut ke projects.locations.keyRings.cryptoKeys.encrypt Cloud KMS API:

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/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 selanjutnya