Membuat kunci gabungan

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 end-to-end yang menunjukkan cara membuat kunci terbungkus, membuat token konten, dan mengidentifikasi ulang konten yang diberi token, lihat Panduan memulai: Menghapus identifikasi dan mengidentifikasi ulang teks sensitif.

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

Sebelum memulai

  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. Install the Google Cloud CLI.

  3. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. 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.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Sensitive Data Protection and Cloud KMS APIs:

    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

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  9. Install the Google Cloud CLI.

  10. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  11. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  12. 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.

  13. Verify that billing is enabled for your Google Cloud project.

  14. Enable the Sensitive Data Protection and Cloud KMS APIs:

    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

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  16. 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.

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

    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 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:

    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 berikutnya