Mengenkripsi resource workstation menggunakan CMEK

Secara default, Cloud Workstations menggunakan kunci enkripsi yang dikelola Google untuk mengenkripsi resource workstation seperti VM dan persistent disk saat data dalam penyimpanan. Jika memiliki persyaratan kepatuhan atau peraturan khusus terkait kunci yang melindungi data, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) menggunakan Cloud Key Management Service (Cloud KMS).

Untuk mengetahui informasi selengkapnya tentang CMEK secara umum, termasuk waktu dan alasan mengaktifkannya, lihat dokumentasi Cloud KMS.

Sebelum memulai

Membuat project

  1. Di Konsol Google Cloud, pada halaman pemilih project, pilih atau buat dua project Google Cloud:

    • Sebuah project kunci berisi resource Cloud KMS Anda, termasuk key ring dan kunci enkripsi simetris.

    • Project workstation berisi workstation yang dienkripsi dengan kunci CMEK.

    Anda dapat menggunakan project yang sama untuk project utama dan project workstation Anda, tetapi sebagai praktik terbaik, sebaiknya gunakan dua project untuk pemisahan tugas.

  2. Pastikan penagihan diaktifkan untuk project Cloud Anda. Pelajari cara memeriksa apakah penagihan diaktifkan di project.

  3. Aktifkan API yang diperlukan di setiap project.

  4. Pastikan Anda menginstal dan menginisialisasi gcloud CLI. Untuk menginisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
    

Peran yang diperlukan

Meskipun Anda dapat memberikan peran Admin Cloud KMS dan Admin Cloud Workstations kepada orang yang sama, sebaiknya ikuti prinsip hak istimewa terendah saat menetapkan peran. Sebagai praktik terbaik, berikan peran ini kepada dua orang yang berbeda dan minta mereka untuk berkoordinasi, daripada meminta Cloud KMS untuk menjadi Admin Cloud Workstations Anda juga. Untuk mengetahui informasi selengkapnya, lihat praktik terbaik keamanan dan penggunaan IAM dengan aman.

Untuk mendapatkan izin yang diperlukan untuk menyiapkan CMEK, minta administrator untuk memberi Anda peran IAM berikut:

  • Jika Anda adalah Admin Cloud KMS, minta administrator untuk memberi Anda peran berikut sehingga Anda dapat membuat dan mengelola resource Cloud KMS: Admin Cloud KMS (roles/cloudkms.admin) pada project kunci Anda.
  • Jika Anda adalah Cloud Workstations Admin, minta administrator untuk memberi Anda peran berikut agar dapat membuat dan mengupdate workstation: Cloud Workstations Admin (roles/workstations.admin) pada project workstation.

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Buat key ring dan kunci enkripsi

Di project kunci Anda, buat kunci dan simpan ID resource kunci tersebut:

  1. Buat atau pilih key ring.

    Anda dapat membagikan key ring antarlayanan, tetapi sebagai praktik terbaik, sebaiknya gunakan kunci yang berbeda untuk setiap resource yang dilindungi. Lihat pemisahan tugas.

  2. Buat kunci enkripsi simetris.

    Pastikan Anda membuat kunci CMEK dan konfigurasi workstation di region yang sama.

  3. Dapatkan ID resource kunci dan simpan untuk langkah berikutnya.

Memeriksa konfigurasi workstation

Jika tidak memiliki konfigurasi workstation yang tersedia di Google Cloud Console, minta Cloud Workstation Admin untuk membuat konfigurasi workstation, atau pastikan Anda memiliki peran IAM Cloud Workstations Admin pada project sehingga Anda dapat membuat resource ini sendiri.

Menggunakan kunci enkripsi yang dikelola pelanggan

Untuk menggunakan CMEK dalam konfigurasi workstation, aktifkan CMEK dari Konsol Google Cloud atau CLI gcloud.

Konsol

Berikan peran CryptoKey Encrypter/Decrypter Cloud KMS ke akun layanan Compute Engine dan agen layanan Compute Engine Anda dan peran Cloud KMS Viewer:

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

    Buka Key management

  2. Klik nama key ring yang berisi kunci tersebut.

  3. Pilih kotak centang untuk kunci yang ingin Anda gunakan.

    Tab Izin akan muncul sebagai panel.

  4. Pada dialog Add members, tentukan alamat email akun layanan Compute Engine dan agen layanan Compute Engine yang Anda berikan akses.

  5. Di menu drop-down Select a role, pilih Cloud KMS Bigtable Encrypter/Decrypter.

  6. Klik Add another role.

  7. Di menu drop-down Select a role, pilih Cloud KMS Viewer.

  8. Klik Simpan.

Untuk mengaktifkan CMEK dari konsol Google Cloud:

  1. Ikuti langkah-langkah untuk Membuat konfigurasi workstation.

  2. Saat menetapkan konfigurasi mesin, cari bagian Opsi lanjutan.

  3. Klik expand_more Luaskan dan pilih Gunakan kunci enkripsi yang dikelola pelanggan (CMEK).

    1. Di kolom Select a customer-managed key, pilih kunci enkripsi yang dikelola pelanggan yang Anda buat di project kunci.

      Jika kunci yang Anda buat tidak tercantum, klik Enter key manually untuk memilih kunci menurut ID resource, lalu masukkan ID resource yang Anda catat sebelumnya.

    2. Di kolom Service account, pilih akun layanan yang digunakan oleh kunci.

  4. Selesaikan langkah-langkah lainnya untuk membuat konfigurasi workstation Anda.

  5. Buat, mulai, dan luncurkan konfigurasi workstation untuk mengenkripsi persistent disk di project Anda dengan kunci Cloud KMS yang ditentukan.

