为什么我预期的违规行为不会抛出错误?
如果您测试验证逻辑并发现约束没有在应该抛出错误时抛出错误,则可能是因为以下一项或多项原因:
- 您的政策库设置是否正确?验证您的政策库是否包含
policies/constraints
目录,该目录包含您希望导致违规的限制条件。 - 包含违规的 Terraform 资源是否是受支持的资源?
gcloud beta terraform vet
只能检查其版本支持的资源的违规行为。使用--verbosity=debug
重新运行命令,并查找类似于unsupported resource: google_resource_name
的消息。或者,检查您的资源是否在支持的资源列表中。 您的限制条件是否针对正确的 Terraform 资源?
为什么我会收到一条指出未定义项目的错误,?
Resource Ancestry 用于构建准确的 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