비공개 네트워크 보안을 통해 Google Cloud Scheduler에서 Google Cloud Functions 트리거

비공개 네트워크 보안을 통해 Google Cloud Scheduler에서 Google Cloud Functions 트리거

Google Cloud Scheduler를 사용하면 Google Cloud 함수와 연결된 http 엔드포인트에 도달할 수 있으므로 타이머/스케줄러에서 함수를 실행할 수 있습니다. Cloud Functions에는 (1) 모든 트래픽 허용 또는 (2) 내부 트래픽만 허용(동일한 프로젝트 또는 VPC SC 경계 내의 트래픽만 허용)이라는 두 가지 노출 옵션이 있습니다. 후자를 수행하고 싶지만 스케줄러가 HTTP 403을 사용하여 액세스하지 못합니다.

모든 트래픽에 개방되어 있으면 누군가가 내 URL을 추측할 수 있고 원하는 만큼 URL을 실행할 수 있습니다. 물론 이제 내 함수에 인증을 추가하고 Scheduler가 적절한 헤더를 전달하도록 할 수 있지만 다른 사람이 내 함수를 트리거해도 위험하지는 않습니다. 그러나 다른 사람이 이를 트리거할 수 있는 경우 원하는 만큼 호출할 수 있으며 인증을 사용하더라도 모든 호출에 대해 여전히 요금이 부과됩니다. Scheduler 외에는 (이상적으로는) 다른 사람이 URL에 접근할 수 없도록 하여 내 일정을 제외하고는 URL이 실행되지 않도록 하고 싶습니다. 이것을 가능하게 하는 방법이 있나요?

답변1

공식 문서에 따르면:

Cloud Scheduler를 사용하려면 Cloud 프로젝트에 지원되는 지역 중 하나에 있는 App Engine 앱이 포함되어 있어야 합니다. 프로젝트에 App Engine 앱이 없으면 앱을 만들어야 합니다.

Cloud 스케줄러 개요

따라서 다음을 실행하여 App Engine 애플리케이션의 위치를 ​​찾으세요.

gcloud app describe
#check for the locationId: europe-west2

그런 다음 Ingress 설정을 사용하여 앱 엔진 애플리케이션과 동일한 위치에 "내부 트래픽만 허용"하도록 클라우드 기능을 배포했는지 확인하세요.

내 앱 엔진 애플리케이션과 동일한 지역에 클라우드 기능을 배포했는데 모든 것이 예상대로 작동했습니다.

관련 정보