GSP698

Ringkasan
CFT Scorecard adalah klien command line open source dari Forseti Config Validator dan bagian dari Cloud Foundation Toolkit yang lebih luas. Alat ini memberikan visibilitas ke miskonfigurasi dan pelanggaran serangkaian standar yang ditetapkan untuk resource, project, folder, atau bahkan organisasi Google Cloud.
Ada lebih dari 86 jenis resource Google Cloud yang berbeda, dan jumlahnya terus bertambah. Dengan beralih ke cloud publik, Anda dapat mendelegasikan operasi cloud dan deployment resource ke banyak individu dengan lebih mudah. Seiring dengan federasi dan fleksibilitas dalam deployment infrastruktur, resource, dan kebijakan, menjaga kebijakan dan standar tetap teratur juga menjadi kian sulit.
Di lab ini, Anda akan mengonfigurasi CFTScorecard untuk meningkatkan visibilitas ke project Google Cloud dan mendeteksi kesalahan konfigurasi.
Apa yang akan Anda lakukan di lab ini?
Lab ini menyoroti tantangan dalam menggunakan cloud dengan beberapa pengguna serentak. Anda akan mengaktifkan CFT Scorecard dan memperluas kemampuan pemantauan konfigurasi resource serta deteksi pelanggarannya melalui integrasi dengan Inventaris Aset Cloud dan Library Kebijakan open source. Anda akan menyiapkan alat untuk mendeteksi kesalahan konfigurasi dan resource yang terlalu terekspos, sekaligus tetap mengizinkan individu lain dalam tim Anda, dan pada akhirnya project Google Cloud, untuk tetap fleksibel dalam kebijakan yang ditetapkan.
Topik yang dibahas
- Menyiapkan CFT Scorecard.
- Menjalankan penilaian CFT Scorecard.
- Menambahkan kebijakan CFT Scorecard baru.

