Mengenkripsi resource workstation menggunakan CMEK

Secara default, Cloud Workstations mengenkripsi konten pelanggan dalam penyimpanan. Cloud Workstations 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 Workstations. 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 melacak penggunaan kunci, 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 Workstations Anda akan serupa dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

Secara default, Cloud Workstations menggunakan Google-owned and Google-managed encryption key untuk mengenkripsi resource workstation seperti VM dan persistent disk saat data tidak aktif. Jika Anda memiliki persyaratan kepatuhan atau peraturan khusus yang terkait dengan 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 Google Cloud konsol, pada halaman pemilih project, pilih atau buat project Google Cloud berikut:

    • 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 kunci dan project workstation, tetapi sebagai praktik terbaik, sebaiknya gunakan dua project untuk pemisahan tugas.

  2. Pastikan penagihan diaktifkan untuk project Cloud Anda. Untuk mengetahui informasi selengkapnya, lihat Memverifikasi status penagihan project Anda.

  3. Aktifkan API yang diperlukan di setiap project.

  4. Instal dan inisialisasi gcloud CLI:

    1. Untuk menginstal gcloud CLI, lihat Menginstal gcloud CLI CLI dan ikuti petunjuk untuk sistem operasi Anda.

    2. Untuk menginisialisasi gcloud CLI, lihat Menginisialisasi gcloud CLI atau 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 berkoordinasi, bukan meminta Admin Cloud KMS Anda untuk juga menjadi Admin Cloud Workstations Anda. Untuk mengetahui informasi selengkapnya, lihat praktik terbaik keamanan dan menggunakan IAM dengan aman .

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

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

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

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

Membuat key ring dan kunci enkripsi

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

  1. Buat atau pilih sebuah key ring.

    Key ring harus berada di region yang sama dengan cluster workstation Anda. Cloud Workstations tidak mendukung lokasi Cloud KMS multi-region atau global.

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

  2. Buat kunci enkripsi simetris.

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

Memberikan akses ke kunci enkripsi Anda

Cloud Workstations menggunakan akun layanan berikut untuk mengelola enkripsi resource Anda:

  1. **Agen Layanan Cloud Workstations**: Cloud Workstations menggunakan akun ini untuk mendeteksi kapan kunci Anda dirotasi.

  2. **Akun Layanan Kunci Cloud KMS**: Anda akan menyediakan akun layanan yang dapat digunakan Cloud Workstations untuk mengakses kunci Anda guna mengenkripsi dan mendekripsi resource.

Memberikan peran Viewer Cloud KMS ke Agen Layanan Cloud Workstations

Agen Layanan Cloud Workstations memungkinkan Cloud Workstations melakukan tugas layanan di project Anda. Saat Anda mengaktifkan Layanan Cloud Workstations di project workstation Anda, agen layanan ini akan otomatis dibuat. Agar CMEK berfungsi dengan baik, Anda harus memberikan peran Viewer Cloud KMS (roles/cloudkms.viewer) Agen Layanan Cloud Workstations untuk project workstation Anda pada kunci Cloud KMS, sehingga Cloud Workstations dapat mendeteksi rotasi kunci.

  1. Untuk mengambil Agen Layanan Cloud Workstations 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 ID project workstation Anda.

    Agen Layanan Cloud Workstations menggunakan format berikut:
    service-$WORKSTATIONS_PROJECT_NUMBER@gcp-sa-workstations.iam.gserviceaccount.com.

  2. Berikan peran Viewer Cloud KMS (roles/cloudkms.viewer) Agen Layanan Cloud Workstations pada kunci CMEK. Hal ini memungkinkan Cloud Workstations untuk mendeteksi rotasi kunci dan mengenkripsi ulang resource sesuai kebutuhan di project Anda.

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

    Ganti kode berikut:

    • KEY_NAME: nama kunci Anda.
    • KEY_RING: nama key ring Anda.
    • LOCATION: lokasi yang berisi key ring Anda.
    • KMS_PROJECT_ID: ID project yang berisi kunci Anda.
    • CLOUD_WORKSTATIONS_SERVICE_AGENT: Agen Layanan Cloud Workstations yang diperoleh dari langkah sebelumnya.

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

Menyiapkan Akun Layanan Kunci Cloud KMS

