Soluciona problemas de gcloud beta terraform vet

¿Por qué la infracción que esperaba no arrojará un error?

Si pruebas la lógica de validación y descubres que la restricción no muestra un error cuando debería ser, esta puede ser el resultado de una o más de las siguientes opciones:

  • ¿Tu biblioteca de políticas está configurada correctamente? Verifica que tu biblioteca de políticas contenga un directorio policies/constraints, que contiene la restricción que esperas que cause una infracción.
  • ¿El recurso de Terraform que contiene el incumplimiento es un recurso compatible? gcloud beta terraform vet solo puede verificar los incumplimientos de los recursos que son compatibles con su versión. Vuelve a ejecutar tu comando con --verbosity=debug y busca un mensaje como: unsupported resource: google_resource_name. También puedes verificar si tu recurso está en la lista de recursos compatibles.
  • ¿Tu restricción se orienta al recurso de Terraform correcto?

    1. Comprueba el campo kind de la restricción. Debería ser similar a lo siguiente: GCPAppengineLocationConstraintV1
    2. Busca en el directorio policies/templates una política que tenga el mismo valor para spec.crd.spec.names.kind.
    3. En el campo rego, busca algo como: asset.asset_type == "appengine.googleapis.com/Application". Este es el Tipo de recurso de CAI al que se orienta la restricción.
    4. Asegúrate de que el tipo de recurso de CAI esté en la lista de recursos compatibles.

¿Por qué recibo un mensaje de error que indica que no se definió ningún proyecto?

El principal de los recursos se usa para compilar un nombre de recurso de CAI preciso. Si gcloud beta terraform vet no puede determinar automáticamente la ascendencia de un activo de CAI, se mostrará un error que indica: project: required field is not set. Puedes proporcionar un proyecto predeterminado con la marca --project o configurar uno mediante gcloud config.

¿Por qué recibo un error que dice getting resource ancestry for project PROJECT_ID: googleapi: Error 403: The caller does not have permission, forbidden?

Ejecuta el comando con --verbosity=debug y busca un mensaje como Terraform is using this identity:. Debe estar seguido de una dirección de correo electrónico, que es la cuenta que se usa para las solicitudes a la API.