인증 토큰 누락
TL;DR — "인증 토큰 누락"은 요청에 자격 증명이 없거나 AWS가 인식하지 못하는 엔드포인트/메서드에 도달했음을 의미합니다. 존재하지 않는 경로에 대한 요청이나 지원되지 않는 HTTP 메서드에 대한 요청은 404가 아닌 이를 반환합니다. DynamoDB의 경우 거의 항상 잘못된 엔드포인트 URL이거나 서명되지 않은 요청입니다.
무엇을 의미하는가
{"message":"Missing Authentication Token"}AWS의 SigV4 문제 해결 가이드는 첫 번째 원인에 대해 직설적으로 설명합니다. API 요청이 서명되지 않은 경우 Missing Authentication Token을 받을 수 있습니다. 직관과는 반대로 경로나 HTTP 메서드가 어떤 경로와도 일치하지 않는 경우 API 게이트웨이 스타일 엔드포인트(HTTP 403)에서도 동일한 메시지가 반환됩니다. AWS는 라우팅할 수 없는 요청에서 인증을 찾아 "찾을 수 없음" 대신 누락된 토큰을 보고합니다. DynamoDB 자체에서 인증 헤더가 누락되었거나 형식이 잘못된 요청을 거부하는 경우 예외는 MissingAuthenticationTokenException - 재시도할 수 없는 HTTP 400이며 "요청에는 유효한(등록된) AWS 액세스 키 ID가 포함되어야 합니다."라는 메시지가 표시됩니다.
왜 발생하는가
- 잘못된 엔드포인트 URL — 서비스 루트에 대한 적절하게 서명된 SDK 호출 대신 브라우저에서 또는 일반 GET을 사용하여
https://dynamodb.<region>.amazonaws.com/some/path에 도달합니다. - 서명되지 않은 요청 — SigV4
Authorization헤더가 없는 원시curl/fetch(일반적으로 SDK에서 추가함). - 잘못된 HTTP 메서드 — DynamoDB의 API는 작업 이름을 지정하는
X-Amz-Target헤더와 함께POST~/를 예상합니다. 다른 셰이프는 서명된 작업으로 인식되지 않습니다. - 오타된 사용자 지정 엔드포인트 — DynamoDB 서비스에 해당하지 않는 URL을 가리킵니다.
- 액세스 키가 구성되지 않은 DynamoDB 로컬 — SDK에서는 로컬에서도 액세스 키와 리전 값을 설정해야 합니다(모든 값이 작동하며 로컬에서는 이를 사용하여 데이터베이스 파일 이름을 지정합니다).
어떻게 해결하는가
- 원시 HTTP 호출이 아닌 AWS SDK를 사용하십시오. SDK가 올바른
X-Amz-Target로 서명된POST를 빌드하도록 하고 URL을 직접 작성하지 마십시오. - 경로가 아닌 서비스 루트(
https://dynamodb.<region>.amazonaws.com)를 가리키고 클라이언트의 지역을 일치하도록 설정합니다. - 자격 증명이 구성되었는지 확인하여 SDK가 실제로 요청(환경 변수, 프로필 또는 역할)에 서명하도록 합니다.
- DynamoDB Local의 경우 엔드포인트를
http://localhost:8000로 설정하고 SDK가 정상적으로 서명하도록 더미 액세스 키/비밀(문자 및 숫자만)을 구성합니다. Local에서는 유효성을 검사하지 않습니다.
재현하기
Authorization 헤더가 전혀 없는 올바른 형식의 DynamoDB 요청을 보냅니다.
import requests
requests.post(
'https://dynamodb.us-east-1.amazonaws.com',
headers={
'X-Amz-Target': 'DynamoDB_20120810.ListTables',
'Content-Type': 'application/x-amz-json-1.0',
},
data='{}',
)실제 출력:
MissingAuthenticationTokenException: Request is missing Authentication Token
HTTP 400SDK를 통해 이 메시지가 언제 도달하는지 알아 둘 필요가 있습니다. 이는 일반적으로 자격 증명이 잘못되었다는 의미가 아니라 요청에 서명되지 않았음을 의미합니다. 서명되지 않은 요청은 직접 HTTP 호출, 헤더를 제거하는 프록시 또는 IAM 인증을 기대하는 API 게이트웨이 경로에서 얻는 것이므로 키보다는 요청이 어떻게 구축되었는지 살펴보세요.
DynoTable + Local
DynoTable은 AWS SDK를 통해 모든 DynamoDB 호출에 서명합니다. 직접 작성하지 않습니다.
Authorization 헤더(Connect an AWS account). 에 대한
DynamoDB Local, 엔드포인트가 http://localhost:8000인 프로필을 추가하고
요청이 정상적으로 서명되도록 하는 자리 표시자 자격 증명 로컬은 키를 무시합니다.
값이 있지만 여전히 필요합니다(Running DynamoDB Local).
실제 AWS에 대해 이 내용이 표시되면 설정 → 프로필 지점을 확인하세요.
지역 엔드포인트를 수정하고 열기 전에 연결 테스트가 성공했는지 확인합니다.
테이블. DynamoDB Expression Builder
엔드포인트가 정확하면 서명된 요청이 작동하는지 확인합니다.
관련 오류
- Unable to locate credentials — SDK에서 자격 증명을 전혀 찾을 수 없습니다.
- The security token included in the request is invalid — 자격 증명이 있지만 거부되었습니다.
- Could not connect to the endpoint URL — 형식이 잘못되었거나 도달할 수 없는 끝점입니다.
- 학습: Connect to DynamoDB Local & LocalStack
출처
- Troubleshoot Signature Version 4 signing for AWS API requests — IAM User Guide (2026-07-13 인증)
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide (2026-07-13 인증)
- Create a signed AWS API request — IAM User Guide (2026-07-13 인증)
- DynamoDB local usage notes — Amazon DynamoDB Developer Guide (2026-07-13 인증)
us-east-1의 라이브 DynamoDB 서비스에 대해 2026년 7월 26일 재현 — 위 출력은 그대로입니다.