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. Gemini Code Assist tidak mendukung penggunaan kunci Cloud EKM.
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.
Secara default, Gemini untuk Google Cloud mengenkripsi konten pelanggan dalam penyimpanan. Gemini menangani enkripsi untuk Anda tanpa tindakan tambahan dari Anda. Opsi ini disebut enkripsi default Google.
Setelah Anda menyiapkan resource dengan CMEK, pengalaman mengakses resource Gemini Anda mirip dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi Anda, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).
Sebelum memulai
Di salah satu lingkungan pengembangan berikut, siapkan gcloud CLI :
Cloud Shell: untuk menggunakan terminal online dengan gcloud CLI yang sudah disiapkan, luncurkan Cloud Shell Editor.
Shell lokal: untuk menggunakan lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Di lingkungan shell, jalankan perintah
gcloud components update
untuk memastikan Anda telah mengupdate semua komponen gcloud yang diinstal ke versi terbaru. Untuk langkah ini, Anda dapat menginstal dan melakukan inisialisasi gcloud, atau Anda dapat 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:
Di project Google Cloud tempat Anda ingin mengelola kunci, lakukan hal berikut:
Buat key ring dan kunci menggunakan salah satu opsi berikut:
- Buat key ring dan kunci langsung di Cloud KMS.
- Gunakan kunci yang dikelola secara eksternal. Buat kunci eksternal, lalu buat kunci Cloud EKM untuk menyediakan kunci tersebut melalui Cloud KMS.
Berikan peran IAM Pengenkripsi/Pendekripsi CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) ke akun layanan Gemini Code Assist. Beri izin ini pada kunci yang Anda buat.Konsol
Buka Pengelolaan kunci.
Pilih kunci yang Anda buat.
Berikan akses ke akun layanan Gemini Code Assist:
- Klik Tambahkan akun utama.
- Tambahkan akun layanan Gemini Code Assist. Akun
layanan adalah
service-PROJECT_NUMBER@gcp-sa-cloudaicompanions.
, dengan PROJECT_NUMBER adalah nomor project dari project Google Cloud tempat Gemini Code Assist diaktifkan. - Di Pilih peran, pilih Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
- Klik Simpan.
Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat indeks repositori kode dengan CMEK.
Kembali ke halaman Key management dan pilih kunci lagi.
Pilih Tampilkan panel info. Anda akan melihat peran di kolom Peran/Anggota.
gcloud
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." \ --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.
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
Untuk membuat repositori baru yang memiliki perlindungan CMEK, lakukan salah satu hal berikut:
gcloud
Gunakan perintah gemini code-repository-indexes create
:
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.
API
Buat file JSON yang berisi informasi berikut:
{ "kmsKey": "projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME" }
Ganti kode berikut:
KEY_PROJECT_ID
: ID project utamaKEY_LOCATION
: lokasi kunciKEYRING_NAME
: nama key ringKEY_NAME
: adalah nama kunci
Gunakan perintah
cURL
untuk memanggil metodeprojects.locations.codeRepositoryIndexes.create
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT_ID/locations/KEY_LOCATION/codeRepositoryIndexes?codeRepositoryIndexId=CODE_REPOSITORY_INDEX_NAME"
Ganti kode berikut:
JSON_FILE_NAME
: jalur untuk file JSON yang Anda buat di langkah sebelumnya.PROJECT_ID
: ID project tempat repositori akan dibuat.KEY_LOCATION
: lokasi untuk membuat repositori, yang harus cocok dengan lokasi tempat CMEK berada.CODE_REPOSITORY_INDEX_NAME
: nama indeks repositori kode baru yang akan Anda buat. Misalnya,zg-btf-0001
.
Respons menampilkan sekumpulan entri log.
Menghapus akses ke repositori CMEK
Ada beberapa cara untuk menghapus akses ke repositori yang dienkripsi CMEK:
- Cabut peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS dari akun layanan Gemini Code Assist menggunakan Konsol API atau gcloud.
- Nonaktifkan CMEK untuk sementara.
- Hancurkan CMEK secara permanen.
Sebaiknya batalkan izin dari akun layanan Gemini Code Assist sebelum menonaktifkan atau menghapus kunci. Perubahan pada izin akan diterapkan dalam hitungan detik, sehingga Anda dapat mengamati dampak penonaktifan atau penghancuran kunci.