Mengenkripsi data dengan kunci enkripsi yang dikelola pelanggan

Dokumen ini menunjukkan cara menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) untuk mengenkripsi dan mengontrol data dalam penyimpanan di layanan cloud melalui Cloud Key Management Service. CMEK terintegrasi dengan penyesuaian kode untuk Gemini Code Assist.

Jika Anda tidak menggunakan CMEK, Google akan otomatis mengelola kunci yang mengenkripsi data secara default. Perilaku ini dikenal sebagai enkripsi default Google. Dengan perilaku default ini, Anda tidak memiliki kontrol atas kunci enkripsi.

Dalam dokumen ini, Anda akan melakukan hal berikut:

  • Pelajari cara membuat CMEK.
  • Berikan izin ke akun layanan Gemini Code Assist.
  • Buat indeks repositori kode dengan CMEK.
  • Menghapus akses ke repositori CMEK.

Sebelum memulai

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  2. Di lingkungan shell, jalankan perintah gcloud components update untuk memastikan Anda telah mengupdate semua komponen yang diinstal dari gcloud CLI ke versi terbaru. Untuk langkah ini, Anda dapat menginstal dan melakukan inisialisasi gcloud CLI, atau menggunakan Cloud Shell.

    gcloud components update
    

Membuat CMEK dan memberikan izin

Untuk membuat CMEK dan memberikan izin akun layanan Gemini Code Assist pada kunci, lakukan tugas berikut:

  1. Di project Google Cloud tempat Anda ingin mengelola kunci, lakukan hal berikut:

    1. Aktifkan Cloud Key Management Service API.

    2. Buat key ring dan kunci menggunakan salah satu opsi berikut:

  2. Berikan peran IAM CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) ke akun layanan Gemini Code Assist. Berikan izin ini pada kunci yang Anda buat.

    Konsol

    1. Buka Key management.

      Buka Key management

    2. Pilih kunci yang Anda buat.

    3. Berikan akses ke akun layanan Gemini Code Assist:

      1. Klik Tambahkan akun utama.
      2. Tambahkan akun layanan Gemini Code Assist. Akun layanannya adalah service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com, dengan PROJECT_NUMBER adalah nomor project project Google Cloud tempat Gemini Code Assist diaktifkan.
      3. Di Select a role, pilih Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
      4. Klik Simpan.
    4. Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat indeks repositori kode dengan CMEK.

    5. Kembali ke halaman Pengelolaan kunci dan pilih kunci lagi.

    6. Pilih Tampilkan panel info. Anda akan melihat peran di kolom Peran/Anggota.

    gcloud

    1. Untuk memberikan akses ke akun layanan Gemini Code Assist, di lingkungan shell, gunakan perintah kms keys add-iam-policy-binding:

      gcloud kms keys add-iam-policy-binding KEY_NAME \
          --project=PROJECT_ID \
          --location=LOCATION \
          --keyring=KEYRING_NAME \
          --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com" \
          --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"
      

      Ganti kode berikut:

      • KEY_NAME: nama kunci.
      • PROJECT_ID: ID project yang berisi kunci.
      • LOCATION: lokasi kunci.
      • KEYRING_NAME: nama key ring.
      • PROJECT_NUMBER: nomor project project Google Cloud dengan Gemini Code Assist diaktifkan.
    2. Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat indeks repositori kode dengan CMEK.

    Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat dokumentasi gcloud kms keys add-iam-policy-binding.

Sekarang Anda dapat membuat indeks repositori kode dengan CMEK menggunakan API, dan menentukan kunci yang akan digunakan untuk enkripsi.

Membuat indeks repositori kode dengan CMEK

Di gcloud CLI, buat repositori baru di layanan yang memiliki perlindungan dari CMEK:

gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
    --location=LOCATION \
    --kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"

Ganti kode berikut:

  • CODE_REPOSITORY_INDEX_NAME: nama indeks repositori kode baru yang akan Anda buat.
  • LOCATION: lokasi kunci.
  • KEY_PROJECT_ID: project ID kunci.
  • KEYRING_NAME: nama key ring.
  • KEY_NAME: nama kunci.

Menghapus akses ke repositori CMEK

Ada beberapa cara untuk menghapus akses ke repositori yang dienkripsi CMEK:

Sebaiknya cabut izin dari akun layanan Gemini Code Assist sebelum menonaktifkan atau menghancurkan kunci. Perubahan pada izin konsisten dalam hitungan detik, sehingga Anda dapat mengamati dampak penonaktifan atau penghancuran kunci.