Mengenkripsi Resource dengan Mudah Menggunakan Kunci Otomatis Cloud KMS

1. Pengantar

Kunci Otomatis Cloud KMS menyederhanakan pembuatan dan penggunaan kunci enkripsi yang dikelola pelanggan (CMEK) dengan mengotomatiskan penyediaan dan penetapan. Dengan Kunci Otomatis, key ring, kunci, dan akun layanan tidak perlu direncanakan dan disediakan sebelum diperlukan. Sebagai gantinya, Kunci otomatis membuat kunci sesuai permintaan saat resource Anda dibuat, dengan mengandalkan izin yang didelegasikan, bukan administrator Cloud KMS.

Menggunakan kunci yang dihasilkan oleh Autokey dapat membantu Anda secara konsisten menyelaraskan dengan standar industri dan praktik yang direkomendasikan untuk keamanan data, termasuk tingkat perlindungan HSM, pemisahan tugas, rotasi kunci, lokasi, dan kekhususan kunci. Kunci otomatis membuat kunci yang mengikuti panduan umum dan panduan khusus untuk jenis resource untuk layanan Google Cloud yang terintegrasi dengan Kunci Otomatis Cloud KMS. Setelah dibuat, kunci yang diminta menggunakan fungsi Autokey sama persis dengan kunci Cloud HSM lainnya dengan setelan yang sama.

Yang akan Anda bangun

Dalam codelab ini, Anda akan meluncurkan resource yang dilindungi menggunakan Autokey Cloud KMS dengan membuat:

  • resource folder
  • project yang akan berisi kunci Anda
  • agen layanan untuk bertindak sebagai asisten pengelola kunci Anda
  • project yang akan menghosting resource Anda yang dilindungi
  • Set data, persistent disk, dan bucket Cloud Storage BigQuery yang dienkripsi dengan Kunci Otomatis Cloud KMS

Yang Anda butuhkan

  • Organisasi Google Cloud
  • Akun utama Google Cloud Anda harus memiliki peran berikut di tingkat Organisasi untuk menyelesaikan lab ini:
  • Admin Kunci Otomatis Cloud KMS (roles/cloudkms.autokeyAdmin)
  • Admin IAM Folder (roles/resourcemanager.folderIamAdmin)
  • Pengguna Akun Penagihan (roles/billing.user)
  • Project Google Cloud dengan Penagihan Aktif
  • Pengalaman Linux Dasar

2. Buat Folder

Folder adalah node di Hierarki Resource Cloud Platform. Folder dapat berisi beberapa project, folder lain, atau kombinasi keduanya. Resource organisasi dapat menggunakan folder untuk mengelompokkan project di node resource organisasi dalam hierarki. Untuk membuat folder:

  1. Buka halaman Manage resources di Konsol Google Cloud
  2. Pastikan nama resource organisasi Anda dipilih di menu drop-down organisasi di bagian atas halaman.
  3. Klik Buat folder

9328ef3bd4840817.png

  1. Pilih Folder Standar

20a094fe0c7a0924.pngS

  1. Di kotak Nama folder, masukkan nama folder baru. Untuk lab ini, pertimbangkan "Autokey-Folder"
  2. Di bagian Tujuan, klik Jelajahi, lalu pilih resource atau folder organisasi tempat Anda ingin membuat folder baru.
  3. Klik Buat.

3. Membuat Project Resource

Penting untuk membuat project resource yang memuat resource - seperti set data BigQuery, persistent disk, dan Bucket Cloud Storage - yang ingin Anda enkripsikan dengan Kunci Otomatis Cloud KMS. Jika Anda mencoba membuat resource yang dilindungi oleh Kunci otomatis dalam project kunci, Kunci otomatis akan menolak permintaan kunci baru. Untuk membuat project resource:

  1. Buka halaman Manage resources di Konsol Google Cloud
  2. Klik Create Project.

