Por que motivo uma violação que esperava não está a gerar um erro?
Se testar a lógica de validação e verificar que a restrição não está a gerar um erro quando deveria, tal pode dever-se a um ou mais dos seguintes motivos:
- A sua biblioteca de políticas está configurada corretamente? Verifique se a sua biblioteca de políticas contém um diretório
policies/constraints, que contém a restrição que espera causar uma violação. - O recurso do Terraform que contém a violação é um recurso suportado? O
gcloud beta terraform vetsó pode verificar violações de recursos suportados na respetiva versão. Volte a executar o comando com--verbosity=debuge procure uma mensagem como:unsupported resource: google_resource_name. Em alternativa, pode verificar se o seu recurso está na lista de recursos suportados. A restrição está a segmentar o recurso do Terraform correto?
- Verifique o campo
kindda restrição. Deve ser algo como:GCPAppengineLocationConstraintV1 - Pesquise no diretório
policies/templatesuma política que tenha o mesmo valor paraspec.crd.spec.names.kind - No campo
rego, procure algo como:asset.asset_type == "appengine.googleapis.com/Application". Este é o tipo de recurso da CAI ao qual a restrição se destina. - Certifique-se de que o tipo de recurso da CAI está na lista de recursos suportados.
- Verifique o campo
Por que motivo recebo um erro a indicar que não está definido nenhum projeto?
A hierarquia de recursos é usada para criar um nome do recurso da CAI preciso. Se
gcloud beta terraform vet não conseguir determinar automaticamente a ascendência de um recurso da CAI,
devolve um erro com a seguinte mensagem: project: required field is not set. Pode
fornecer um projeto predefinido com a flag --project ou definir um através de
gcloud config.
Por que motivo recebo um erro a indicar getting resource ancestry for project PROJECT_ID: googleapi: Error 403: The caller does not have permission, forbidden?
Execute o comando com --verbosity=debug e procure uma mensagem como Terraform
is using this identity:. Deve ser seguido de um endereço de email, que é a conta usada para pedidos de API.
- Se não existir um endereço de email, certifique-se de que a sua autenticação está a funcionar corretamente.
- Se existir um endereço de email, mas não for a conta de serviço que queria representar, certifique-se de que a representação da conta de serviço está configurada corretamente
- Se o endereço de email correto for apresentado, certifique-se de que tem as seguintes autorizações no projeto:
getIamPolicyresourcemanager.projects.get