GCP

Cloud Functions 에서 VPC 내부 리소스 접근

misankim 2023. 5. 12. 23:17

Cloud Functions 에서 VPC 내부 리소스 접근

 

 

작동 방식

https://cloud.google.com/vpc/docs/serverless-vpc-access?hl=ko

 

가이드 - 공유 VPC 네트워크에 연결 - 구성 방법 비교

https://cloud.google.com/functions/docs/networking/connecting-shared-vpc?hl=ko#comparison_of_configuration_methods

 

가이드 - 공유 VPC 호스트 프로젝트에서 커넥터 구성

https://cloud.google.com/functions/docs/networking/shared-vpc-host-project?hl=ko

 

 

1. 호스트 프로젝트에 서버리스 vpc 커넥터 생성

 

gcloud 업데이트

gcloud components update

 

Serverless VPC Access API 활성화

gcloud services enable vpcaccess.googleapis.com

 

gcloud compute networks vpc-access connectors create my-serverless-conn \
--region=asia-northeast3 \
--network=test-network \
--range=10.0.0.32/28 \
--subnet-project=my-project

 

 

2. gcf 서비스 에이전트에게 서버리스 vpc 커넥터 권한 부여

 

권한을 부여할 대상

service-[프로젝트 넘버]@gcf-admin-robot.iam.gserviceaccount.com

 

부여할 권한

서버리스 VPC 액세스 사용자(roles/vpcaccess.user)

 

gcf 서비스 활성화

gcloud services enable cloudfunctions.googleapis.com --project=my-project

 

프로젝트 넘버 확인

gcloud projects describe my-project

 

gcloud projects add-iam-policy-binding my-project \
--member=serviceAccount:service-123412341234@gcf-admin-robot.iam.gserviceaccount.com \
--role=roles/vpcaccess.user

 

 

3. gcf 를 배포할 사용자에게 서버리스 vpc 커넥터 권한 부여

 

gcloud projects add-iam-policy-binding my-project \
--member=group:test@example.com \
--role=roles/vpcaccess.viewer

 

 

4. 서버리스 vpc 커넥터를 사용하도록 설정하여 새 함수를 배포하거나 기존 함수를 수정 

 

CONNECTOR_NAME="projects/my-project/locations/asia-northeast3/connectors/my-serverless-conn"
gcloud functions deploy [함수 이름] --vpc-connector=${CONNECTOR_NAME} --추가로 필요한 플래그...