93e4e224322c68a7.pngS

  1. Pada daftar drop-down Pilih organisasi di bagian atas halaman, pilih "Folder Kunci Otomatis" folder tersebut.
  2. Di jendela Project Baru yang muncul, masukkan nama project dan pilih akun penagihan yang berlaku. Untuk lab ini, pertimbangkan "Autokey Encrypted Resources"
  3. Dalam kotak Lokasi, pilih "Folder Kunci Otomatis" folder tersebut. Resource tersebut akan menjadi induk hierarki dari project baru. Setelan Anda akan terlihat seperti ini:

187ece37daf50835.pngS

  1. Salin Project ID - pada contoh di atas, Project ID-nya adalah "causal-hour-43319-m4" tetapi ID Anda akan berbeda - ke editor teks pilihan Anda.
  2. Klik Buat
  3. Pilih ikon Cloud Shell di sudut kanan atas layar

16c8476c4991f448.pngS

  1. Setelah Cloud Shell aktif, simpan Project ID Autokey Anda sebagai variabel dengan menjalankan perintah berikut:
export RESOURCE_PROJECT=<paste your Resource Project ID>

Karena Project ID saya adalah "key-management-433319" perintah saya terlihat seperti itu:

export AUTOKEY_PROJECT=causal-hour-43319-m4
  1. Jalankan perintah berikut untuk menjalankan perintah dari Key Project Anda:
gcloud config set project $RESOURCE_PROJECT

Saat diminta, beri otorisasi Cloud Shell dengan mengklik "Authorize"

a6c755d4921bc728.png

  1. Karena project ini akan berisi resource, kita perlu mengaktifkan API untuk layanan yang akan dilindungi Autokey. Jalankan perintah berikut:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com

4. Membuat Project Kunci

Sebaiknya buat project untuk menampung resource Cloud KMS yang dibuat oleh Kunci otomatis. Ini akan disebut sebagai "proyek utama" ke depannya. Project kunci dapat dibuat di dalam folder yang sama tempat Anda berencana mengaktifkan Autokey. Anda tidak boleh membuat resource lain di dalam project kunci. Jika Anda mencoba membuat resource yang dilindungi oleh Kunci otomatis dalam project kunci, Kunci otomatis akan menolak permintaan kunci baru. Untuk membuat project utama:

  1. Buka halaman Mengelola resource di konsol Google Cloud
  2. Klik Create Project.

93e4e224322c68a7.pngS

  1. Pada daftar drop-down Pilih organisasi di bagian atas halaman, pilih "Folder Kunci Otomatis" folder tersebut.
  2. Di jendela Project Baru yang muncul, masukkan nama project dan pilih akun penagihan yang berlaku. Untuk lab ini, pertimbangkan "Key Management"
  3. Dalam kotak Lokasi, pilih "Folder Kunci Otomatis" folder tersebut. Resource tersebut akan menjadi induk hierarki dari project baru. Setelan Anda akan terlihat seperti ini:

157894b5c9048c06.png

  1. Salin Project ID - pada contoh di atas, Project ID-nya adalah "key-management-433319" tetapi ID Anda akan berbeda - ke editor teks pilihan Anda.
  2. Klik Buat.

5. Menyiapkan project kunci Autokey

Setelah setiap project dibuat, sekarang saatnya mengonfigurasi project kunci untuk menggunakan Kunci Otomatis Cloud KMS.

  1. Pilih ikon Cloud Shell di sudut kanan atas layar

16c8476c4991f448.pngS

  1. Setelah Cloud Shell aktif, simpan Project ID Autokey Anda sebagai variabel dengan menjalankan perintah berikut:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>

Karena Project ID saya adalah "key-management-433319" perintah saya terlihat seperti itu:

export AUTOKEY_PROJECT=key-management-433319
  1. Jalankan perintah berikut untuk menjalankan perintah dari Key Project Anda:
gcloud config set project $AUTOKEY_PROJECT

Saat diminta, beri otorisasi Cloud Shell dengan mengklik "Authorize"

