Menambahkan enkripsi CMEK ke secret regional

Halaman ini menjelaskan cara membuat secret baru dengan kunci enkripsi yang dikelola pelanggan (CMEK) dan memperbarui secret yang ada untuk menggunakan kunci CMEK.

Ringkasan

CMEK menambahkan lapisan keamanan dan kontrol tambahan terhadap data sensitif Anda yang disimpan sebagai secret regional. Anda dapat menggunakan CMEK untuk memenuhi sasaran berikut:

  • Memiliki kontrol penuh atas kunci enkripsi yang digunakan untuk melindungi secret Anda.
  • Gunakan sistem pengelolaan kunci Anda sendiri dengan kebijakan keamanan, kemampuan audit, dan fitur kepatuhan yang berpotensi lebih ketat.
  • Mematuhi peraturan kedaulatan data dengan menyimpan kunci dalam infrastruktur Anda sendiri.
  • Tentukan kontrol akses yang terperinci untuk kunci enkripsi Anda, yang menentukan siapa yang dapat menggunakannya dan untuk tujuan apa.

Batasan:

Penggunaan CMEK dengan secret regional memiliki batasan berikut:

Sebelum memulai

  1. Aktifkan Secret Manager API, satu kali per project.
  2. Tetapkan peran Admin Secret Manager (roles/secretmanager.admin) di project, folder, atau organisasi.
  3. Lakukan autentikasi ke Secret Manager API menggunakan salah satu cara berikut:

    • Jika Anda menggunakan library klien untuk mengakses Secret Manager API, siapkan Kredensial Default Aplikasi.
    • Jika Anda menggunakan Google Cloud CLI untuk mengakses Secret Manager API, gunakan kredensial Google Cloud CLI untuk melakukan autentikasi.
    • Untuk mengautentikasi panggilan REST, gunakan kredensial Google Cloud CLI atau Kredensial Default Aplikasi.
  4. Untuk mengaktifkan CMEK dan membuat kunci CMEK serta ring kunci yang Anda perlukan untuk langkah ini, lihat Mengaktifkan kunci enkripsi yang dikelola pelanggan untuk Secret Manager.

Membuat secret regional dengan enkripsi CMEK

Untuk membuat secret baru dengan enkripsi CMEK, gunakan salah satu metode berikut:

Konsol

  1. Buka halaman Secret Manager di konsol Google Cloud.

    Buka Secret Manager

  2. Di halaman Secret Manager, klik tab Regional secret, lalu klik Create regional secret.

  3. Di halaman Buat secret regional, masukkan nama untuk secret di kolom Nama. Nama secret dapat berisi huruf besar dan kecil, angka, tanda hubung, dan garis bawah. Panjang maksimum yang diizinkan untuk nama adalah 255 karakter.

  4. Masukkan nilai untuk secret (misalnya, abcd1234). Nilai secret dapat dalam format apa pun, tetapi tidak boleh lebih besar dari 64 KiB. Anda juga dapat mengupload file teks yang berisi nilai secret menggunakan opsi Upload file. Tindakan ini akan otomatis membuat versi secret.

  5. Pilih lokasi penyimpanan secret regional dari daftar Region.

  6. Di bagian Enkripsi, pilih Kunci enkripsi yang dikelola pelanggan (CMEK), lalu pilih kunci CMEK Anda dari daftar Kunci enkripsi. Pastikan kunci CMEK Anda ada di lokasi yang ditentukan dan project Secret Manager Anda memiliki izin yang diperlukan untuk menggunakan kunci tersebut.

  7. Klik Buat secret.

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
  • LOCATION: Lokasi Google Cloud tempat Anda ingin membuat secret
  • CMEK_KEY: jalur yang sepenuhnya memenuhi syarat ke kunci CMEK tertentu di Cloud Key Management Service yang akan melindungi secret

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud secrets create SECRET_ID --location=LOCATION \
    --regional-kms-key-name=CMEK_KEY

Windows (PowerShell)

