Kunci enkripsi yang dikelola pelanggan (Customer-Managed Encryption Key/CMEK)

Secara default, Vertex AI mengenkripsi konten pelanggan dalam penyimpanan. Vertex AI menangani enkripsi untuk Anda tanpa tindakan tambahan dari Anda. Opsi ini disebut enkripsi default Google.

Jika ingin mengontrol kunci enkripsi, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud KMS dengan layanan terintegrasi CMEK, termasuk Vertex AI. Dengan menggunakan kunci Cloud KMS, Anda dapat mengontrol tingkat perlindungan, lokasi, jadwal rotasi, izin penggunaan dan akses, serta batas kriptografisnya. Dengan Cloud KMS, Anda juga dapat melacak penggunaan kunci, melihat log audit, dan mengontrol siklus proses kunci. Alih-alih Google yang memiliki dan mengelola kunci enkripsi kunci (KEK) simetris yang melindungi data Anda, Andalah yang mengontrol dan mengelola kunci ini di Cloud KMS.

Setelah Anda menyiapkan resource dengan CMEK, pengalaman mengakses resource Vertex AI akan mirip dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi Anda, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

Panduan ini menjelaskan beberapa manfaat penggunaan CMEK untuk resource Vertex AI dan cara mengonfigurasi tugas pelatihan untuk menggunakan CMEK.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan CMEK untuk Colab Enterprise, lihat halaman CMEK Colab Enterprise. Untuk informasi selengkapnya tentang cara menggunakan CMEK untuk instance Vertex AI Workbench, lihat halaman CMEK instance Vertex AI Workbench.

CMEK untuk resource Vertex AI

Bagian berikut menjelaskan informasi dasar tentang CMEK untuk resource Vertex AI yang harus Anda pahami sebelum mengonfigurasi CMEK untuk tugas Anda.

Manfaat CMEK

Secara umum, CMEK paling berguna jika Anda memerlukan kontrol penuh atas kunci yang digunakan untuk mengenkripsi data Anda. Dengan CMEK, Anda dapat mengelola kunci dalam Cloud KMS. Misalnya, Anda dapat merotasi atau menonaktifkan kunci, atau bisa juga menyiapkan jadwal rotasi menggunakan Cloud KMS API. Untuk mengetahui informasi selengkapnya tentang CMEK secara umum, termasuk waktu dan alasan mengaktifkannya, lihat Dokumentasi Cloud KMS.

Saat Anda menjalankan AutoML atau pelatihan kustom, kode Anda berjalan pada satu atau beberapa instance virtual machine (VM) yang dikelola oleh Vertex AI. Saat Anda mengaktifkan CMEK untuk resource Vertex AI, kunci yang Anda tetapkan, bukan kunci yang dikelola oleh Google, digunakan untuk mengenkripsi data pada boot disk VM tersebut. Kunci CMEK mengenkripsi jenis data berikut:

  • Salinan kode Anda di VM.
  • Data apa pun yang dimuat oleh kode Anda.
  • Setiap data sementara yang disimpan ke disk lokal oleh kode Anda.
  • Model yang dilatih automl.
  • File media (data) yang diupload ke set data media.

Secara umum, kunci CMEK tidak mengenkripsi metadata yang terkait dengan operasi Anda, seperti nama dan region tugas, atau nama tampilan set data. Metadata yang terkait dengan operasi selalu dienkripsi menggunakan mekanisme enkripsi default milik Google.

Untuk set data, saat pengguna mengimpor data ke set data, item data dan anotasi dienkripsi dengan CMEK. Nama tampilan set data tidak dienkripsi dengan CMEK.

Untuk model, model yang disimpan dalam sistem penyimpanan (misalnya, disk) dienkripsi dengan CMEK. Semua hasil evaluasi model dienkripsi dengan CMEK.

Untuk endpoint, semua file model yang digunakan untuk deployment model pada endpoint dienkripsi dengan CMEK. Jumlah ini tidak mencakup data dalam memori.

Untuk prediksi batch, setiap file sementara (seperti file model, log, disk VM) yang digunakan untuk menjalankan tugas prediksi batch dienkripsi dengan CMEK. Hasil prediksi batch disimpan di tujuan yang disediakan oleh pengguna. Akibatnya, Vertex AI akan mengikuti nilai default dari konfigurasi enkripsi tujuan. Jika tidak, hasil juga akan dienkripsi dengan CMEK.

