Mengapa pelanggaran yang saya duga tidak menampilkan error?
Jika Anda menguji logika validasi dan menemukan bahwa batasan tidak memunculkan error yang seharusnya muncul, hal ini mungkin disebabkan oleh salah satu atau beberapa hal berikut:
- Apakah library kebijakan Anda disiapkan dengan benar? Pastikan library kebijakan Anda
berisi direktori
policies/constraints
, yang berisi batasan yang diduga akan menyebabkan pelanggaran. - Apakah resource Terraform yang berisi pelanggaran merupakan resource yang didukung?
gcloud beta terraform vet
hanya dapat memeriksa pelanggaran untuk resource yang didukung dalam versinya. Jalankan kembali perintah Anda dengan--verbosity=debug
dan cari pesan seperti:unsupported resource: google_resource_name
. Atau, Anda dapat memeriksa apakah resource Anda ada dalam daftar resource yang didukung. Apakah batasan Anda menargetkan resource Terraform yang benar?
- Periksa kolom
kind
batasan. Formatnya harusnya seperti ini:GCPAppengineLocationConstraintV1
- Telusuri direktori
policies/templates
untuk mencari kebijakan yang memiliki nilai yang sama untukspec.crd.spec.names.kind
- Di kolom
rego
, cari:asset.asset_type == "appengine.googleapis.com/Application"
. Ini adalah Jenis Aset CAI yang ditargetkan batasan. - Pastikan Jenis Aset CAI ada dalam daftar resource yang didukung.
- Periksa kolom
Mengapa saya mendapatkan pesan error yang menyatakan bahwa tidak ada project yang ditentukan?
Ancestry resource digunakan untuk membuat Nama Aset CAI yang akurat. Jika
gcloud beta terraform vet
tidak dapat menentukan ancestry untuk Aset CAI secara otomatis,
maka akan muncul error: project: required field is not set
. Anda dapat
menyediakan project default dengan flag --project
atau dengan mengaturnya menggunakan
gcloud config
.
Mengapa saya menerima pesan error getting resource ancestry for project PROJECT_ID: googleapi: Error 403: The caller does not have permission, forbidden
?
Jalankan perintah dengan --verbosity=debug
dan cari pesan seperti Terraform
is using this identity:
. Pesan ini harus diikuti dengan alamat email, yang merupakan akun yang digunakan untuk permintaan API.
- Jika tidak ada alamat email, pastikan autentikasi Anda berfungsi dengan benar.
- Jika ada alamat email, tetapi bukan akun layanan yang ingin Anda tiru, pastikan peniruan akun layanan Anda disiapkan dengan benar
- Jika alamat email yang ditampilkan benar, pastikan alamat tersebut memiliki izin berikut pada project:
getIamPolicy
resourcemanager.projects.get