Como resolver ResourceErrorCode: 400 ao implantar um recurso de firewall com o Google Cloud Deployment Manager
Estou tentando implantar um único recurso de firewall com o Google Cloud Deployment Manager. Quero que o firewall bloqueie apenas meu próprio endereço IP de acessar meu aplicativo do App Engine que já está implantado emhttps://cloudfunctiongateway.uc.r.appspot.com/. No entanto, estou recebendo um erro:
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"}}'
Aqui está o meu arquivo de configuração em 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 ]
E estou executando este comando no mesmo diretório:
gcloud deployment-manager deployments create firewall-deployment --config firewall.yaml
Eu até tentei implantar apenas isso no meu arquivo de configuração:
resources:
- type: compute.v1.firewall
name: app-firewall
Mas ainda recebo a mesma mensagem de erro. Algum jeito de arrumar isso? Observação: desejo poder fazer isso com o Deployment Manager. Já sei que posso configurar manualmente um firewall no painel do App Engine.
Respostas
O que você realmente precisa é criar uma regra de firewall para o aplicativo do App Engine , que é diferente do firewall do GCP - são duas coisas diferentes.
Então - para fazer isso, tente executar isto:
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"
e executá-lo comgcloud deployment-manager deployments create firewall-deployment --config firewall.yaml
ATUALIZAR
Para ver uma lista completa de tipos suportados, use gcloud beta deployment-manager types list
(a lista de versões beta é muito mais abrangente).