Mengenkripsi Resource dengan Mudah Menggunakan Kunci Otomatis Cloud KMS

1. Pengantar

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

Menggunakan kunci yang dibuat oleh Autokey dapat membantu Anda secara konsisten mematuhi standar industri dan praktik yang direkomendasikan untuk keamanan data, termasuk tingkat perlindungan HSM, pemisahan tugas, rotasi kunci, lokasi, dan spesifisitas kunci. Autokey membuat kunci yang mengikuti pedoman umum dan pedoman khusus untuk jenis resource bagi layanan Google Cloud yang terintegrasi dengan Autokey Cloud KMS. Setelah dibuat, kunci yang diminta menggunakan Autokey berfungsi secara identik 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 yang dilindungi
  • Set data BigQuery, disk persisten, dan bucket Cloud Storage yang dienkripsi dengan Autokey Cloud KMS

Yang Anda butuhkan

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

2. Membuat Folder

Folder adalah node dalam Hierarki Resource Cloud Platform. Folder dapat berisi beberapa project, folder lain, atau kombinasi keduanya. Resource organisasi dapat menggunakan folder untuk mengelompokkan project di bawah 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.png

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

3. Membuat Project Resource

Penting untuk membuat project resource yang berisi resource - seperti set data BigQuery, disk persisten, dan Bucket Cloud Storage - yang ingin Anda enkripsi dengan Autokey Cloud KMS. Jika Anda mencoba membuat resource yang dilindungi oleh Autokey di project kunci, Autokey akan menolak permintaan kunci baru. Untuk membuat project resource:

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

93e4e224322c68a7.png

  1. Di menu drop-down Select organization di bagian atas halaman, pilih folder "Autokey-Folder".
  2. Di jendela New Project yang muncul, masukkan nama project dan pilih akun penagihan yang berlaku. Untuk lab ini, pertimbangkan "Autokey Encrypted Resources"
  3. Di kotak Location, pilih folder "Autokey-Folder". Resource tersebut akan menjadi induk hierarkis dari project baru. Setelan Anda akan terlihat seperti ini:

187ece37daf50835.png

  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 pojok kanan atas layar Anda

16c8476c4991f448.png

  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 akan terlihat seperti ini:

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

Saat diminta, beri otorisasi pada 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 Utama

Sebaiknya buat project untuk menyimpan resource Cloud KMS yang dibuat oleh Autokey. Project ini akan disebut sebagai "project 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 Autokey di project kunci, Autokey akan menolak permintaan kunci baru. Untuk membuat project kunci:

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

93e4e224322c68a7.png

  1. Di menu drop-down Select organization di bagian atas halaman, pilih folder "Autokey-Folder".
  2. Di jendela New Project yang muncul, masukkan nama project dan pilih akun penagihan yang berlaku. Untuk lab ini, pertimbangkan "Pengelolaan Kunci"
  3. Di kotak Location, pilih folder "Autokey-Folder". Resource tersebut akan menjadi induk hierarkis dari project baru. Setelan Anda akan terlihat seperti ini:

157894b5c9048c06.png

  1. Salin Project ID - dalam 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, saatnya mengonfigurasi project kunci untuk menggunakan Autokey Cloud KMS.

  1. Pilih ikon Cloud Shell di pojok kanan atas layar Anda

16c8476c4991f448.png

  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 akan terlihat seperti ini:

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

Saat diminta, beri otorisasi pada 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 di 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. Untuk 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. Tambahkan binding kebijakan IAM agar Anda dapat melihat penggunaan Kunci Cloud KMS Anda. Penggunaan Kunci memberikan informasi untuk setiap kunci, termasuk jumlah resource, 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. 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. Beri akun layanan Cloud KMS Anda peran Cloud KMS Organization Service Agent (cloudkms.orgServiceAgent) pada 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 Cloud KMS Protected Resources Viewer di 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. Memberikan peran pengguna Autokey

