Mengenkripsi boot disk VM TPU dengan kunci enkripsi yang dikelola pelanggan (CMEK) dengan Compute Engine

Secara default, Cloud TPU mengenkripsi konten pelanggan dalam penyimpanan. Cloud TPU 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 yang terintegrasi dengan CMEK, termasuk Cloud TPU. Dengan menggunakan kunci Cloud KMS, Anda dapat mengontrol tingkat perlindungan , lokasi, jadwal rotasi, izin penggunaan dan akses, serta batasan kriptografisnya. Dengan Cloud KMS, Anda juga dapat melihat log audit dan mengontrol siklus proses kunci. Bukan 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 Cloud TPU Anda akan serupa dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

Untuk menggunakan CMEK, buat key ring. Buat key ring di lokasi yang sama dengan tempat Anda membuat VM atau slice TPU. Misalnya, VM TPU di zona us-central1-a hanya dapat menggunakan kunci di region us-central1.

Selanjutnya, buat kunci di key ring Anda. Setelah membuat CMEK, izinkan akun layanan Compute Engine mengakses kunci Anda.

Memberikan izin untuk menggunakan kunci

Berikan peran IAM Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) pada kunci Cloud KMS ke agen layanan Compute Engine di Google Cloud project Anda. Dengan memberikan peran ini, layanan Compute Engine dapat mengakses dan menggunakan kunci enkripsi Anda.

Untuk memberikan peran roles/cloudkms.cryptoKeyEncrypterDecrypter ke agen layanan Compute Engine, pilih salah satu opsi berikut:

gcloud

Jalankan perintah berikut:

gcloud kms keys add-iam-policy-binding KEY_NAME \
    --location LOCATION \
    --keyring RING_NAME \
    --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
    --project KEY_PROJECT_ID

Ganti kode berikut:

  • KEY_NAME: Nama kunci Anda.
  • LOCATION: Lokasi tempat Anda membuat key ring.
  • RING_NAME: Nama key ring Anda.
  • PROJECT_NUMBER: Nomor your Google Cloud project.
  • KEY_PROJECT_ID: ID project kunci Anda.

Konsol

  1. Di Google Cloud konsol, buka halaman Key management.

    Buka Key management

  2. Klik nama key ring yang berisi kunci.

  3. Klik nama kunci yang ingin Anda ubah.

  4. Klik Permissions.

  5. Klik Grant Access. Panel Grant Access akan terbuka.

  6. Di kolom New principals, masukkan nama agen layanan Compute Engine:

    service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
    

    Ganti PROJECT_NUMBER dengan nomor your Google Cloud project.

  7. Di menu Select a role, pilih Cloud KMS CryptoKey Encrypter/Decrypter.

  8. Klik Save.

Membuat VM TPU dengan CMEK

Anda dapat menentukan CMEK saat membuat VM TPU atau template instance untuk grup instance terkelola (MIG) menggunakan flag --boot-disk-kms-key.

Membuat satu instance VM TPU dengan CMEK

Untuk menentukan CMEK saat membuat satu VM TPU, gunakan flag --boot-disk-kms-key dalam perintah gcloud compute instances create:

  gcloud compute instances create TPU_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --zone=ZONE \
    --maintenance-policy=TERMINATE \
    --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME

Ganti placeholder berikut:

  • TPU_NAME: Nama untuk VM TPU Anda.
  • MACHINE_TYPE: Jenis mesin untuk VM TPU, misalnya, ct6e-standard-8t.
  • IMAGE_FAMILY: Kelompok image OS untuk VM TPU. Jika ingin menginstal versi OS tertentu, gunakan --image flag. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.
  • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, project ini adalah ubuntu-os-accelerator-images.
  • ZONE: Zona untuk VM TPU, misalnya, us-central1-b.
  • KEY_PROJECT_ID: Project yang berisi kunci enkripsi.
  • REGION: Region tempat Anda membuat key ring.
  • RING_NAME: Nama key ring Anda.
  • KEY_NAME: Nama kunci Anda.

Membuat MIG dengan slice host tunggal dengan CMEK

