為什麼我預期會發生的違規行為沒有擲回錯誤?
如果您測試驗證邏輯,發現限制條件應該會擲回錯誤,但實際並未發生,可能是下列一或多項原因所致:
- 政策庫是否設定正確?確認政策程式庫包含
policies/constraints
目錄,其中含有您預期會導致違規的限制。 - 包含違規事項的 Terraform 資源是否為支援的資源?
gcloud beta terraform vet
只能檢查其版本支援的資源是否違規。使用--verbosity=debug
重新執行指令,並尋找類似unsupported resource: google_resource_name
的訊息。或者,你也可以查看支援的資源清單,確認資源是否在清單中。 限制是否指定正確的 Terraform 資源?
為什麼我會收到錯誤訊息,指出未定義任何專案?
資源沿襲用於建構準確的 CAI 資產名稱。如果 gcloud beta terraform vet
無法自動判斷 CAI 資產的沿革,就會傳回錯誤訊息:project: required field is not set
。您可以使用 --project
標記提供預設專案,或使用 gcloud config
設定專案。
為什麼我會收到「getting resource ancestry for project PROJECT_ID: googleapi: Error 403: The caller does not have permission, forbidden
」錯誤訊息?
使用 --verbosity=debug
執行指令,並尋找類似 Terraform
is using this identity:
的訊息。後面應接續電子郵件地址,也就是用於 API 要求的帳戶。
- 如果沒有電子郵件地址,請確認驗證是否正常運作。
- 如果電子郵件地址存在,但不是您要模擬的服務帳戶,請確認服務帳戶模擬設定正確無誤
- 如果顯示的電子郵件地址正確無誤,請確認該地址在專案中具備下列權限:
getIamPolicy
resourcemanager.projects.get