API Gateway REST API 엔드포인트 403 “Missing Authentication Token” 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

Amazon API Gateway REST API를 간접 호출하려고 했더니 403 “Missing Authentication Token” 오류 메시지가 나타났습니다.

간략한 설명

API Gateway REST API 엔드포인트는 다음과 같은 이유로 인증 토큰 누락 오류를 반환합니다.

  • 존재하지 않는 작업 또는 리소스에 대한 API 요청입니다.
  • API 작업에 대해 AWS Identity and Access Management(IAM) 인증이 켜진 경우 API 요청이 서명되지 않습니다.
  • 수정된 게이트웨이 응답으로 API를 구성하거나 백엔드 통합에서 응답을 받을 수 있습니다.

API Gateway의 다른 403 오류를 해결하려면 API 게이트웨이의 HTTP 403 오류를 해결하려면 어떻게 해야 하나요?를 참조하세요.

해결 방법

API Gateway 리소스 경로에 구성된 작업 및 리소스가 있는지 확인

API Gateway 콘솔을 사용하여 메서드 설정의 지침을 따르십시오. 자세한 내용은 API 리소스 설정을 참조하십시오.

중요: 변경 사항을 적용하려면 API를 배포해야 합니다.

요청이 루트 리소스로 전송되는 프록시 리소스 통합이 포함된 API의 경우 루트 리소스 아래에 구성된 작업이 있는지 확인합니다.

API Gateway 응답이 수정되지 않고 백엔드 통합에서 응답을 전송하지 않았는지 확인

게이트웨이 응답이 해당 API에서 수정되지 않았는지 확인합니다. 또한 통합 백엔드에서 오류가 발생하지 않는지 확인합니다. API Gateway 실행 로그와 백엔드 로그를 확인합니다.

IAM 인증이 활성화되어 있을 때 API 요청이 서명되었는지 확인

자세한 내용은 API 요청을 위한 AWS Signature Version 4AWS API 요청 서명 요소를 참조하십시오.

REST API 엔드포인트에 올바른 HTTP 작업 요청을 전송했는지 확인

웹 브라우저에서 REST API 엔드포인트를 테스트하여 GET HTTP 작업 요청을 자동으로 전송합니다.

POST HTTP 작업 요청을 테스트하려면 다른 HTTP 클라이언트를 사용하십시오. 예를 들어 Postman 웹 사이트에서 Postman을 사용하거나 curl 웹 사이트에서 curl을 사용합니다.

POST HTTP 메서드 요청을 사용하는 curl 명령의 예

curl -X POST  API URL -d request body

JSON 헤더를 사용한 요청 전송의 예

curl --location -X POST 'https://1234WXYZ.execute-api.your-aws-region.amazonaws.com/stage/lambda_proxy' --header 'Content-Type: application/json' --data-raw '{"x":"y"}'

AWS V4 서명 인증을 사용하여 curl POST 요청을 보내는 예

curl -X POST "ENDPOINT" -d data --user AWS_ACCESS_KEY:AWS_SECRET_KEY --aws-sigv4 "aws:amz:AWS_REGION:AWS_SERVICE"
curl -X POST "https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy" -d '{"x":"y"}' --user ABCD:1234 --aws-sigv4 "aws:amz:your-aws-region:execute-api"

관련 정보

API Gateway REST API에 대한 IAM 인증을 활성화하려면 어떻게 해야 합니까?