Untuk menggunakan CMEK dengan MIG, tentukan kunci saat Anda membuat template instance.

  1. Buat template instance menggunakan flag --boot-disk-kms-key:

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
        --machine-type=MACHINE_TYPE \
        --maintenance-policy=TERMINATE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
    

    Ganti placeholder berikut:

    • INSTANCE_TEMPLATE_NAME: Nama untuk template instance Anda.
    • MACHINE_TYPE: Jenis mesin untuk VM TPU, misalnya, ct6e-standard-8t.
    • IMAGE_FAMILY: Kelompok image OS untuk VM TPU. Jika ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.
    • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, project ini adalah ubuntu-os-accelerator-images.
    • KEY_PROJECT_ID: Project yang berisi kunci enkripsi.
    • REGION: Region tempat Anda membuat key ring.
    • RING_NAME: Nama key ring Anda.
    • KEY_NAME: Nama kunci Anda.
  2. Buat MIG menggunakan template:

    gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --template=INSTANCE_TEMPLATE_NAME \
        --zone=ZONE \
        --size=MIG_SIZE
    

    Ganti placeholder berikut:

    • MIG_NAME: Nama untuk MIG Anda.
    • MIG_SIZE: Jumlah VM TPU di MIG.
    • INSTANCE_TEMPLATE_NAME: Nama template instance yang akan digunakan.
    • ZONE: Zona untuk VM TPU, misalnya, us-central1-b.
    • MIG_SIZE: Jumlah VM TPU di MIG. Untuk VM TPU host tunggal, tetapkan ukuran ke 1.

Membuat MIG dengan slice multi-host dengan CMEK

Saat membuat MIG slice multi-host, tentukan kunci enkripsi di template instance.

  1. Buat template instance.

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME
        --machine-type=MACHINE_TYPE \
        --maintenance-policy=TERMINATE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --boot-disk-kms-key=projects/KEY_PROJECT_ID/locations/REGION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
    

    Ganti placeholder berikut:

    • INSTANCE_TEMPLATE_NAME: Nama untuk template instance Anda.
    • MACHINE_TYPE: Jenis mesin untuk VM TPU, misalnya, ct6e-standard-8t.
    • IMAGE_FAMILY: Kelompok image OS untuk VM TPU. Jika ingin menginstal versi OS tertentu, gunakan flag --image. Untuk mengetahui informasi selengkapnya tentang image OS, lihat Image OS.
    • IMAGE_PROJECT: Project yang berisi image OS. Untuk image TPU, project ini adalah ubuntu-os-accelerator-images.
    • KEY_PROJECT_ID: Project yang berisi kunci enkripsi.
    • REGION: Region tempat Anda membuat key ring.
    • RING_NAME: Nama key ring Anda.
    • KEY_NAME: Nama kunci Anda.
  2. Buat kebijakan workload.

    Perintah berikut akan membuat kebijakan workload:

    gcloud compute resource-policies create workload WORKLOAD_POLICY_NAME \
    --type=high-throughput \
    --accelerator-topology=TOPOLOGY
    

    Ganti placeholder berikut:

    • WORKLOAD_POLICY_NAME: Nama kebijakan workload Anda.
    • TOPOLOGY: Topologi VM TPU, misalnya, 4x4x8.
  3. Buat MIG.

    gcloud compute instance-groups managed create MIG_NAME \
        --size=MIG_SIZE \
        --target-size-policy-mode=bulk \
        --template=INSTANCE_TEMPLATE_NAME \
        --zone=ZONE \
        --default-action-on-vm-failure=do-nothing \
        --workload-policy=WORKLOAD_POLICY_NAME
    

    Ganti placeholder berikut:

    • MIG_NAME: Nama MIG Anda.
    • MIG_SIZE: Jumlah VM di MIG. Nilai ini divalidasi terhadap topologi yang ditentukan dalam kebijakan workload.
    • INSTANCE_TEMPLATE_NAME: Nama template instance Anda.
    • ZONE: Zona untuk MIG Anda.
    • WORKLOAD_POLICY_NAME: Nama kebijakan workload Anda.

Untuk mengetahui informasi tentang cara membuat VM TPU dengan CMEK menggunakan GKE, lihat Menggunakan kunci enkripsi yang dikelola pelanggan dalam dokumentasi GKE.

CMEK yang dihapus atau dicabut

Jika CMEK dicabut atau dihapus, VM TPU yang menggunakan boot disk yang dienkripsi dengan CMEK yang dihapus atau dicabut tidak akan otomatis dimatikan. VM TPU masih dapat mengakses data di boot disk terenkripsi hingga Anda mematikan atau memulai ulang VM. Hal ini memungkinkan Anda memulihkan data jika Anda memulihkan akses ke kunci yang dicabut atau dihapus. Jika Anda mengaktifkan kembali kunci, Anda dapat memulai atau memperbaiki VM TPU, dan boot disk akan berhasil didekripsi dan dimuat.