클라이언트가 사용자 지정 도메인 이름만 사용하여 내 API를 호출할 수 있도록 허용하고 싶습니다. Amazon API Gateway REST 또는 HTTP API에 대한 기본 API execute-api 엔드포인트 URL을 비활성화하려면 어떻게 해야 합니까?
간략한 설명
API 게이트웨이 REST API 및 HTTP API는 "https://{api_id}.execute-api.{region}.amazonaws.com" 형식의 기본 API 엔드포인트를 사용합니다. API Gateway REST 또는 HTTP API에 사용자 지정 도메인 이름을 사용하는 경우 기본 엔드포인트를 비활성화할 수 있습니다. 이렇게 하면 모든 트래픽이 사용자 지정 도메인 이름을 통해 API로 라우팅될 수 있습니다.
해결 방법
다음 단계에 따라 API 게이트웨이 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS CloudFormation을 사용하여 기본 엔드포인트를 비활성화합니다.
참고:
API Gateway 콘솔
REST API
- API Gateway 콘솔을 엽니다.
- 탐색 창에서 API를 선택하고 REST API를 선택합니다.
- 탐색 창에서 설정을 선택합니다.
- 기본 엔드포인트에서 Disabled를 선택한 다음 변경 내용 저장을 선택합니다.
- 탐색 창에서 리소스, 작업을 선택한 다음 API 배포를 선택합니다.
HTTP API
- API Gateway 콘솔을 엽니다.
- 탐색 창에서 API를 선택하고 HTTP API를 선택합니다.
- 탐색 창에서 설정을 선택합니다.
- 기본 엔드포인트에서 Disabled를 선택한 다음 변경 내용 저장을 선택합니다.
- 탐색 창에서 리소스, 작업을 선택한 다음 API 배포를 선택합니다.
AWS CLI
REST API
다음과 유사한 AWS CLI 명령 update-rest-api를 실행합니다.
aws apigateway update-rest-api --rest-api-id abcdef123 --patch-operations op=replace,path=/disableExecuteApiEndpoint,value='True'
업데이트된 API를 배포하려면 다음과 유사한 AWS CLI 명령 create-deployment를 실행합니다.
aws apigateway create-deployment --rest-api-id abcdef123 --stage-name dev
참고: api_id abcdef123 및 stage_name dev을 REST API ID 및 각 단계로 대체합니다.
HTTP API
다음과 유사한 AWS CLI 명령
update-api를 실행합니다.
aws apigatewayv2 update-api --api-id abcdef123 --disable-execute-api-endpoint
업데이트된 API를 배포하려면 다음과 유사한 AWS CLI 명령 create-deployment를 실행합니다.
aws apigatewayv2 create-deployment --api-id abcdef123 --stage-name dev
참고: api_id abcdef123 및 stage_name dev을 HTTP API ID 및 각 단계로 대체합니다.
CloudFormation 템플릿
CloudFormation 템플릿에서 기본 엔드포인트를 비활성화하려면 disableExecuteAPIendpoint 매개변수를 True로 설정할 수 있습니다. REST API 또는 HTTP API에 대한 CloudFormation 템플릿을 업데이트합니다.
중요: 기본 엔드포인트 URL을 사용하여 API를 호출하는 경우 기본 엔드포인트를 비활성화하면 HTTP 403 Forbidden 오류가 발생합니다.
관련 정보
API Gateway의 HTTP 403 오류를 해결하려면 어떻게 해야 합니까?