VPC에서 API Gateway API에 연결할 때 HTTP 403 Forbidden 오류가 발생하는 이유는 무엇입니까?

최종 업데이트 날짜: 2022년 6월 17일

Virtual Private Cloud(VPC)에서 Amazon API Gateway API를 호출하면 HTTP 403 Forbidden 오류가 발생합니다. 이유가 무엇입니까?

간략한 설명

이 HTTP 403 Forbidden 오류는 VPC와 연결된 API Gateway 인터페이스 VPC 엔드포인트에 대해 프라이빗 DNS가 활성화된 경우 가장 일반적으로 발생합니다. 이 시나리오에서는 VPC에서 API Gateway API로 전송되는 모든 요청은 해당 인터페이스 VPC 엔드포인트로 확인됩니다. 그러나 VPC 엔드포인트를 사용하여 퍼블릭 API에 연결할 수는 없습니다.

VPC 엔드포인트의 프라이빗 DNS 이름은 *.execute-api.<REGION>.amazonaws.com 형식입니다. 이 형식은 퍼블릭 및 프라이빗 API에 대한 API Gateway 기본 호출 URL과 일치합니다. 예를 들어 퍼블릭 API의 기본 호출 URL은 https://abcd1234.execute-api.us-east-1.amazonaws.com입니다. 여기서 abcd1234은 API ID이고 us-east-1은 API의 AWS 리전입니다.

프라이빗 DNS가 VPC 엔드포인트에서 활성화되면 API의 호출 URL은 프라이빗 DNS 이름 *.execute-api.us-east-1.amazonaws.com으로 보호되며, 여기서 *는 API ID의 자리 표시자입니다. VPC 내부에서 퍼블릭 API에 대한 DNS 쿼리가 확인되면 확인된 DNS는 퍼블릭 API의 퍼블릭 IP 대신 연결된 VPC 엔드포인트의 프라이빗 IP를 가리킵니다. 그런 다음 API 호출은 인터넷을 통해 라우팅되는 대신 VPC 엔드포인트를 통해 퍼블릭 API로 라우팅됩니다. VPC 엔드포인트는 프라이빗 API로만 트래픽을 라우팅할 수 있기 때문에 HTTP 403 오류가 발생합니다.

프라이빗 DNS가 인터페이스 VPC 엔드포인트에 대해 활성화되어 있지 않거나 VPC에 엔드포인트가 없는 경우 프라이빗 DNS가 활성화되지 않은 경우 퍼블릭 API에 연결 섹션으로 이동합니다.

해결 방법

VPC와 연결된 인터페이스 VPC 엔드포인트에 프라이빗 DNS가 활성화되어 있는지 확인

VPC를 확인하여 프라이빗 API에 액세스할 수 있는 인터페이스 VPC 엔드포인트가 있는지 확인합니다. 인터페이스 엔드포인트가 존재하는 경우 프라이빗 DNS 설정이 활성화되어 있는지 확인합니다. 자세한 내용은 VPC의 DNS 속성을 참조하세요.

프라이빗 DNS가 활성화된 퍼블릭 API에 연결

프라이빗 DNS가 활성화된 경우, 엣지 최적화 사용자 지정 도메인 이름 또는 리전 사용자 지정 도메인 이름을 설정하여 퍼블릭 API에 연결합니다.

중요: 퍼블릭 API에 연결하려는 VPC의 리소스는 인터넷에 연결되어 있어야 합니다. 또한, 리전 사용자 지정 도메인 이름에 대한 DNS 레코드를 구성할 때는 A 유형 별칭 레코드를 사용해야 합니다. 하지만 엣지 최적화 사용자 지정 도메인 이름을 사용하는 경우에는 A 유형 별칭 레코드 또는 CNAME 레코드를 사용합니다.

프라이빗 DNS가 활성화되지 않은 경우 퍼블릭 API에 연결

프라이빗 DNS가 인터페이스 VPC 엔드포인트에서 활성화되어 있지 않거나 Amazon Virtual Private Cloud(VPC) 구성에 엔드포인트가 없는 경우 다음 사항에 해당하는지 확인합니다.

퍼블릭 API에 액세스할 수 있는 권한이 VPC에 있는 경우 퍼블릭 DNS를 사용하여 퍼블릭 API에 연결합니다. 자세한 내용은 API Gateway의 REST API에 대한 액세스 제어 및 관리를 참조하세요.

(선택 사항) 인터페이스 VPC 엔드포인트에 대한 프라이빗 DNS 설정 변경

사용자는 언제든지 인터페이스 VPC 엔드포인트에 대한 프라이빗 DNS 설정을 변경할 수 있습니다. 이 설정을 변경할 경우 인터페이스 VPC 엔드포인트의 프라이빗 IP에 대한 API 단계 URL 분석에 영향을 줍니다.

참고: 프라이빗 DNS 설정을 변경하면 사용자가 VPC에서 프라이빗 API퍼블릭 API에 연결할 수 있는 방법이 영향을 받습니다.

  1. Amazon VPC 콘솔에서 엔드포인트 창을 엽니다.
  2. 인터페이스 VPC 엔드포인트를 선택합니다.
  3. 작업을 선택한 다음, 프라이빗 DNS 이름 수정을 선택합니다.
  4. 프라이빗 DNS 이름 활성화에서 이 엔드포인트에 대한 활성화 확인란을 선택하거나 선택 해제합니다.
  5. 프라이빗 DNS 이름 수정을 선택합니다.

자세한 내용은 VPC의 DNS 속성 보기 및 업데이트를 참조하세요.