Sebelum developer Anda dapat menggunakan Autokey, Anda harus memberi mereka peran yang diperlukan. Anda dapat memberikan peran di tingkat folder atau di tingkat project. Peran ini memungkinkan developer meminta kunci dari agen layanan Cloud KMS saat membuat resource di 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 ditandai 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 utama harus berbeda dengan developer yang menggunakan Autokey.

  1. Berikan peran roles/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 Autokey 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 Autokey 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 Pilih Folder

785f338e1860029c.png

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

f0ee5141dc6fa40e.png

  1. Klik Aktifkan.
  2. Klik Jelajahi untuk memilih project kunci
  3. Pilih project pengelolaan kunci Anda, lalu klik Kirim.

5acd9e68eb972e15.png

Pesan mengonfirmasi bahwa Kunci Otomatis Cloud KMS diaktifkan di folder. Halaman Kontrol KMS akan terlihat seperti ini:

8bddb3d688ba842d.png

9. Membuat resource yang dilindungi menggunakan Autokey Cloud KMS

Persistent Disk Compute Engine

Autokey 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 Buat disk dan masukkan properti untuk disk baru.
  3. Di bagian Enkripsi, pilih Kunci Cloud KMS.

dcc63e9ae03c5fbe.png

  1. Untuk Jenis kunci, pilih Cloud KMS dengan Autokey, lalu klik Minta kunci baru. Pesan akan muncul saat kunci Anda berhasil dibuat dan siap digunakan.

4b2283a0d52cc98d.png

  1. Untuk menyelesaikan pembuatan disk, klik Buat.

Anda dapat mengikuti proses serupa untuk membuat resource instance VM, image, dan image mesin yang dilindungi.

Bucket Google Cloud Storage

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

Autokey tidak membuat kunci untuk objek. Secara default, objek yang dibuat 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 bagian "Pilih cara melindungi data objek"

e31bbeff5c7aabdf.png

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

9c68ce19dac932de.png

  1. Luaskan bagian Enkripsi data, lalu pilih Kunci Cloud KMS. d8caca08891be9dc.png
  2. Untuk Jenis kunci, pilih Cloud KMS dengan Autokey, lalu klik Minta kunci baru. Pesan akan muncul saat kunci Anda berhasil dibuat dan siap digunakan.

a10d1ae243c44811.png

  1. Untuk menyelesaikan pembuatan bucket, klik Buat. Jika Anda melihat kotak dialog yang menjelaskan bahwa "Akses publik akan dicegah", 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. Autokey tidak membuat kunci untuk tabel, kueri, tabel sementara, atau model. Secara default, resource ini dilindungi oleh kunci default set data. Jika Anda 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 Pengguna BigQuery terlebih dahulu.

  1. Kembali ke Cloud Shell
  2. Tetapkan Cloud Shell Anda 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. Memberi diri Anda peran BigQuery User
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
    --role=roles/bigquery.user \
    --member=user:$KEY_ADMIN_EMAIL

Setelah memiliki peran Pengguna BigQuery, Anda dapat membuat set data dan melindunginya dengan Autokey.

  1. Di konsol Google Cloud, buka halaman BigQuery.
  2. Ikuti petunjuk untuk Membuat set data hingga Anda membuka Opsi lanjutan > Enkripsi.
  3. Di bagian Encryption, pilih Cloud KMS key.
  4. Untuk Jenis kunci, pilih Cloud KMS dengan Autokey, lalu klik Minta kunci baru. Pesan akan muncul saat kunci Anda berhasil dibuat dan siap digunakan.
  5. Untuk menyelesaikan pembuatan set data, klik Buat set data.

10. Menjelajahi Kunci Anda

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

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

9acbce68acb653d4.png

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

7def6fe9a023d063.png

11. Selamat

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

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

12. Apa langkah selanjutnya?

Mengupload Data ke resource yang dienkripsi Autokey

Dokumen referensi