설명
API Gateway REST API의 EDGE·REGIONAL 엔드포인트는 인터넷에서 접근할 수 있는 API에 적합합니다. 내부 전용 API에 불필요한 공용 경로를 제공하면 외부의 탐색과 호출 시도에 노출될 수 있습니다.
공용 엔드포인트 자체가 익명 호출을 허용하는 것은 아닙니다. PRIVATE는 네트워크 접근 범위를 제한하며, API의 인증과 인가도 별도로 필요합니다.
잠재적 영향
- 내부용 경로나 기능이 외부의 호출 시도 대상이 될 수 있습니다.
- 인증이나 권한 검사가 부족하면 데이터 노출이나 기능 오남용으로 이어질 수 있습니다.
해결 방법
내부 전용 REST API에는 endpoint_type: PRIVATE를 사용하고 인터페이스 VPC 엔드포인트, DNS·연결 경로와 엔드포인트 보안 그룹을 구성하세요. API 리소스 정책도 필요한 VPC 또는 엔드포인트로 제한하세요. 전환 전에 승인된 클라이언트의 연결을 시험하고, 공개가 필요한 API는 적절한 인증·인가를 유지하세요.
예시
엔드포인트 유형을 비교하는 배포 발췌입니다. my_api.yml과 VPC 엔드포인트·리소스 정책은 생략되어 있습니다. 이미 운영 중인 API는 지원되는 전환 방법과 클라이언트 연결 영향을 확인하세요.
변경 전
yaml
- name: Setup AWS API Gateway
community.aws.aws_api_gateway:
swagger_file: my_api.yml
stage: production
endpoint_type: EDGE
state: present
EDGE 엔드포인트로 배포합니다. 인터넷 공개가 필요한 API에는 적합할 수 있지만 내부 전용 API라면 노출 범위를 다시 검토하세요.
변경 후
yaml
- name: Setup AWS API Gateway
community.aws.aws_api_gateway:
swagger_file: my_api.yml
stage: production
endpoint_type: PRIVATE
state: present
PRIVATE 엔드포인트로 배포합니다. 필요한 VPC 연결 경로와 리소스 정책을 구성해야 실제 클라이언트가 호출할 수 있습니다.