arrow_back

Memulai Cloud KMS

Gabung Login
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Memulai Cloud KMS

Lab 45 menit universal_currency_alt 1 Kredit show_chart Pengantar
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP079

Lab Mandiri Google Cloud

Ringkasan

Dalam lab ini, Anda akan mempelajari cara menggunakan beberapa fitur lanjutan dari Google Cloud Security and Privacy API, termasuk:

  • Menyiapkan bucket Cloud Storage yang aman
  • Mengelola kunci dan data terenkripsi menggunakan Key Management Service
  • Melihat log audit Cloud Storage

Anda akan mengambil data ringkas dari Enron Corpus, mengenkripsinya, dan memuatnya ke Cloud Storage.

Yang akan Anda pelajari

  • Cara mengenkripsi data dan mengelola kunci enkripsi menggunakan Key Management Service (KMS).

Yang akan Anda gunakan

  • Cloud Storage
  • Cloud SDK

Penyiapan dan persyaratan

Sebelum mengklik tombol Mulai Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer, yang dimulai saat Anda mengklik Start Lab, akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab praktik ini dapat Anda gunakan untuk melakukan sendiri aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan berikut ini:

    • Tombol Open Google Console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Console. Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Login.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username dari panel Lab Details dan tempel ke dialog Sign in. Klik Next.

  4. Salin Password dari panel Lab Details dan tempel ke dialog Welcome. Klik Next.

    Penting: Anda harus menggunakan kredensial dari panel sebelah kiri. Jangan menggunakan kredensial Google Cloud Skills Boost. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  5. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan daftar uji coba gratis.

Setelah beberapa saat, Cloud Console akan terbuka di tab ini.

Catatan: Anda dapat melihat menu dengan daftar Produk dan Layanan Google Cloud dengan mengklik Menu navigasi di kiri atas. Ikon menu navigasi

Mengaktifkan Cloud Shell

Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas konsol Google Cloud.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke YOUR_PROJECT_ID

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

  2. Output Anda sekarang akan terlihat seperti ini:

Output:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net Untuk menyetel akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar project ID dengan perintah ini:
gcloud config list project

Output:

[core] project = <project_ID>

Contoh output:

[core] project = qwiklabs-gcp-44776a13dea667a6 Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Tugas 1. Membuat bucket Cloud Storage

Agar dapat menyimpan data untuk lab ini, Anda harus membuat bucket Cloud Storage sendiri.

  1. Pilih nama untuk bucket Cloud Storage Anda, misalnya -enron_corpus. Untuk mengetahui informasi selengkapnya tentang penamaan bucket, lihat panduan penamaan bucket Cloud Storage. Jalankan perintah berikut di Cloud Shell untuk menetapkan variabel ke nama bucket Anda:
BUCKET_NAME="{{{ project_0.project_id }}}-enron_corpus"
  1. Sekarang, buat bucket dengan menjalankan perintah berikut:
gsutil mb gs://${BUCKET_NAME}

Menjalankan perintah ini juga akan membantu memverifikasi bahwa Anda sudah menyiapkan klien command line gsutil dengan benar, memiliki autentikasi yang berfungsi, dan memiliki akses tulis ke project cloud tempat Anda menjalankan operasi.

  1. Setelah bucket dibuat, lanjutkan ke langkah berikutnya untuk mendownload Enron Corpus.

Klik Check my progress untuk memverifikasi tujuan.

Membuat bucket Cloud Storage.

Tugas 2. Melihat data

Enron Corpus adalah database besar berisikan lebih dari 600.000 email yang dihasilkan oleh 158 karyawan Enron Corporation. Data ini telah disalin ke bucket Cloud Storage gs://enron_emails/.

  1. Download salah satu file sumber secara lokal agar Anda dapat melihat isi file sumber tersebut dengan menjalankan:
gsutil cp gs://enron_emails/allen-p/inbox/1. .
  1. Sekarang jalankan tail pada file yang telah didownload untuk memastikan teks email ada dalam file tersebut:
tail 1.

Anda akan menerima output berikut:

Attached is the Delta position for 1/18, 1/31, 6/20, 7/16, 9/24 << File: west_delta_pos.xls >> Let me know if you have any questions.

Output ini akan menampilkan konten file email dalam teks biasa. Ada dua jenis file yang perlu Anda perhatikan: file email dalam teks biasa dan file gambar. Anda dapat menggunakan mekanisme yang sama untuk melihat isi file lainnya.

