설명
SAM REST API의 공개 엔드포인트는 인터넷에서 요청을 받을 수 있습니다. 내부 전용 API라면 EndpointConfiguration의 Type을 PRIVATE로 설정해 VPC 엔드포인트를 통한 접근을 사용하세요.
잠재적 영향
내부용 API가 의도하지 않은 외부 호출 시도에 노출될 수 있습니다. 공개 엔드포인트 자체가 인증 없는 호출을 허용한다는 뜻은 아닙니다.
해결 방법
EndpointConfiguration.Type: PRIVATE를 설정하고 VPC 엔드포인트 및 API 리소스 정책으로 접근 범위를 제한하세요. VPCEndpointIds 연결은 호출용 DNS 별칭을 만들며 허용 목록을 대신하지 않습니다.
예시
예시는 SAM의 단일 Type 속성을 사용합니다. API 리소스 정책과 VPC 엔드포인트는 생략했으며 배포 시 함께 구성해야 합니다. 공개 서비스용 API는 요구사항에 맞는 공개 엔드포인트를 사용할 수 있습니다.
변경 전
yaml
Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
EndpointConfiguration:
Type: EDGE
변경 후
yaml
Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: prod
EndpointConfiguration:
Type: PRIVATE