gcloud secrets create SECRET_ID --location=LOCATION `
    --regional-kms-key-name=CMEK_KEY

Windows (cmd.exe)

gcloud secrets create SECRET_ID --location=LOCATION ^
    --regional-kms-key-name=CMEK_KEY

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Lokasi Google Cloud tempat Anda ingin membuat secret.
  • PROJECT_ID: project ID Google Cloud.
  • SECRET_ID: ID secret atau ID yang sepenuhnya memenuhi syarat untuk secret.
  • KMS_PROJECT_ID: ID project Google Cloud Anda yang menjalankan Cloud Key Management Service.
  • KMS_KEY_LOCATION: nama lokasi kunci Cloud KMS Anda. Lokasi ini harus sama dengan lokasi secret Anda.
  • YOUR_KEY_RING: nama key ring di Cloud KMS tempat Anda menyimpan kunci CMEK.
  • YOUR_CMEK_KEY: Kunci Enkripsi yang Dikelola Pelanggan (CMEK) tertentu yang telah Anda buat dalam key ring yang dipilih di Cloud KMS.

Metode HTTP dan URL:

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID

Isi JSON permintaan:

{"customer_managed_encryption": {"kms_key_name": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"}}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content

Anda akan melihat respons JSON seperti berikut:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-03-27T13:30:07.437859Z",
  "etag": "\"1614a467b60423\""
  "customerManagedEncryption": {
    "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/secret-manager-cmek/cryptoKeys/my-cmek-key"
  }
}

Memperbarui secret yang ada untuk menggunakan CMEK

Untuk memperbarui secret yang ada agar dapat menggunakan CMEK, gunakan salah satu metode berikut:

Konsol

  1. Buka halaman Secret Manager di konsol Google Cloud.

    Buka Secret Manager

  2. Di halaman Secret Manager, klik tab Regional secrets.

  3. Untuk mengedit secret, gunakan salah satu metode berikut:

    • Cari secret dalam daftar, lalu klik menu Actions yang terkait dengan secret tersebut. Di menu Tindakan, klik Edit.

    • Klik nama secret untuk membuka halaman detail secret. Di halaman detail secret, klik Edit secret.

  4. Di halaman Edit secret, buka bagian Encryption.

  5. Di bagian Encryption, pilih Customer-managed encryption key (CMEK), lalu pilih kunci CMEK Anda dari daftar Encryption key. Pastikan kunci CMEK Anda ada di lokasi yang ditentukan dan project Secret Manager Anda memiliki izin yang diperlukan untuk menggunakan kunci tersebut.

  6. Klik Perbarui secret.

gcloud

Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

  • SECRET_ID: ID secret atau ID yang memenuhi syarat sepenuhnya untuk secret
  • LOCATION: Lokasi secret Google Cloud
  • CMEK_KEY: jalur yang sepenuhnya memenuhi syarat ke kunci CMEK tertentu di Cloud Key Management Service yang akan melindungi secret

Jalankan perintah berikut:

Linux, macOS, atau Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
    --regional-kms-key-name=CMEK_KEY

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
    --regional-kms-key-name=CMEK_KEY

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
    --regional-kms-key-name=CMEK_KEY

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Lokasi secret Google Cloud.
  • PROJECT_ID: project ID Google Cloud.
  • SECRET_ID: ID secret atau ID yang sepenuhnya memenuhi syarat untuk secret.
  • KMS_PROJECT_ID: ID project Google Cloud Anda yang menjalankan Cloud Key Management Service.
  • KMS_KEY_LOCATION: lokasi kunci Cloud KMS Anda. Lokasi ini harus sama dengan lokasi secret Anda.
  • YOUR_KEY_RING: nama key ring di Cloud KMS tempat Anda menyimpan kunci CMEK.
  • YOUR_CMEK_KEY: Kunci Enkripsi yang Dikelola Pelanggan (CMEK) tertentu yang telah Anda buat dalam key ring yang dipilih di Cloud KMS.

Metode HTTP dan URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption

Isi JSON permintaan:

{"customer_managed_encryption": {"kms_key_name": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/YOUR_KEY_RING/cryptoKeys/YOUR_CMEK_KEY"}}"

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=customer_managed_encryption" | Select-Object -Expand Content

Anda akan melihat respons JSON yang mirip dengan berikut ini:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-03-27T13:30:07.437859Z",
  "etag": "\"16211daf5f29c5\""
  "customerManagedEncryption": {
    "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KMS_KEY_LOCATION/keyRings/secret-manager-cmek/cryptoKeys/my-cmek-key"
  }
}

Langkah selanjutnya