Untuk pelabelan data, semua file input (gambar, teks, video, tabel), diskusi sementara (misalnya, pertanyaan, masukan), dan output (hasil pelabelan) dienkripsi dengan CMEK. Nama tampilan spesifikasi anotasi tidak dienkripsi dengan CMEK.

Kunci eksternal

Anda dapat menggunakan Cloud External Key Manager (Cloud EKM) untuk membuat kunci eksternal yang Anda kelola guna mengenkripsi data dalam Google Cloud.

Saat Anda menggunakan kunci Cloud EKM, Google tidak memiliki kontrol atas ketersediaan kunci yang dikelola secara eksternal. Jika Anda meminta akses ke resource yang dienkripsi menggunakan kunci yang dikelola secara eksternal dan kunci tersebut tidak tersedia, Vertex AI akan menolak permintaan tersebut. Mungkin ada penundaan hingga 10 menit sebelum Anda dapat mengakses resource setelah kunci tersedia.

Untuk pertimbangan lainnya saat menggunakan kunci eksternal, lihat Cloud External Key Manager.

Menggunakan CMEK dengan produk Google Cloud lainnya

Mengonfigurasi CMEK untuk resource Vertex AI tidak otomatis mengonfigurasi CMEK untuk produk Google Cloud lain yang Anda gunakan bersama dengan Vertex AI. Agar dapat menggunakan CMEK untuk mengenkripsi data di produk Google Cloud lainnya, konfigurasi tambahan diperlukan. Contoh:

Resource yang didukung CMEK saat ini

Resource Vertex AI saat ini yang dicakup oleh CMEK adalah sebagai berikut. Dukungan CMEK untuk fitur Pratinjau juga sedang dalam status Pratinjau.

Resource Material dienkripsi Link dokumentasi
Set data
  • Semua data yang diimpor pengguna (misalnya, konten teks atau video) untuk DataItems dan Annotations.
  • Konten buatan pengguna seperti AnnotationSpecs, ColumnSpecs.
Model
  • File model yang diupload.
  • Hasil evaluasi dari model yang dilatih.
Endpoint
  • Semua file model yang digunakan untuk deployment model di bagian endpoint. Tindakan ini tidak mencakup data dalam memori, tetapi deployment mode akan otomatis dibatalkan jika kunci dinonaktifkan.
CustomJob
  • Salinan kode Anda di VM yang digunakan untuk menjalankan operasi.
  • Data apa pun yang dimuat oleh kode Anda.
  • Setiap data sementara yang disimpan ke disk lokal oleh kode Anda.
HyperparameterTuningJob
  • Salinan kode Anda di VM yang digunakan untuk menjalankan operasi.
  • Data apa pun yang dimuat oleh kode Anda.
  • Setiap data sementara yang disimpan ke disk lokal oleh kode Anda.
TrainingPipeline
  • Salinan kode Anda di VM yang digunakan untuk menjalankan operasi.
  • Data apa pun yang dimuat oleh kode Anda.
  • Setiap data sementara yang disimpan ke disk lokal oleh kode Anda.
  • Model yang dilatih AutoML.
BatchPredictionJob (tidak mencakup AutoML image batchPrediction)
  • Semua file sementara (misalnya, file model, log, disk VM) yang digunakan dalam tugas untuk memproses tugas prediksi batch.
  • Jika hasil tertulis BatchPrediction disimpan di tujuan yang disediakan oleh pengguna, hasil tersebut akan mengikuti konfigurasi enkripsi nilai defaultnya. JIka tidak, hasil tersebut juga akan dienkripsi dengan CMEK.
ModelDeploymentMonitoringJob
  • Semua file sementara (misalnya, file set data pelatihan, log, disk VM) yang digunakan dalam tugas untuk memproses tugas pemantauan deployment model.
  • Semua data yang digunakan untuk mendeteksi anomali pemantauan.
  • Jika kunci dinonaktifkan, tugas pemantauan deployment model akan dijeda.
