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 vet
só pode verificar violações de recursos suportados na respetiva versão. Volte a executar o comando com--verbosity=debug
e 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
kind
da restrição. Deve ser algo como:GCPAppengineLocationConstraintV1
- Pesquise no diretório
policies/templates
uma 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:
getIamPolicy
resourcemanager.projects.get