a6c755d4921bc728.png

  1. Aktifkan Cloud KMS API dengan menjalankan perintah berikut
gcloud services enable cloudkms.googleapis.com  kmsinventory.googleapis.com
  1. Jalankan perintah berikut untuk menyimpan Nomor Project Anda sebagai variabel bernama AUTOKEY_PROJECT_NUMBER
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
  1. Simpan email Principal Anda sebagai variabel dengan menjalankan perintah berikut:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
  1. Memberikan izin administrator Cloud KMS pada project kunci kepada pengguna administrator Cloud KMS Anda
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=user:$KEY_ADMIN_EMAIL

6. Menyiapkan agen layanan Cloud KMS

Agen layanan Cloud KMS untuk project kunci membuat kunci dan menerapkan binding kebijakan IAM selama pembuatan resource, atas nama administrator Cloud KMS manusia. Agar dapat membuat dan menetapkan kunci, agen layanan Cloud KMS memerlukan izin administrator Cloud KMS.

  1. Temukan ID Organisasi dengan perintah berikut:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
  1. Salin ID Organisasi - ini adalah hasil numerik yang ditandai dengan warna merah
  2. Simpan ID Organisasi sebagai variabel bernama ORG_ID:
export ORG_ID=<paste your Organization ID>
  1. Buat agen layanan Cloud KMS dengan menjalankan perintah berikut:
gcloud beta services identity create --service=cloudkms.googleapis.com \
    --project=$AUTOKEY_PROJECT_NUMBER
  1. Berikan peran administrator Cloud KMS ke agen layanan:
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
  1. Menambahkan binding kebijakan IAM agar Anda dapat melihat penggunaan Kunci Cloud KMS. Key Usage memberikan informasi untuk setiap kunci, termasuk jumlah resource terlindungi, project, dan produk Google Cloud unik yang menggunakan kunci tersebut. Tingkat detail ini tersedia bagi siapa saja yang memiliki peran Cloud KMS Viewer pada kunci tersebut. Jalankan perintah berikut:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
    --member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. Berikan peran Agen Layanan Organisasi (cloudkms.orgServiceAgent) Cloud KMS kepada akun layanan Cloud KMS Anda di resource organisasi Anda.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. Berikan peran Protected Resources Viewer pada Cloud KMS pada resource Organisasi Anda kepada siapa saja yang perlu melihat detail penggunaan kunci.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="user:$KEY_ADMIN_EMAIL" \
    --role='roles/cloudkms.protectedResourcesViewer'

7. Berikan peran pengguna Kunci otomatis

Sebelum developer dapat menggunakan Autokey, Anda harus memberi mereka peran yang diperlukan. Anda dapat memberikan peran di level folder atau level project. Peran ini memungkinkan developer untuk meminta kunci dari agen layanan Cloud KMS saat membuat resource dalam folder atau project tersebut.

Langkah pertama dalam memberikan peran adalah menyimpan ID Folder.

  1. Temukan ID Folder dengan perintah berikut:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
  1. Salin ID Folder - ini adalah bagian yang disorot dengan warna merah
  2. Simpan ID Folder sebagai variabel bernama Folder_ID
export FOLDER_ID=<paste the folder ID>

Untuk tujuan lab ini, kita akan menetapkan administrator kunci sebagai pengguna Autokey. Namun, dalam kasus penggunaan produksi dan di organisasi dengan lebih dari satu individu, administrator kunci harus berbeda dengan developer yang menggunakan Kunci otomatis.

  1. Berikan peran role/cloudkms.autokeyUser di tingkat folder:
gcloud resource-manager folders add-iam-policy-binding \
    $FOLDER_ID --role=roles/cloudkms.autokeyUser \
    --member=user:$KEY_ADMIN_EMAIL

8. Mengaktifkan Kunci Otomatis Cloud KMS di folder resource

