Cómo resolver ResourceErrorCode: 400 al implementar un recurso de firewall con Google Cloud Deployment Manager

Aug 17 2020

Estoy tratando de implementar un solo recurso de firewall con Google Cloud Deployment Manager. Quiero que el cortafuegos bloquee solo mi propia dirección IP para que no acceda a mi aplicación App Engine que ya está implementada enhttps://cloudfunctiongateway.uc.r.appspot.com/. Sin embargo, estoy recibiendo un error:

  location: /deployments/firewall-deployment2/resources/app-firewall
  message: '{"ResourceType":"compute.v1.firewall","ResourceErrorCode":"400","ResourceErrorMessage":{"code":400,"message":"Request
    contains an invalid argument.","status":"INVALID_ARGUMENT","statusMessage":"Bad
    Request","requestPath":"https://compute.googleapis.com/compute/v1/projects/cloudfunctiongateway/global/firewalls","httpMethod":"POST"}}'

Aquí está mi archivo de configuración en firewall.yaml:

resources:
- type: compute.v1.firewall
  name: app-firewall
  properties:
    network: https://cloudfunctiongateway.uc.r.appspot.com/
    denied:
      - IPProtocol: 33.27.10.123 # a fake ip address, I use my real one
    sourceRanges: [ 0.0.0.0/0 ]

Y estoy ejecutando este comando en el mismo directorio:

gcloud deployment-manager deployments create firewall-deployment --config firewall.yaml

Incluso he intentado implementar solo esto en mi archivo de configuración:

resources:
- type: compute.v1.firewall
  name: app-firewall

Pero sigue recibiendo el mismo mensaje de error. Cualquier forma de arreglar esto? Tenga en cuenta que quiero poder hacer esto con Deployment Manager. Ya sé que puedo configurar manualmente un firewall desde el panel de control de App Engine.

Respuestas

Wojtek_B Aug 27 2020 at 21:13

Lo que realmente necesita es crear una regla de firewall para la aplicación App Engine , que es algo diferente del GCP Firewall; esas son dos cosas diferentes.

Entonces, para hacer esto, intente ejecutar esto:

resources:
- name: dmapprule1
  type: gcp-types/appengine-v1:apps.firewall.ingressRules
  properties:
    appsId: 00c61b117c74f1a3bbcb4900df618a4c4ae211790ade0822a63cb492d671f318776a5a
    priority: 1000
    action: "DENY"
    source_range: "0.0.0.0/0"

y ejecutarlo congcloud deployment-manager deployments create firewall-deployment --config firewall.yaml

ACTUALIZAR

Para ver una lista completa de los tipos admitidos, use gcloud beta deployment-manager types list(la lista de versiones beta es mucho más completa).