PipelineJob
  • Tugas pipeline dan semua sub-resource-nya.
MetadataStore
  • Semua konten di penyimpanan metadata.
TensorBoard
  • Semua data dari log TensorBoard yang diupload termasuk skalar, histogram, definisi grafik, gambar, dan teks.
Featurestore
  • Featurestore dan semua konten di featurestore.
Indeks
  • Semua file data yang digunakan untuk indeks Penelusuran Vektor yang disimpan di Cloud Storage, Pub/Sub, dan penyimpanan internal. Indeks dan IndexEndpoint harus dibuat dengan kunci yang sama.
IndexEndpoint
  • Semua file data yang digunakan untuk indeks Penelusuran Vektor yang disimpan di Cloud Storage, Pub/Sub, dan penyimpanan internal. Indeks dan IndexEndpoint harus dibuat dengan kunci yang sama.
Runtime Colab Enterprise
  • Disk booting dan disk data VM runtime

Dukungan CMEK untuk pipeline penyesuaian AI Generatif

Dukungan CMEK disediakan dalam pipeline penyesuaian model berikut:

  • text-bison for PaLM 2 (GPU)
  • BERT
  • T5
  • image-generation (GPU)

Batasan

Dukungan CMEK tidak tersedia dalam hal berikut:

  • Prediksi batch model gambar AutoML (BatchPredictionJob)
  • Penyesuaian TPU

Mengonfigurasi CMEK untuk resource Anda

Bagian berikut menjelaskan cara membuat key ring dan kunci di Cloud Key Management Service, memberikan izin bagi pengenkripsi dan pendekripsi Vertex AI untuk kunci Anda, serta membuat resource yang menggunakan CMEK.

Sebelum memulai

Panduan ini mengasumsikan bahwa Anda menggunakan dua project Google Cloud yang terpisah guna mengonfigurasi CMEK untuk data Vertex AI:

  • Project untuk mengelola kunci enkripsi Anda (disebut sebagai "project Cloud KMS").
  • Project untuk mengakses data atau output Vertex AI di Cloud Storage, serta berinteraksi dengan produk Google Cloud lain yang Anda perlukan untuk kasus penggunaan Anda (disebut sebagai "project AI Platform").

Penyiapan yang direkomendasikan ini mendukung pemisahan tugas.

Atau, Anda dapat menggunakan satu project Google Cloud untuk seluruh panduan. Untuk melakukannya, gunakan project yang sama untuk semua tugas berikut yang merujuk ke project Cloud KMS dan tugas yang merujuk ke project AI Platform.

Menyiapkan project Cloud KMS

  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. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

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

  4. Aktifkan API Cloud KMS.

    Mengaktifkan API

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

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

  7. Aktifkan API Cloud KMS.

    Mengaktifkan API

Menyiapkan project AI Platform

  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. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

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

  4. Aktifkan Vertex AI API.

    Mengaktifkan API

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

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

  7. Aktifkan Vertex AI API.

    Mengaktifkan API

Menyiapkan Google Cloud CLI

gcloud CLI diperlukan untuk beberapa langkah dalam panduan ini, dan bersifat opsional untuk langkah lainnya.

Install the Google Cloud CLI, then initialize it by running the following command:

gcloud init

Membuat key ring dan kunci

Ikuti Panduan Cloud KMS untuk membuat kunci simetris untuk membuat key ring dan kunci. Saat Anda membuat key ring, tentukan region yang mendukung operasi Vertex AI sebagai lokasi key ring. Vertex AI Training hanya mendukung CMEK jika resource dan kunci Anda menggunakan region yang sama. Anda tidak boleh menentukan lokasi region ganda, multi-region, atau global untuk key ring Anda.

Pastikan untuk membuat key ring dan kunci di project Cloud KMS Anda.

Memberikan Vertex AI izin

Agar dapat menggunakan CMEK untuk resource, Anda harus memberikan izin kepada Vertex AI untuk mengenkripsi dan mendekripsi data menggunakan kunci Anda. Vertex AI menggunakan agen layanan yang dikelola Google untuk menjalankan operasi menggunakan resource Anda. Akun layanan ini diidentifikasi oleh alamat email dengan format berikut:

service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