Pada langkah ini, Anda akan mengaktifkan Autokey Cloud KMS di folder resource dan mengidentifikasi project Cloud KMS yang akan berisi resource Kunci otomatis untuk folder tersebut. Mengaktifkan Autokey di folder ini akan mengaktifkan Autokey untuk semua project resource dalam folder.

  1. Di konsol Google Cloud, buka halaman Kontrol KMS.
  2. Klik Select Folder

785f338e1860029c.pngS

  1. Dari pemilih konteks, pilih folder tempat Anda ingin mengaktifkan Kunci otomatis. Folder ini akan berupa folder yang sama dengan yang Anda buat sebelumnya dan berisi project resource dan project pengelolaan kunci Anda. Kodenya akan terlihat seperti berikut:

f0ee5141dc6fa40e.png

  1. Klik Aktifkan.
  2. Klik Telusuri untuk memilih project utama
  3. Pilih project key management Anda, lalu klik Submit.

5acd9e68eb972e15.pngS

Sebuah pesan mengonfirmasi bahwa Kunci Otomatis Cloud KMS diaktifkan pada folder tersebut. Halaman Kontrol KMS akan terlihat seperti ini:

8bddb3d688ba842d.pngS

9. Membuat resource yang dilindungi menggunakan Kunci Otomatis Cloud KMS

Persistent Disk Compute Engine

Kunci otomatis membuat kunci baru untuk setiap disk, image, dan image mesin di lokasi yang sama dengan resource yang sedang dibuat.

Untuk membuat disk, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Disk.
  2. Klik Create disk, lalu masukkan properti untuk disk baru.
  3. Di bagian Enkripsi, pilih kunci Cloud KMS.

dcc63e9ae03c5fbe.png

  1. Untuk Jenis kunci, pilih Cloud KMS dengan Kunci otomatis, lalu klik Minta kunci baru. Akan muncul pesan yang menunjukkan kapan kunci Anda berhasil dibuat dan siap digunakan.

4b2283a0d52cc98d.pngS

  1. Untuk menyelesaikan pembuatan disk, klik Create.

Anda dapat mengikuti proses serupa untuk membuat resource, image, dan instance VM terlindungi.

Bucket Google Cloud Storage

Kunci otomatis membuat kunci baru di lokasi yang sama dengan bucket. Kunci yang dibuat oleh Autokey ditetapkan sebagai kunci default bucket.

Kunci otomatis tidak membuat kunci untuk objek. Secara default, objek yang dibuat di dalam bucket menggunakan kunci default bucket. Jika ingin mengenkripsi objek menggunakan kunci selain kunci default bucket, Anda dapat membuat CMEK secara manual dan menggunakan kunci tersebut saat membuat objek.

  1. Di konsol Google Cloud, buka halaman Create a bucket.
  2. Pilih nama permanen yang unik secara global.
  3. Pilih lokasi data.
  4. Lanjutkan ke "Pilih cara melindungi data objek" bagian

e31bbeff5c7aabdf.png

  1. Klik "Pilih cara melindungi data objek" untuk meluaskan bagian

9c68ce19dac932de.pngS

  1. Luaskan bagian Enkripsi data dan pilih kunci Cloud KMS. d8caca08891be9dc.png
  2. Untuk Jenis kunci, pilih Cloud KMS dengan Kunci otomatis, lalu klik Minta kunci baru. Akan muncul pesan yang menunjukkan kapan kunci Anda berhasil dibuat dan siap digunakan.

a10d1ae243c44811.png

  1. Untuk menyelesaikan pembuatan bucket, klik Buat. Jika Anda melihat kotak dialog yang menjelaskan bahwa "Public access will be prevented" klik Konfirmasi.

Set Data BigQuery

Untuk setiap set data baru, Autokey membuat kunci baru, di lokasi yang sama dengan resource itu sendiri, yang menjadi kunci default set data. Kunci otomatis tidak membuat kunci untuk tabel, kueri, tabel sementara, atau model. Secara default, resource ini dilindungi oleh kunci default set data. Jika ingin melindungi resource dalam set data menggunakan kunci selain kunci default set data, Anda dapat membuat CMEK secara manual dan menggunakan kunci tersebut saat membuat resource.