Skenario
Bayangkan Anda adalah Pemimpin Teknis tim yang terdiri atas 3 orang. Rekan tim jarak jauh Anda, Alice dan Bob, bekerja secara intensif dengan Anda dan men-deploy banyak resource ke project Google Cloud yang sama dengan Anda. Setelah beberapa minggu bekerja sama, Anda mulai melihat beberapa tanda adanya masalah. Anda segera menemukan bahwa Alice dan Bob telah mengabaikan prosedur yang semestinya dan memasukkan konfigurasi project yang Anda anggap sebagai kesalahan konfigurasi. Satu kesalahan konfigurasi mengekspos bucket Cloud Storage secara publik. Hal ini hanyalah salah satu kesalahan konfigurasi yang telah Anda temukan, tetapi Anda khawatir mungkin ada banyak lagi kesalahan lainnya.
Setelah melakukan penelusuran cepat di Google, Anda menemukan aplikasi utilitas CLI Cloud Foundation Toolkit (CFT) Scorecard. Setelah membacanya dengan cepat, Anda memutuskan bahwa hal ini dapat membantu Anda mengelola kebijakan ke dalam lingkungan Google Cloud dan menentukan tempat terjadinya kesalahan konfigurasi. Anda memutuskan untuk mencobanya.
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 Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
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.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar 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.
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.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
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.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (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. Menyiapkan lingkungan
- Buka Cloud Shell dan tetapkan beberapa variabel lingkungan untuk memulai:
export GOOGLE_PROJECT=$DEVSHELL_PROJECT_ID
export CAI_BUCKET_NAME=cai-$GOOGLE_PROJECT
- Setelah membaca dokumen, pahami bahwa CFT Scorecard memiliki dua dependensi:
- Inventaris Aset Cloud
- Library Kebijakan
- Lanjutkan untuk mengaktifkan Cloud Asset API di project Anda:
gcloud services enable cloudasset.googleapis.com \
--project $GOOGLE_PROJECT
- Jalankan perintah ini untuk membuat akun layanan Aset Cloud default:
gcloud beta services identity create --service=cloudasset.googleapis.com --project=$GOOGLE_PROJECT
- Berikan peran storage admin ke akun layanan aset cloud:
gcloud projects add-iam-policy-binding ${GOOGLE_PROJECT} \
--member=serviceAccount:service-$(gcloud projects list --filter="$GOOGLE_PROJECT" --format="value(PROJECT_NUMBER)")@gcp-sa-cloudasset.iam.gserviceaccount.com \
--role=roles/storage.admin
- Buat clone Library Kebijakan:
git clone https://github.com/forseti-security/policy-library.git
- Anda menyadari bahwa Library Kebijakan menerapkan kebijakan yang ada di folder policy-library/policies/constraints, sehingga Anda dapat menyalin contoh kebijakan dari direktori samples ke direktori constraints.
cp policy-library/samples/storage_denylist_public.yaml policy-library/policies/constraints/
- Buat bucket yang akan menyimpan data yang akan diekspor oleh Inventaris Aset Cloud (CAI):
gsutil mb -l {{{project_0.default_region | REGION}}} -p $GOOGLE_PROJECT gs://$CAI_BUCKET_NAME
Klik Periksa progres saya untuk memverifikasi tujuan.
Membuat bucket CAI
Tugas 2. Mengumpulkan data menggunakan Inventaris Aset Cloud (CAI)
Setelah Anda menyiapkan lingkungan, mulai kumpulkan data untuk CFT Scorecard.
Seperti yang telah disebutkan sebelumnya, input ke CFT Scorecard adalah data IAM dan resource, serta folder policy-library.
Anda harus menggunakan CAI untuk membuat informasi kebijakan IAM dan resource untuk project.
- Gunakan perintah di bawah untuk membuat data:
# Export resource data
gcloud asset export \
--output-path=gs://$CAI_BUCKET_NAME/resource_inventory.json \
--content-type=resource \
--project=$GOOGLE_PROJECT
# Export IAM data
gcloud asset export \
--output-path=gs://$CAI_BUCKET_NAME/iam_inventory.json \
--content-type=iam-policy \
--project=$GOOGLE_PROJECT
# Export org policy data
gcloud asset export \
--output-path=gs://$CAI_BUCKET_NAME/org_policy_inventory.json \
--content-type=org-policy \
--project=$GOOGLE_PROJECT
# Export access policy data
gcloud asset export \
--output-path=gs://$CAI_BUCKET_NAME/access_policy_inventory.json \
--content-type=access-policy \
--project=$GOOGLE_PROJECT
Contoh output:
Export in progress for root asset [projects/qwiklabs-gcp-01-68169ed6dd00].
Use [gcloud asset operations describe projects/97186664469/operations/ExportAssets/RESOURCE/2295255602305764396] to check the status of the operation.
Export in progress for root asset [projects/qwiklabs-gcp-01-68169ed6dd00].
Use [gcloud asset operations describe projects/97186664469/operations/ExportAssets/IAM_POLICY/11771734913762837428] to check the status of the operation.
- Pastikan CAI telah menyelesaikan pengumpulan data. Lihat output dari perintah sebelumnya dan gunakan
gcloud asset operations describe
yang disediakan dari output perintah di atas untuk memverifikasi bahwa operasi ini telah selesai. Mungkin perlu waktu beberapa saat untuk memeriksa progresnya.
Klik Periksa progres saya untuk memverifikasi tujuan.
File CAI telah dibuat
Tugas 3. Menganalisis data CAI dengan CFT Scorecard
- Anda perlu mendownload aplikasi CFT Scorecard dan menjadikannya dapat dieksekusi:
curl -o cft https://storage.googleapis.com/cft-cli/latest/cft-linux-amd64
# make executable
chmod +x cft
- Setelah mengonfigurasi semuanya, lanjutkan dan jalankan aplikasi CFT Scorecard:
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME
Contoh output:
Generating CFT scorecard
1 total issues found
Operational Efficiency: 0 issues found
----------
Security: 1 issues found
----------
denylist_public_users: 1 issues
- //storage.googleapis.com/fun-bucket-qwiklabs-gcp-00-2d8ed2a5cc0e is publicly accessable
Reliability: 0 issues found
----------
Other: 0 issues found
----------
Ini adalah bucket publik yang Anda identifikasi sebelumnya.
Tugas 4. Menambahkan lebih banyak batasan ke CFT Scorecard
- Jangan lupa dengan IAM. Tambahkan batasan berikut untuk memastikan Anda sepenuhnya mengetahui siapa yang memiliki peran
roles/owner
selain pengguna yang diizinkan:
# Add a new policy to blacklist the IAM Owner Role
cat > policy-library/policies/constraints/iam_allowlist_owner.yaml << EOF
apiVersion: constraints.gatekeeper.sh/v1alpha1
kind: GCPIAMAllowedBindingsConstraintV3
metadata:
name: allowlist_owner
annotations:
description: List any users granted Owner
spec:
severity: high
match:
target: ["organizations/**"]
exclude: []
parameters:
mode: allowlist
assetType: cloudresourcemanager.googleapis.com/Project
role: roles/owner
members:
- "serviceAccount:admiral@qwiklabs-services-prod.iam.gserviceaccount.com"
EOF
- Jalankan ulang CFT Scorecard:
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME
Oke, semuanya terlihat oke, tetapi mari kita lihat roles/editor
juga.
- Tetapkan dua variabel tambahan untuk membantu pembuatan batasan baru:
export USER_ACCOUNT="$(gcloud config get-value core/account)"
export PROJECT_NUMBER=$(gcloud projects describe $GOOGLE_PROJECT --format="get(projectNumber)")
- Buat batasan berikut yang akan mengizinkan semua akun yang valid:
# Add a new policy to allowlist the IAM Editor Role
cat > policy-library/policies/constraints/iam_identify_outside_editors.yaml << EOF
apiVersion: constraints.gatekeeper.sh/v1alpha1
kind: GCPIAMAllowedBindingsConstraintV3
metadata:
name: identify_outside_editors
annotations:
description: list any users outside the organization granted Editor
spec:
severity: high
match:
target: ["organizations/**"]
exclude: []
parameters:
mode: allowlist
assetType: cloudresourcemanager.googleapis.com/Project
role: roles/editor
members:
- "user:$USER_ACCOUNT"
- "serviceAccount:**$PROJECT_NUMBER**gserviceaccount.com"
- "serviceAccount:$GOOGLE_PROJECT**gserviceaccount.com"
EOF
- Jalankan ulang CFT Scorecard:
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME
Contoh output:
Generating CFT scorecard
3 total issues found
Reliability: 0 issues found
----------
Other: 2 issues found
----------
identify_outside_editors: 1 issues
- IAM policy for //cloudresourcemanager.googleapis.com/projects/1044418630080 grants roles/editor to user:qwiklabs.lab.user@gmail.com
Operational Efficiency: 0 issues found
----------
Security: 1 issues found
----------
denylist_public_users: 1 issues
- //storage.googleapis.com/fun-bucket-qwiklabs-gcp-00-2d8ed2a5cc0e is publicly accessable
Sekarang Anda akan melihat editor yang tidak berada di organisasi Anda. Saatnya berbicara dengan Alice dan Bob.
Selamat!
Anda telah mempelajari cara mendownload, menyiapkan, dan menggunakan CFT Scorecard untuk menganalisis project Google Cloud.
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 12 April 2024
Lab Terakhir Diuji pada 12 April 2024
Hak cipta 2025 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.