Как разрешить ResourceErrorCode: 400 при развертывании ресурса брандмауэра с помощью Google Cloud Deployment Manager
Я пытаюсь развернуть единый ресурс брандмауэра с помощью Google Cloud Deployment Manager. Я хочу, чтобы брандмауэр блокировал только мой собственный IP-адрес от доступа к моему приложению App Engine, которое уже развернуто вhttps://cloudfunctiongateway.uc.r.appspot.com/. Однако я получаю сообщение об ошибке:
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"}}'
Вот мой файл конфигурации 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 ]
И я запускаю эту команду в том же каталоге:
gcloud deployment-manager deployments create firewall-deployment --config firewall.yaml
Я даже попытался развернуть только это в моем файле конфигурации:
resources:
- type: compute.v1.firewall
name: app-firewall
Но все равно появляется то же сообщение об ошибке. Есть способ исправить это? Примечание. Я хочу иметь возможность делать это с помощью диспетчера развертывания. Я уже знаю, что могу вручную настроить брандмауэр с панели инструментов App Engine.
Ответы
На самом деле вам нужно создать правило брандмауэра для приложения App Engine, которое отличается от брандмауэра GCP - это две разные вещи.
Итак - для этого попробуйте запустить это:
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"
и запустите его с gcloud deployment-manager deployments create firewall-deployment --config firewall.yaml
ОБНОВИТЬ
Чтобы увидеть полный список поддерживаемых типов, используйте gcloud beta deployment-manager types list
(список бета-версий намного шире).