본문 바로가기
개발 및 운영/AWS GCP Cloud

[AWS] VPC 내에서 API Gateway 호출 시 Forbidden

by Joseph.Lee 2021. 11. 17.

 문제의 발단은 VPC에 속한 Lambda에서 Regional API Gateway 에 접근하지 못하는 문제가 발생하였다. 이후 이리 저리 확인하다가 해당 VPC에 있는 EC2 에서도 동일한 문제가 있다는 것을 확인하였다.

 

 분명 API Gateway 를 위한 VPC Endpoint 도 생성하였고, FAQ에 나와있는 것처럼 Private DNS Names 을 활성화하고 기존과 같이 접근하거나, VPCE IP로 Host 헤더나 x-apigw-api-id 헤더를 포함해도 VPC 내부에서 API Gateway 의 모든 요청이 Forbidden 으로 거부되었다. (당연히 API Key 사용은 비활성화 했다.)찬가지였다.

 

Public Network (AWS 밖) 에서는 잘 접속 되는 것이 왜 VPC 내부에서는 접속되지 않는지 당췌 이해가 되지 않았다.

 

AWS Knowledge에도 해당 내용이 있었다.

 

https://aws.amazon.com/ko/premiumsupport/knowledge-center/api-gateway-vpc-connections/

 

Amazon VPC에서 API Gateway API에 연결할 때 발생하는 403 Forbidden 오류 수정

Internet Explorer에 대한 AWS 지원이 07/31/2022에 종료됩니다. 지원되는 브라우저는 Chrome, Firefox, Edge 및 Safari입니다. 자세히 알아보기

aws.amazon.com

(근데 뭔말인지;;;)

 

https://dulajra.medium.com/how-to-create-a-vpc-endpoint-for-api-gateway-a84bc7eeba28 이걸 보고 리소스 정책을 수정해 보았지만 여전히 동작하지 않았다.

 

지금까지 찾은 방법은 단 하나이다. 바로 API Gateway의 Endpoint 유형을 "Regional"이 아닌 "Private" 으로 바꾸는 것이다.

 

이후 VPCE 의 Private DNS Names 가 Disabled 상태에서는 "https://{rest-api-id}-{vpce-id}.execute-api.{region}.amazonaws.com/{stage}" 형태의 URL 에서 동작이 정상적으로 이루어졌다.

Private DNS Names 가 Enabled 상태에서는 기존의 도메인 "https://{rest-api-id}.execute-api.{region}.amazonaws.com" 형태에서도 동작하였다.

반응형

댓글