Untuk menemukan akun layanan yang sesuai dengan project AI Platform Anda, buka halaman IAM di Konsol Google Cloud dan temukan anggota yang cocok dengan format alamat email ini, dengan nomor project untuk project AI Platform Anda yang menggantikan variabel AI_PLATFORM_PROJECT_NUMBER. Akun layanan juga memiliki nama Vertex AI Service Agent.

Buka halaman IAM

Catat alamat email untuk akun layanan ini, dan gunakan dalam langkah-langkah berikut guna memberi akan layanan tersebut izin untuk mengenkripsi dan mendekripsi data menggunakan kunci Anda. Anda dapat memberikan izin menggunakan Konsol Google Cloud atau Google Cloud CLI:

Konsol Google Cloud

  1. Di Konsol Google Cloud, Click Security, lalu pilih Key Management. Anda akan diarahkan ke halaman Cryptographic Keys dan pilih project Cloud KMS Anda.

    Buka halaman Cryptographic Keys

  2. Klik nama key ring yang Anda buat di bagian sebelumnya dalam panduan ini untuk membuka halaman Key ring details.

  3. Centang kotak untuk kunci yang Anda buat di bagian sebelumnya dalam panduan ini. Jika panel info yang berlabel nama kunci Anda belum terbuka, klik Show info panel.

  4. Di panel info, klik Add member untuk membuka dialog Add members to "KEY_NAME". Dalam dialog ini, lakukan hal berikut:

    1. Di kotak New members, masukkan alamat email akun layanan yang Anda catat di bagian sebelumnya: service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
    2. Di menu drop-down Select a role, klik Cloud KMS, lalu pilih peran Cloud KMS Encrypter/Decrypter.

    3. Klik Save.

gcloud

Jalankan perintah berikut:

gcloud kms keys add-iam-policy-binding KEY_NAME \
  --keyring=KEY_RING_NAME \
  --location=REGION \
  --project=KMS_PROJECT_ID \
  --member=serviceAccount:service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com \
  --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Dalam perintah ini, ganti placeholder berikut:

  • KEY_NAME: Nama kunci yang Anda buat di bagian sebelumnya dalam panduan ini.
  • KEY_RING_NAME: Key ring yang Anda buat di bagian sebelumnya dalam panduan ini.
  • REGION: Region tempat Anda membuat key ring.
  • KMS_PROJECT_ID: ID project Cloud KMS Anda.
  • AI_PLATFORM_PROJECT_NUMBER: Nomor project AI Platform Anda, yang telah Anda catat di bagian sebelumnya sebagai bagian dari alamat email akun layanan.

Membuat resource dengan kunci KMS

Saat membuat resource yang didukung CMEK baru, Anda dapat menentukan kunci sebagai salah satu parameter pembuatan.

Konsol

Saat membuat resource baru yang didukung CMEK di bagian Vertex AI pada Konsol Google Cloud, Anda dapat memilih kunci di bagian opsi umum atau lanjutan:

Pilih kunci enkripsi untuk bagian resource

REST & CMD Line

Saat membuat resource yang didukung, tambahkan objek encryptionSpec ke permintaan Anda dan tetapkan kolom encryptionSpec.kmsKeyName untuk mengarah ke kunci resource Anda.

Misalnya, saat membuat resource dataset, Anda harus menentukan kunci dalam isi permintaan:

 {
   "displayName": DATASET_NAME,
   "metadataSchemaUri": METADATA_URI,
   "encryptionSpec": {
     "kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
   }
 }

Java

Saat membuat resource yang didukung, tetapkan EncryptionSpec agar mengarah ke resource kunci Anda. Lihat dokumentasi library klien Vertex AI untuk Java guna mengetahui informasi selengkapnya.

Node.js

Saat membuat resource yang didukung, tetapkan parameter encryptionSpec agar mengarah ke resource kunci Anda. Lihat dokumentasi library klien Vertex AI untuk Node.js guna mengetahui informasi selengkapnya.

Python

Saat membuat resource yang didukung, tetapkan parameter encryption_spec agar mengarah ke resource kunci Anda. Lihat dokumentasi Klien Python untuk Cloud AI Platform untuk mengetahui informasi selengkapnya.

Langkah selanjutnya