Modify the constraint

Periksa progres saya

/ 100

Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.

GSP1021

Lab mandiri Google Cloud

Ringkasan

Dalam lab ini, Anda akan mempelajari perintah gcloud beta terraform vet, yang disebut sebagai Validate di sepanjang lab ini. Validate adalah alat untuk menerapkan kepatuhan kebijakan sebagai bagian dari pipeline CI/CD infrastruktur. Anda dapat menggunakan Validate untuk mendeteksi pelanggaran kebijakan dan memberikan peringatan atau menghentikan deployment sebelum deployment tersebut mencapai produksi.

Lab ini akan memandu Anda menerapkan batasan yang memberlakukan pembatasan domain. Anda akan menguji batasan tersebut dan menampilkan error secara sengaja. Kemudian, Anda akan memodifikasi batasan tersebut agar domain Anda lulus.

Tujuan

Dalam lab ini, Anda akan:

  • Menerapkan batasan yang memberlakukan pembatasan domain
  • Menguji batasan untuk sengaja menampilkan error validasi
  • Memodifikasi batasan agar domain tersebut lulus validasi

Prasyarat

Untuk lab ini, Anda sebaiknya memiliki pengalaman menggunakan Terraform. Lihat kursus Membangun Infrastruktur dengan Terraform di Google Cloud untuk mendapatkan lebih banyak praktik langsung dengan Terraform.

Penyiapan dan Persyaratan

Sebelum mengklik tombol Start 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 interaktif ini dapat Anda gunakan untuk melakukan 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 (direkomendasikan) 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: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Cara memulai lab dan login ke Konsol Google Cloud

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kanan terdapat panel Lab setup and access yang berisi hal-hal berikut:

    • Tombol Open Google Cloud console
    • Kredensial sementara (nama pengguna dan sandi) yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini

    Perhatikan bahwa timer lab terletak di dekat bagian atas halaman, yang menampilkan waktu yang tersisa.

  2. Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).

    Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.

    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 di bawah dan tempel ke dialog Sign in.

    {{{user_0.username | "Username"}}}

    Anda juga dapat menemukan Username di panel Lab setup and access.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab setup and access.

  6. Klik Next.

    Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Penggunaan akun Google Cloud sendiri untuk lab ini mungkin dikenai biaya tambahan.
  7. Klik untuk melanjutkan ke 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, Konsol Google Cloud akan terbuka di tab ini.

Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search. Ikon Navigation menu dan kolom Search

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.

  2. Klik jendela berikut:

    • Lanjutkan melalui jendela informasi Cloud Shell.
    • Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.

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

Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "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.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Tugas 1. Memvalidasi batasan

Untuk melihat cara penerapan batasan, Anda akan menyalin batasan yang ada, menyediakan kasus pengujian yang gagal divalidasi, lalu memodifikasi batasannya agar pengujian tersebut lulus validasi.

Menyalin batasan

  1. Buka jendela Cloud Shell baru dan jalankan perintah berikut untuk membuat clone repositori library kebijakan.
git clone https://github.com/GoogleCloudPlatform/policy-library.git
  1. Pada command prompt, masukkan perintah berikut untuk menyalin contoh batasan terkait pembatasan domain IAM:
cd policy-library/ cp samples/iam_service_accounts_only.yaml policies/constraints
  1. Periksa batasan yang Anda salin dengan mencetaknya ke terminal.
cat policies/constraints/iam_service_accounts_only.yaml

Outputnya akan terlihat seperti ini:

# This constraint checks that all IAM policy members are in the # "gserviceaccount.com" domain. apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedPolicyMemberDomainsConstraintV2 metadata: name: service_accounts_only annotations: description: Checks that members that have been granted IAM roles belong to allowlisted domains. spec: severity: high match: target: # {"$ref":"#/definitions/io.k8s.cli.setters.target"} - "organizations/**" parameters: domains: - gserviceaccount.com

Perhatikan bagian yang ditandai di bawah. Bagian ini menetapkan bahwa hanya anggota dari domain gserviceaccount.com yang boleh ada dalam kebijakan IAM.

Menguji batasan

  1. Untuk memastikan bahwa kebijakan berfungsi sesuai harapan, Anda akan membuat file Terraform dalam direktori saat ini.
touch main.tf
  1. Di toolbar Cloud Shell, klik Open Editor. Untuk beralih antara Cloud Shell dan editor kode, klik Open Editor atau Open Terminal sesuai kebutuhan, atau klik Open in new window untuk membiarkan Editor terbuka di tab terpisah.

  2. Buka file policy-library/main.tf dan salin kode berikut ke dalam file tersebut:

terraform { required_providers { google = { source = "hashicorp/google" version = "~> 3.84" } } } resource "google_project_iam_binding" "sample_iam_binding" { project = "<YOUR PROJECT ID>" role = "roles/viewer" members = [ "user:<USER>" ] }
  1. Ganti <YOUR PROJECT ID> dengan .

  2. Ganti <USER> dengan .

  3. Selanjutnya, kembali ke terminal dan jalankan perintah berikut untuk melakukan inisialisasi Terraform:

