AWS API Gateway를 통해 Lambda 함수를 호출하려고합니다. 인증 유형 NONE을 언급하면 제대로 작동하지만 API가 공개되고 URL이있는 모든 사용자가 내 API에 액세스 할 수 있습니다. API 호출을 안전하게 만들기 위해 인증 유형 AWS_IAM을 사용하고 있으며 AmazonAPIGatewayInvokeFullAccess 정책을 사용자에게 연결했지만이 오류가 발생합니다.
{ message: "Missing Authentication Token"}
내가 여기서 무엇을 놓치고 있는지 모르겠습니다.
답변
API 링크에 직접 액세스하려고하는 것 같습니다. API가 IAM 역할을 사용하여 보호되고 AWS 인증, 즉 액세스 키 및 비밀 키를 제공해야하기 때문에 작동하지 않습니다.
Postman Chrome 확장 프로그램을 사용하여 API를 테스트하십시오.
http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-use-postman-to-call-api.html
답변
어리석은 이유로 시간을 잃었습니다.
단계를 만들 때 표시된 링크에는 URL의 리소스 부분이 포함되지 않습니다.
API URL :
https://1111.execute-api.us-east-1.amazonaws.com/dev
API + 리소스 URL
https://1111.execute-api.us-east-1.amazonaws.com/dev/get-list
/ 얻을 목록은 실종됐다
물론 메서드 구성이 다음과 같은지 확인해야합니다.
답변
방금 동일한 문제가 발생했으며 리소스를 찾을 수없는 경우에도이 메시지가 표시되는 것 같습니다.
제 경우에는 API를 업데이트했지만 재배포하는 것을 잊었습니다. 업데이트 된 API를 내 스테이지에 배포 한 후 문제가 해결되었습니다.
답변
(2019 년 4 월 현재) AWS API Gateway는 다양한 이유로이 예외를 throw합니다. 대부분 API Gateway가 배포되지 않았거나 특정 상황이 발생하여 도달 할 수없는 엔드 포인트에 도달 할 때 HTTP 메서드는 지원되지 않습니다.
게이트웨이가 일반 HTTP 403 금지 대신 HTTP 405 메서드가 지원되지 않거나 HTTP 404를 찾을 수 없음과 같은 더 적절한 오류 코드를 보내길 바랍니다.
답변
스테이지 트리에서 특정 리소스를 먼저 클릭해야합니다. 그러면 URL 이 리소스에 대한 전체 경로 (루트 경로가 아닌) 로 채워집니다 .
다른 원인은 http://www.awslessons.com/2017/aws-api-gateway-missing-authentication-token/을 참조하십시오 .
답변
답변
문서에서 이것을 찾았습니다.
AWS_IAM 권한이 사용 된 경우 서명 버전 4 프로토콜을 사용하여 요청에 서명합니다.
API 용 SDK를 생성 할 수도 있습니다.
API Gateway에서 API 용 SDK를 생성하는 방법
선택한 플랫폼 용 SDK를 생성 한 후 6 단계에서는 AWS 자격 증명을 사용하는 경우 API에 대한 요청이 서명 될 것이라고 언급합니다.
-
AWS 자격 증명으로 API Gateway 생성 SDK를 초기화하려면 다음과 유사한 코드를 사용하십시오. AWS 자격 증명을 사용하는 경우 API에 대한 모든 요청이 서명됩니다. 즉, 각 요청에 대해 적절한 CORS Accept 헤더를 설정해야합니다.
var apigClient = apigClientFactory.newClient({ accessKey: 'ACCESS_KEY', secretKey: 'SECRET_KEY', });
