API Gateway에서 HTTP API CORS 구성 - Amazon API Gateway

API Gateway에서 HTTP API CORS 구성

CORS(Cross-Origin Resource Sharing)는 브라우저에서 실행 중인 스크립트에서 시작되는 HTTP 요청을 제한하는 브라우저 보안 기능입니다. API에 액세스할 수 없고 Cross-Origin Request Blocked가 포함된 오류 메시지를 수신하는 경우 CORS를 활성화해야 할 수 있습니다. 자세한 내용은 CORS란 무엇인가요?를 참조하세요.

CORS는 일반적으로 다른 도메인이나 오리진에 호스팅된 API에 액세스하는 웹 애플리케이션을 빌드하는 데 필요합니다. CORS를 활성화하여 다른 도메인에 호스팅된 웹 애플리케이션에서 API에 대한 요청을 허용할 수 있습니다. 예를 들어, API가 https://{api_id}.execute-api.{region}.amazonaws.com/에 호스팅되고 example.com에 호스팅된 웹 애플리케이션에서 API를 호출하려는 경우 API가 CORS를 지원해야 합니다.

API에 대해 CORS를 구성하면 API Gateway는 API에 대해 구성된 OPTIONS 경로가 없더라도 preflight OPTIONS 요청에 대한 응답을 자동으로 전송합니다. CORS 요청의 경우 API Gateway는 구성된 CORS 헤더를 통합의 응답에 추가합니다.

참고

API에 대해 CORS를 구성하는 경우, API Gateway는 백엔드 통합에서 반환된 CORS 헤더를 무시합니다.

CORS 구성에서 다음과 같은 매개 변수를 지정할 수 있습니다. API Gateway HTTP API 콘솔을 사용하여 이러한 파라미터를 추가하려면 값을 입력한 후 추가를 선택합니다.

CORS 헤더 CORS 구성 속성 예제 값

Access-Control-Allow-Origin

allowOrigins

  • https://www.example.com

  • *( 모든 오리진 허용)

  • https://*( https://로 시작하는 모든 오리진 허용)

  • http://*( http://로 시작하는 모든 오리진 허용)

Access-Control-Allow-Credentials

allowCredentials

true

Access-Control-Expose-Headers

exposeHeaders

Date, x-api-id, *

Access-Control-Max-Age

maxAge

300

Access-Control-Allow-Methods

allowMethods

GET, POST, DELETE, *

Access-Control-Allow-Headers

allowHeaders

Authorization, *

CORS 헤더를 반환하려면 요청에 origin 헤더가 포함되어야 합니다.

CORS 구성은 다음과 비슷할 수 있습니다.

HTTP API에 대한 CORS 구성

$default 라우팅 및 권한 부여자가 포함된 HTTP API에 CORS 구성

CORS를 활성화하고 HTTP API의 모든 라우팅에 대한 권한 부여를 구성할 수 있습니다. $default 라우팅에 대한 CORS 및 권한 부여를 활성화하는 경우 고려할 몇 가지 사항이 있습니다. $default 라우팅은 OPTIONS 요청을 포함하여 명시적으로 정의되지 않은 모든 메서드 및 라우팅에 대한 요청을 포착합니다. 권한 부여되지 않은 OPTIONS 요청을 지원하려면 OPTIONS /{proxy+} 라우팅을 권한 부여가 필요하지 않은 API에 추가하고 통합을 라우팅에 연결합니다. OPTIONS /{proxy+} 라우팅이 $default 라우팅보다 우선 순위가 높습니다. 따라서 클라이언트가 권한 부여 없이 API에 OPTIONS 요청을 제출할 수 있습니다. 라우팅 우선 순위에 대한 자세한 내용은 API 요청 라우팅 단원을 참조하세요.

AWS CLI를 사용하여 HTTP API에 대한 CORS 구성

다음 update-api 명령을 사용하여 https://www.example.com의 CORS 요청을 활성화할 수 있습니다.

aws apigatewayv2 update-api --api-id api-id --cors-configuration AllowOrigins="https://www.example.com"

자세한 내용은 Amazon API Gateway 버전 2 API 참조의 CORS를 참조하세요.