ResourceErrorCode 해결 방법 : Google Cloud Deployment Manager로 방화벽 리소스를 배포 할 때 400
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
그러나 여전히 동일한 오류 메시지가 나타납니다. 이 문제를 해결할 방법이 있습니까? 참고 Deployment Manager로이 작업을 수행하고 싶습니다. App Engine 대시 보드에서 방화벽을 수동으로 설정할 수 있다는 것을 이미 알고 있습니다.
답변
실제로 필요한 것은 GCP 방화벽과는 다른 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
(베타 버전 목록은 훨씬 더 포괄적입니다).