terraform init
  1. Jalankan perintah berikut untuk mengekspor Terraform plan. Jika diminta, klik Authorize.
terraform plan -out=test.tfplan
  1. Konversi Terraform plan ke JSON.
terraform show -json ./test.tfplan > ./tfplan.json
  1. Instal komponen Terraform Tools.
sudo apt-get install google-cloud-sdk-terraform-tools
  1. Jalankan perintah berikut untuk memvalidasi bahwa Terraform plan Anda mematuhi kebijakan Anda.
gcloud beta terraform vet tfplan.json --policy-library=. Catatan: Anda dapat mengabaikan peringatan apa pun tentang pengambilan Project ID Anda.

Karena alamat email yang Anda berikan dalam binding kebijakan IAM bukan milik akun layanan, plan tersebut melanggar batasan yang Anda siapkan. Output Anda akan terlihat seperti berikut:

constraint: GCPIAMAllowedPolicyMemberDomainsConstraintV2.service_accounts_only constraint_config: api_version: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedPolicyMemberDomainsConstraintV2 metadata: annotations: description: Checks that members that have been granted IAM roles belong to allowlisted domains. validation.gcp.forsetisecurity.org/originalName: service_accounts_only validation.gcp.forsetisecurity.org/yamlpath: policies/constraints/iam_service_accounts_only.yaml name: service-accounts-only spec: match: target: - organizations/** parameters: domains: - gserviceaccount.com severity: high message: 'IAM policy for //cloudresourcemanager.googleapis.com/projects/qwiklabs-gcp-02-ec89de7c9f9d contains member from unexpected domain: user:student-02-0edcb8aed69f@qwiklabs.net' metadata: ancestry_path: organizations/616463121992/folders/365352270458/folders/474147567761/folders/125430737939/projects/qwiklabs-gcp-02-ec89de7c9f9d constraint: annotations: description: Checks that members that have been granted IAM roles belong to allowlisted domains. validation.gcp.forsetisecurity.org/originalName: service_accounts_only validation.gcp.forsetisecurity.org/yamlpath: policies/constraints/iam_service_accounts_only.yaml labels: {} parameters: domains: - gserviceaccount.com details: member: user:student-02-0edcb8aed69f@qwiklabs.net resource: //cloudresourcemanager.googleapis.com/projects/qwiklabs-gcp-02-ec89de7c9f9d resource: //cloudresourcemanager.googleapis.com/projects/qwiklabs-gcp-02-ec89de7c9f9d severity: high Pemecahan masalah: Jika Anda mendapati error berikut, "Error 403: The caller does not have permission, forbidden," berarti Anda tidak mengganti argumen project_id di policy-library/main.tf, atau Anda tidak memiliki izin yang diperlukan pada project yang Anda tentukan.

Tugas 2. Memodifikasi batasan

Batasan berfungsi sebagaimana mestinya, tetapi anggap Anda ingin memodifikasinya agar dapat mengizinkan alamat email lain di domain Anda.

  1. Dari Editor, buka file policy-library/policies/constraints/iam_service_accounts_only.yaml.

  2. Di bagian domains, tambahkan domain email qwiklabs.net ke daftar domain yang diizinkan:

apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedPolicyMemberDomainsConstraintV1 metadata: name: service_accounts_only spec: severity: high match: target: ["organizations/**"] parameters: domains: - gserviceaccount.com - qwiklabs.net
  1. Kembali ke jendela Cloud Shell dan ekspor Terraform plan JSON baru.
terraform plan -out=test.tfplan
  1. Sekarang validasi kembali Terraform plan Anda; seharusnya sudah tidak ada pelanggaran yang ditemukan.
gcloud beta terraform vet tfplan.json --policy-library=.

Output:

Validating resources...done.
  1. Terakhir, terapkan Terraform plan tersebut untuk kebijakan IAM guna memberikan peran kepada anggota.
terraform apply test.tfplan

Klik Periksa progres saya untuk memverifikasi tujuan. Memodifikasi batasan

Selamat!

Dalam lab ini, Anda telah menerapkan batasan yang memberlakukan pembatasan domain. Anda telah menguji batasan tersebut, yang menampilkan error. Kemudian, Anda memodifikasi batasan agar domain yang Anda tentukan dapat lulus validasi.

Langkah Berikutnya/Pelajari Lebih Lanjut

Pastikan Anda membaca referensi berikut untuk berlatih lebih lanjut dengan Validator dan Terraform:

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 29 November 2024

Lab Terakhir Diuji pada 29 November 2024

Hak cipta 2026 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.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Menggunakan jendela Samaran atau browser pribadi adalah cara terbaik untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa, yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.