使用 Google Cloud Deployment Manager 部署防火墙资源时如何解决 ResourceErrorCode: 400
How to resolve ResourceErrorCode: 400 when deploying a firewall resource with Google Cloud Deployment Manager
我正在尝试使用 Google Cloud Deployment Manager 部署单个防火墙资源。我希望防火墙仅阻止我自己的 IP 地址访问我已部署在 https://cloudfunctiongateway.uc.r.appspot.com/ 的 App Engine 应用程序。但是,我收到一个错误:
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
但还是得到同样的错误信息。有任何解决这个问题的方法吗?注意我希望能够使用 Deployment Manager 执行此操作。我已经知道我可以从 App Engine 仪表板手动设置防火墙。
您真正需要的是创建一个与 GCP 防火墙不同的 firewall rule for App Engine 应用程序 - 这是两个不同的东西。
所以 - 为了做到这一点,请尝试 运行宁此:
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
(测试版列表更全面)。
我正在尝试使用 Google Cloud Deployment Manager 部署单个防火墙资源。我希望防火墙仅阻止我自己的 IP 地址访问我已部署在 https://cloudfunctiongateway.uc.r.appspot.com/ 的 App Engine 应用程序。但是,我收到一个错误:
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
但还是得到同样的错误信息。有任何解决这个问题的方法吗?注意我希望能够使用 Deployment Manager 执行此操作。我已经知道我可以从 App Engine 仪表板手动设置防火墙。
您真正需要的是创建一个与 GCP 防火墙不同的 firewall rule for App Engine 应用程序 - 这是两个不同的东西。
所以 - 为了做到这一点,请尝试 运行宁此:
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
(测试版列表更全面)。