gcloud

Contoh berikut memberikan peran IAM yang memberikan akses ke kunci Cloud KMS, lalu mengaktifkan CMEK dengan menentukan kunci tersebut dalam konfigurasi workstation:

  1. Berikan project Cloud KMS kepada akun layanan KMS dan agen layanan Compute Engine untuk workstation Anda peran CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) pada kunci CMEK. Hal ini memungkinkan layanan Compute Engine membuat resource terenkripsi dalam project Anda, menggunakan kunci CMEK yang ditentukan.

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

    Ganti kode berikut:

    • KEY_NAME: nama kunci Anda.
    • LOCATION: nama region tempat Anda membuat key ring.
    • KEY_RING: nama key ring Anda.
    • WORKSTATIONS_PROJECT_NUMBER: ID numerik unik yang dihasilkan secara otomatis yang disertakan sebagai bagian pertama dari akun layanan default Compute Engine pada project workstation.
    • KMS_PROJECT_ID: project ID, string unik yang digunakan untuk membedakan project Cloud KMS Anda dari project lain di Google Cloud.

    Untuk mengetahui informasi tentang semua flag dan nilai yang memungkinkan, jalankan perintah dengan flag --help.

  2. Untuk mengambil akun layanan pengelolaan workstation untuk project workstation Anda, gunakan perintah berikut:

    gcloud beta services identity create --service=workstations.googleapis.com \
        --project=WORKSTATIONS_PROJECT_ID
    

    Ganti WORKSTATIONS_PROJECT_ID dengan project ID workstation Anda.

  3. Berikan peran Cloud KMS Viewer (roles/cloudkms.viewer) kepada akun layanan pengelolaan workstation untuk project Anda pada kunci CMEK. Hal ini memungkinkan layanan workstation mendeteksi rotasi kunci dan mengenkripsi ulang resource, sesuai kebutuhan dalam project Anda.

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT \
        --role roles/cloudkms.viewer \
        --project KMS_PROJECT_ID
    

    Ganti kode berikut:

    • KEY_NAME: nama kunci Anda.
    • LOCATION: nama region tempat Anda membuat key ring.
    • KEY_RING: nama key ring Anda.
    • WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT: akun layanan pengelolaan workstation yang diperoleh dari langkah di atas.
    • KMS_PROJECT_ID: project ID, string unik yang digunakan untuk membedakan project kunci Cloud KMS Anda dari project lain di Google Cloud.

    Untuk mengetahui informasi tentang semua flag dan nilai yang memungkinkan, jalankan perintah dengan flag --help.

  4. Opsional: jika belum membuat cluster workstation, buat cluster menggunakan perintah CLI gcloud clusters create.

    gcloud workstations clusters create \
        WORKSTATIONS_CLUSTER_NAME --region=LOCATION \
        --project=WORKSTATIONS_PROJECT_NUMBER
    

    Ganti kode berikut:

    • WORKSTATIONS_CLUSTER_NAME: nama cluster workstation.
    • LOCATION: nama region untuk cluster workstation Anda.
    • WORKSTATIONS_PROJECT_NUMBER: ID numerik unik yang dihasilkan secara otomatis yang disertakan sebagai bagian pertama dari akun layanan default Compute Engine pada project workstation
  5. Dengan asumsi bahwa Anda telah membuat cluster, buat konfigurasi workstation dengan setelan encryption_key.

    Untuk membuat konfigurasi workstation dengan jenis mesin e2-standard-2, waktu tunggu tidak ada aktivitas 3600s, dan resource workstation yang dienkripsi CMEK, jalankan perintah CLI gcloud berikut:

    gcloud workstations configs create WORKSTATIONS_CONFIG_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --region=LOCATION \
      --machine-type="e2-standard-2" \
      --idle-timeout=3600 \
      --kms-key="projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
      --kms-key-service-account="WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
      --project=WORKSTATIONS_PROJECT_NUMBER
    

    Ganti kode berikut:

    • WORKSTATIONS_CONFIG_NAME: nama konfigurasi workstation.
    • WORKSTATIONS_CLUSTER_NAME: nama cluster workstation Anda.
    • LOCATION: nama region untuk cluster Anda.
    • KMS_PROJECT_ID: project ID, string unik yang digunakan untuk membedakan project Anda dari semua project lain di Google Cloud.
    • KEY_RING: nama key ring Anda.
    • KEY_NAME: nama kunci Anda.
    • WORKSTATIONS_PROJECT_NUMBER: ID numerik unik yang dihasilkan secara otomatis yang disertakan sebagai bagian pertama dari akun layanan default Compute Engine pada project workstation

    Setelah Anda membuat konfigurasi workstation, Cloud KMS akan mengenkripsi persistent disk dalam project Anda dengan kunci Cloud KMS yang ditentukan.

Kuota Cloud KMS dan Cloud Workstation

Saat Anda menggunakan CMEK di Cloud Workstation, project Anda dapat memakai kuota permintaan kriptografis Cloud KMS. Misalnya, repositori yang dienkripsi CMEK dapat memakai kuota ini untuk setiap unggahan atau unduhan. Operasi enkripsi dan dekripsi menggunakan kunci CMEK memengaruhi kuota Cloud KMS hanya jika Anda menggunakan kunci hardware (Cloud HSM) atau kunci eksternal (Cloud EKM). Untuk informasi selengkapnya, lihat kuota Cloud KMS.

Kunci eksternal

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

Saat Anda menggunakan kunci Cloud EKM, Google tidak memiliki kontrol atas ketersediaan kunci yang dikelola secara eksternal. Jika kunci menjadi tidak tersedia, workstation Anda tidak dapat dimulai.

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

Langkah selanjutnya