Untuk membuat set data BigQuery, Anda harus memiliki peran BigQuery User terlebih dahulu.

  1. Kembali ke Cloud Shell
  2. Tetapkan Cloud Shell untuk menjalankan perintah dari project resource
gcloud config set project $RESOURCE_PROJECT
  1. Jalankan perintah berikut untuk menyimpan Nomor Project Anda sebagai variabel bernama RESOURCE_PROJECT_NUMBER
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
  1. Berikan peran BigQuery User kepada diri Anda sendiri
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
    --role=roles/bigquery.user \
    --member=user:$KEY_ADMIN_EMAIL

Sekarang setelah memiliki peran BigQuery User, Anda dapat membuat set data dan melindunginya dengan Autokey.

  1. Di konsol Google Cloud, buka halaman BigQuery.
  2. Ikuti petunjuk untuk membuat {i>dataset<i} hingga Anda mencapai {i>Advanced options<i} > Enkripsi.
  3. Di bagian Enkripsi, pilih kunci Cloud KMS.
  4. Untuk Jenis kunci, pilih Cloud KMS dengan Kunci otomatis, lalu klik Minta kunci baru. Akan muncul pesan yang menunjukkan kapan kunci Anda berhasil dibuat dan siap digunakan.
  5. Untuk menyelesaikan pembuatan set data, klik Create dataset.

10. Jelajahi Kunci Anda

Pada langkah ini, Anda akan mempelajari kunci yang dibuat Kunci Otomatis Cloud KMS untuk Anda dengan mengunjungi halaman Inventaris Kunci. Halaman Inventaris Kunci menyediakan informasi komprehensif tentang kunci kriptografis dalam project Anda. Perhatikan bahwa data mungkin tertunda. Misalnya, jika Anda membuat resource baru yang dilindungi, resource yang dilindungi dan versi kunci terkait tidak akan langsung ditambahkan ke tab Pelacakan penggunaan. Lihat batasan lainnya di sini.

  1. Di konsol Google Cloud, buka halaman Inventaris Kunci.
  2. Opsional: Untuk memfilter daftar kunci, masukkan istilah penelusuran di kotak Filter filter_list, lalu tekan enter. Misalnya, Anda dapat memfilter menurut lokasi, key ring, status, atau properti kunci lainnya.
  3. Klik nama kunci yang informasi penggunaannya ingin Anda lihat.
  4. Klik "Ringkasan". Perhatikan bahwa Anda memiliki kunci per resource yang dibuat. Setiap nama kunci mencakup nama resource yang dilindungi oleh kunci tersebut (misalnya "compute-disk" atau "storage-bucket"). Kunci Otomatis Cloud KMS memastikan setiap kunci dijadwalkan untuk dirotasi 365 hari setelah pembuatannya dan setiap kunci akan diberi "HSM" tingkat perlindungan.

9acbce68acb653d4.pngS

  1. Klik tab Pelacakan Penggunaan. Perhatikan tingkat informasi yang disajikan: setiap resource yang dienkripsi oleh kunci ditampilkan di sini, beserta project, lokasi, dan tanggal pembuatan.
  2. Opsional: Untuk memfilter daftar referensi yang dilindungi, masukkan istilah penelusuran di kotak Filter filter_list, lalu tekan Enter.

7def6fe9a023d063.pngS

11. Selamat

Selamat, Anda berhasil membuat resource Google Cloud dan mengenkripsinya secara otomatis sesuai permintaan dengan Kunci Otomatis Cloud KMS.

Sekarang Anda telah mengetahui langkah-langkah penting yang diperlukan untuk menyiapkan Kunci otomatis dan menggunakannya untuk mengenkripsi resource secara otomatis dengan kunci Cloud KMS.

12. Apa langkah selanjutnya?

Mengupload Data ke resource yang dienkripsi Kunci otomatis

Dokumen referensi