Tugas 3. Mengaktifkan Cloud KMS

Cloud KMS adalah key management service kriptografis di Google Cloud. Sebelum menggunakan KMS, Anda perlu mengaktifkannya untuk project Anda. Di lab ini, KMS yang telah disediakan seharusnya sudah diaktifkan. Anda dapat memastikannya dengan menggunakan salah satu perintah CLI gcloud.

  • Jalankan perintah berikut dalam sesi Cloud Shell Anda:
gcloud services enable cloudkms.googleapis.com Catatan: KMS dan layanan lainnya juga dapat diaktifkan di project Anda menggunakan UI Konsol Cloud.

Anda tidak akan menerima output apa pun. Cloud KMS sekarang diaktifkan di project Anda.

Tugas 4. Membuat Keyring dan CryptoKey

Agar dapat mengenkripsi data, Anda harus membuat KeyRing dan CryptoKey. KeyRing berguna untuk mengelompokkan kunci. Kunci dapat dikelompokkan menurut lingkungannya (seperti test, staging, dan prod) atau menurut pengelompokan konseptual lainnya. Untuk lab ini, KeyRing Anda akan disebut test dan CryptoKey Anda akan disebut qwiklab.

  1. Jalankan perintah berikut di Cloud Shell untuk menetapkan variabel lingkungan:
KEYRING_NAME=test CRYPTOKEY_NAME=qwiklab
  1. Jalankan perintah gcloud untuk membuat KeyRing. Untuk lab ini, Anda akan menggunakan lokasi global, tetapi lokasi ini juga dapat ditetapkan ke region tertentu:
gcloud kms keyrings create $KEYRING_NAME --location global
  1. Selanjutnya, dengan menggunakan KeyRing baru, buat CryptoKey bernama qwiklab:
gcloud kms keys create $CRYPTOKEY_NAME --location global \ --keyring $KEYRING_NAME \ --purpose encryption Catatan: CryptoKey dan KeyRing tidak dapat dihapus di Cloud KMS.

Anda tidak akan melihat output apa pun. Selesai, Anda telah membuat KeyRing dan CryptoKey.

  1. Buka Key management melalui Konsol dengan membuka Navigation menu > Security > Key Management.

UI web Key Management memungkinkan Anda melihat dan mengelola CryptoKey dan KeyRing. Anda akan menggunakan UI ini nanti saat mengelola izin.

Klik Check my progress untuk memverifikasi tujuan.

Membuat Keyring dan CryptoKey.

Tugas 5. Mengenkripsi data Anda

Selanjutnya, coba enkripsi sejumlah data.

  1. Ambil isi email yang Anda lihat sebelumnya dan lakukan encoding base64 dengan menjalankan perintah berikut:
PLAINTEXT=$(cat 1. | base64 -w0) Catatan: Encoding base64 memungkinkan data biner dikirimkan ke API sebagai teks biasa. Perintah ini berfungsi untuk gambar, video, atau jenis data biner lainnya.

Menggunakan endpoint encrypt, Anda dapat mengirim teks berenkode base64 yang ingin Anda enkripsikan ke kunci yang ditentukan.

  1. Jalankan perintah berikut:
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type: application/json" Catatan: Tindakan encrypt akan menampilkan hasil yang berbeda setiap kali dijalankan, meskipun pengguna menggunakan teks dan kunci yang sama.

Responsnya akan berupa payload JSON yang berisi teks terenkripsi dalam atribut ciphertext.

  1. Setelah data dienkripsi, Anda dapat menyimpannya ke sebuah file dan menguploadnya ke bucket Cloud Storage. Untuk mengambil teks terenkripsi dari respons JSON dan menyimpannya ke sebuah file, gunakan utilitas command line jq. Respons dari panggilan sebelumnya dapat diarahkan ke jq, yang dapat mengurai properti ciphertext ke file 1.encrypted. Jalankan perintah berikut:
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type:application/json" \ | jq .ciphertext -r > 1.encrypted
  1. Panggil endpoint decrypt untuk memverifikasi bahwa data terenkripsi dapat didekripsi dan teks yang didekripsi cocok dengan email aslinya. Data terenkripsi memuat informasi tentang versi CryptoKey yang digunakan mengenkripsi, jadi versi spesifik ini tidak pernah diberikan ke endpoint decrypt. Jalankan perintah berikut:
curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:decrypt" \ -d "{\"ciphertext\":\"$(cat 1.encrypted)\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)"\ -H "Content-Type:application/json" \ | jq .plaintext -r | base64 -d Catatan: Dekripsi biasanya dijalankan pada lapisan aplikasi. Untuk panduan cara mengenkripsi dan mendekripsi data dalam berbagai bahasa pemrograman, baca Panduan Memulai Cloud KMS.
  1. Setelah memastikan bahwa teks berhasil dienkripsi, upload file yang telah dienkripsi ke bucket Cloud Storage.
gsutil cp 1.encrypted gs://${BUCKET_NAME}

Klik Check my progress untuk memverifikasi tujuan.

Mengenkripsi Data Anda dengan kunci Cloud KMS dan menguploadnya ke bucket penyimpanan.

Tugas 6. Mengonfigurasi Izin IAM

Di KMS, ada dua izin utama yang perlu menjadi fokus Anda. Salah satu izin memungkinkan pengguna atau akun layanan untuk mengelola resource KMS, dan izin satunya memungkinkan pengguna atau akun layanan menggunakan kunci untuk mengenkripsi dan mendekripsi data.

Izin untuk mengelola kunci adalah cloudkms.admin, dan siapa saja yang memiliki izin ini dapat membuat KeyRing serta membuat, memodifikasi, menonaktifkan, dan menghancurkan CryptoKey. Izin untuk mengenkripsi dan mendekripsi data adalah cloudkms.cryptoKeyEncrypterDecrypter, dan digunakan untuk memanggil endpoint API enkripsi dan dekripsi.

Dalam pelatihan ini, Anda akan menggunakan pengguna yang saat ini diizinkan untuk menetapkan izin IAM.

  1. Untuk mendapatkan pengguna yang saat ini memiliki otorisasi, jalankan perintah berikut:
USER_EMAIL=$(gcloud auth list --limit=1 2>/dev/null | grep '@' | awk '{print $2}')
  1. Selanjutnya, beri pengguna tersebut kemampuan untuk mengelola resource KMS. Jalankan perintah gcloud berikut untuk menetapkan izin IAM guna mengelola KeyRing yang baru saja Anda buat:
gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME \ --location global \ --member user:$USER_EMAIL \ --role roles/cloudkms.admin

Karena CryptoKey termasuk dalam KeyRing, dan KeyRing termasuk dalam Project, pengguna dengan izin atau peran tertentu pada level yang lebih tinggi dalam hierarki tersebut mewarisi izin yang sama atas resource turunannya. Misalnya, pengguna yang memiliki peran Owner pada sebuah Project juga merupakan Owner di semua KeyRing dan CryptoKey dalam project itu. Begitu juga jika seorang pengguna diberi peran cloudkms.admin di KeyRing, maka dia memiliki izin yang terkait atas semua CryptoKey yang ada di KeyRing tersebut.

Tanpa izin cloudkms.cryptoKeyEncrypterDecrypter, pengguna yang diizinkan tidak akan dapat menggunakan kunci itu untuk mengenkripsi atau mendekripsi data.

  1. Jalankan perintah gcloud berikut untuk menetapkan izin IAM guna mengenkripsi dan mendekripsi data untuk setiap CryptoKey yang ada di KeyRing yang Anda buat:
gcloud kms keyrings add-iam-policy-binding $KEYRING_NAME \ --location global \ --member user:$USER_EMAIL \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Sekarang Anda dapat melihat izin yang ditetapkan di bagian Cryptographic Keys pada Key Management.

  1. Centang kotak yang menggunakan nama key ring (test), lalu klik Principals di panel info sebelah kanan.

Menu yang berisi akun dan izin untuk key ring yang baru Anda tambahkan akan terbuka.

Tugas 7. Mencadangkan data dari command line

Setelah memahami cara mengenkripsi satu file, dan mendapatkan izin untuk melakukannya, Anda dapat menjalankan skrip untuk mencadangkan semua file dalam suatu direktori. Untuk contoh ini, salin semua email untuk allen-p, jalankan enkripsi, lalu upload ke bucket Cloud Storage.

  1. Pertama, salin semua email untuk allen-p ke direktori kerja Anda saat ini:
gsutil -m cp -r gs://enron_emails/allen-p .
  1. Selanjutnya, salin dan tempel teks berikut ke Cloud Shell untuk mencadangkan dan mengenkripsi semua file di direktori allen-p ke bucket Cloud Storage Anda:
MYDIR=allen-p FILES=$(find $MYDIR -type f -not -name "*.encrypted") for file in $FILES; do PLAINTEXT=$(cat $file | base64 -w0) curl -v "https://cloudkms.googleapis.com/v1/projects/$DEVSHELL_PROJECT_ID/locations/global/keyRings/$KEYRING_NAME/cryptoKeys/$CRYPTOKEY_NAME:encrypt" \ -d "{\"plaintext\":\"$PLAINTEXT\"}" \ -H "Authorization:Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type:application/json" \ | jq .ciphertext -r > $file.encrypted done gsutil -m cp allen-p/inbox/*.encrypted gs://${BUCKET_NAME}/allen-p/inbox

Skrip ini melakukan loop semua file dalam direktori tertentu, mengenkripsinya menggunakan KMS API, lalu menguploadnya ke Cloud Storage.

Klik Check my progress untuk memverifikasi tujuan.

Mengenkripsi beberapa file menggunakan KMS API dan menguploadnya ke Cloud Storage.

Setelah skrip ini selesai, Anda dapat melihat file yang dienkripsi saat mengklik Storage dari menu kiri Konsol.

  1. Untuk menemukan file, buka Navigation menu > Cloud Storage > Buckets > YOUR_BUCKET > allen-p > inbox. Anda akan melihat sesuatu seperti ini:

Konten bucket

Catatan: Cloud Storage mendukung Enkripsi Sisi Server dengan dukungan rotasi kunci untuk data Anda, yang merupakan cara yang direkomendasikan untuk mengenkripsi data di Cloud Storage. Contoh di atas hanya untuk tujuan demonstrasi.

Tugas 8. Melihat Cloud Audit Logs

Google Cloud Audit Logging terdiri dari dua stream log, yaitu Admin Activity dan Data Access, yang dihasilkan oleh layanan Google Cloud untuk membantu Anda menjawab pertanyaan "siapa melakukan apa, di mana, dan kapan?" dalam project Google Cloud Anda.

  • Untuk melihat aktivitas pada resource apa pun di KMS, buka tab Navigation menu > Cloud Overview > Activity. Anda akan diarahkan ke Cloud Activity UI, klik View Log Explorer, pilih Cloud KMS Key Ring sebagai Resource Type, dan Anda akan melihat pembuatan dan semua perubahan yang dilakukan pada KeyRing.

Sekarang Anda telah mengenkripsi dan mengupload data menggunakan KMS dan Cloud Storage.

Hal yang telah dibahas

  • Menggunakan IAM untuk mengelola izin KMS.
  • Menggunakan KMS untuk mengenkripsi data.
  • Menggunakan Cloud Storage untuk menyimpan data yang telah dienkripsi.
  • Menggunakan Cloud Audit Logging untuk melihat semua aktivitas pada CryptoKey dan KeyRing.

Tugas 9. Menguji pengetahuan Anda

Uji pengetahuan Anda tentang Cloud KMS dengan mengikuti kuis ini.

Selamat!

Menyelesaikan Quest Anda

Lab mandiri ini merupakan bagian dari Quest Security & Identity Fundamentals. Quest adalah serangkaian lab terkait yang membentuk jalur pembelajaran. Dengan menyelesaikan quest ini, Anda mendapatkan badge sebagai pengakuan atas pencapaian Anda. Anda dapat memperlihatkan badge atau beberapa badge kepada publik dan menautkannya di resume online atau akun media sosial Anda. Daftar ke Quest ini atau Quest apa pun yang berisi lab ini dan segera dapatkan kredit penyelesaian. Lihat Katalog Google Cloud Skills Boost untuk melihat semua Quest yang tersedia.

Ikuti lab berikutnya

Lanjutkan Quest Anda dengan Menyiapkan Cluster Kubernetes Pribadi atau coba salah satu lab Cloud Skills Boost ini:

Langkah berikutnya / Pelajari lebih lanjut

Manual terakhir diperbarui pada 31 Agustus 2023

Lab Terakhir Diuji pada 31 Agustus 2023

Hak cipta 2024 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.