Cloud Workstations menggunakan akun layanan pilihan Anda untuk melakukan enkripsi dan dekripsi dengan kunci yang dikelola pelanggan. Kami menyebut akun ini sebagai Akun Layanan Kunci Cloud KMS. Anda dapat memilih untuk membuat akun layanan baru atau menggunakan akun yang sudah ada. Persyaratan untuk akun ini adalah:

  • Admin Cloud Workstations harus memiliki izin iam.serviceAccounts.actAs pada akun layanan ini.
  • Akun layanan yang Anda pilih harus memiliki peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter) di Kunci Cloud KMS Anda.
  1. Jika Anda ingin membuat akun layanan baru, gunakan perintah berikut:

    gcloud iam service-accounts create \
      KMS_KEY_SERVICE_ACCOUNT_NAME \
      --display-name="Service account for Cloud Workstations CMEK" \
      --project=WORKSTATIONS_PROJECT_ID
    

    Ganti kode berikut:

    • KMS_KEY_SERVICE_ACCOUNT_NAME: nama akun layanan.
    • WORKSTATIONS_PROJECT_ID: ID project workstation Anda.

    Akun layanan yang Anda buat memiliki email dalam format berikut: KMS_KEY_SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

    Simpan email akun layanan untuk langkah berikutnya.

  2. Untuk memberikan peran Pengguna Akun Layanan IAM Admin Cloud Workstations (roles/iam.serviceAccountUser) di Akun Layanan Kunci Cloud KMS, jalankan perintah berikut:

    gcloud iam service-accounts add-iam-policy-binding \
        KMS_KEY_SERVICE_ACCOUNT_EMAIL \
        --member="user:CLOUD_WORKSTATIONS_ADMIN_EMAIL" \
        --project=WORKSTATIONS_PROJECT_ID \
        --role=roles/iam.serviceAccountUser
    

    Ganti kode berikut:

    • KMS_KEY_SERVICE_ACCOUNT_EMAIL: email Akun Layanan Kunci Cloud KMS.
    • CLOUD_WORKSTATIONS_ADMIN_EMAIL: email Admin Cloud Workstations.
    • WORKSTATIONS_PROJECT_ID: ID project workstation Anda.
  3. Untuk memberikan peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS (`roles/cloudkms.cryptoKeyEncrypterDecrypter`) Akun Layanan Kunci Cloud KMS di Kunci Cloud KMS Anda, jalankan perintah berikut:

      gcloud kms keys add-iam-policy-binding \
        KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --project KMS_PROJECT_ID \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --member serviceAccount:KMS_KEY_SERVICE_ACCOUNT_EMAIL\
    

    Ganti kode berikut:

    • KEY_NAME: nama kunci Anda.
    • KEY_RING: nama key ring Anda.
    • LOCATION: lokasi yang berisi key ring Anda.
    • KMS_PROJECT_ID: ID project yang berisi kunci Anda.
    • KMS_KEY_SERVICE_ACCOUNT_EMAIL: email Akun Layanan Kunci Cloud KMS.

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

Memeriksa cluster workstation

Jika Anda tidak memiliki cluster workstation yang tersedia di Google Cloud konsol, minta Admin Cloud Workstations Anda untuk membuat cluster workstation bagi Anda di region yang sama dengan key ring Cloud KMS, atau pastikan Anda memiliki peran IAM Admin Cloud Workstations di project sehingga Anda dapat membuat resource ini sendiri.

Menggunakan kunci enkripsi yang dikelola pelanggan

  1. Jika Anda belum membuat cluster workstation, buat cluster menggunakan perintah clusters create gcloud CLI.

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

    Ganti kode berikut:

    • WORKSTATIONS_CLUSTER_NAME: nama cluster workstation.
    • LOCATION: nama region untuk cluster workstation Anda.
    • WORKSTATIONS_PROJECT_ID: ID project workstation Anda.
  2. Buat konfigurasi workstation dengan encryption_key setelan.

    Untuk membuat konfigurasi workstation dengan jenis mesin e2-standard-2, waktu tunggu tidak ada aktivitas 3600s, dan resource workstation yang dienkripsi CMEK, jalankan perintah gcloud CLI 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="KMS_KEY_SERVICE_ACCOUNT_EMAIL" \
      --project=WORKSTATIONS_PROJECT_ID
    

    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: ID project, string unik yang digunakan untuk membedakan project Anda dari semua project lainnya di Google Cloud.
    • KEY_RING: nama key ring Anda.
    • KEY_NAME: nama kunci Anda.
    • KMS_KEY_SERVICE_ACCOUNT_EMAIL: email Akun Layanan Kunci Cloud KMS.
    • WORKSTATIONS_PROJECT_ID: ID project workstation Anda.

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

Merotasi kunci enkripsi yang dikelola pelanggan

Saat Anda memberikan peran Viewer Cloud KMS (roles/cloudkms.viewer) Agen Layanan Cloud Workstations pada kunci CMEK, layanan workstation dapat mendeteksi rotasi kunci dan mengenkripsi ulang disk utama Anda menggunakan versi kunci utama baru.

Enkripsi ulang terjadi setelah Anda menghentikan workstation. Setiap kali Anda menghentikan workstation yang dienkripsi, layanan workstation akan memeriksa apakah kunci telah dirotasi. Jika kunci telah dirotasi, layanan workstation akan membuat snapshot disk utama workstation Anda dan menghapus disk. Saat Anda memulai workstation lagi, layanan workstation akan membuat disk baru dari snapshot, menggunakan versi kunci utama baru.

Kuota Cloud KMS dan Cloud Workstations

Saat Anda menggunakan CMEK di Cloud Workstations, 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 mengetahui informasi selengkapnya, lihat Kuota Cloud KMS.

Kunci eksternal

Anda dapat menggunakan Cloud External Key Manager (Cloud EKM) untuk mengenkripsi data di 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 tidak tersedia, workstation Anda tidak dapat dimulai.

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

Langkah berikutnya