Could not load credentials from any providers

요약 — AWS SDK for JavaScript v3가 전체 기본 자격 증명 체인 — 환경 변수, SSO, 공유 config/credentials 프로필, 웹 자격 증명, 컨테이너/인스턴스 메타데이터 엔드포인트 — 을 훑었지만 어느 것도 자격 증명을 만들어내지 못했습니다. 체인이 찾을 수 있는 소스를 주거나(환경 변수, aws configure, 연결된 역할), 클라이언트에 credentials를 명시적으로 전달하세요 — DynamoDB Local의 경우 어차피 더미 값이어야 합니다.

무엇을 의미하나요

CredentialsProviderError: Could not load credentials from any providers

모든 DynamoDB 요청은 SigV4로 서명되어야 하므로, 첫 호출 전에 SDK는 프로바이더 체인을 통해 자격 증명을 해석합니다. 이 오류는 체인의 "아무것도 찾지 못함" 결과입니다 — DynamoDB에 대한 네트워크 호출 전에 발생하며, boto3의 Unable to locate credentials에 해당하는 JS v3 등가물입니다. 권한 문제가 아니며(그건 AccessDeniedException일 것입니다) — 식별자가 아예 없습니다.

왜 발생하나요

  • 어디에도 자격 증명이 구성되지 않음 — 환경에 AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY가 없고, ~/.aws/credentials도 없고, 역할도 없습니다.
  • [default] 프로필이 존재하지 않음 — 이름 있는 프로필만 있는데 AWS_PROFILE이 설정되지 않아 체인이 [default]를 찾고 아무것도 못 찾습니다.
  • 프로세스가 셸의 환경을 보지 못함 — 내보낸 변수를 상속하지 않는 서비스 관리자, cron 작업, 컨테이너, 또는 IDE 실행.
  • 런타임에 연결된 역할 없음 — 예상한 IAM 역할이 없는 ECS 작업, EC2 인스턴스, 또는 Lambda여서 메타데이터 프로바이더가 아무것도 반환하지 않습니다.
  • 부하 시 간헐적: IMDS 스로틀링 — EC2 인스턴스 메타데이터 서비스를 두드리는 고동시성 워크로드가 자격 증명 가져오기를 산발적으로 실패할 수 있습니다(이 오류가 "무작위로" 나타나는 알려진 원인).
  • 식별자 소스가 없는 브라우저 코드 — 프런트엔드 호출에는 Cognito Identity Pool(또는 유사) 자격 증명이 필요합니다. 브라우저에는 주변 체인이 없습니다.

어떻게 고치나요

  1. 하나의 자격 증명 소스를 골라 처음부터 끝까지 검증하세요. 가장 빠른 확인: 코드를 실행하는 같은 환경(같은 사용자, 같은 컨테이너)에서 aws sts get-caller-identity.

  2. 로컬 개발: aws configure([default] 작성), 또는 이름 있는 프로필만 사용할 때 AWS_PROFILE=myprofile 설정.

  3. DynamoDB Local / LocalStack: 체인에 의존하지 말고 엔드포인트와 함께 명시적 더미 자격 증명을 전달하세요:

    import {DynamoDBClient} from '@aws-sdk/client-dynamodb';
    
    const client = new DynamoDBClient({
      region: 'local',
      endpoint: 'http://localhost:8000',
      credentials: {accessKeyId: 'local', secretAccessKey: 'local'}
    });
  4. AWS 런타임에서는 역할을 연결하세요 — 키를 배포하는 대신 EC2의 인스턴스 프로필, ECS/Fargate의 작업 역할, Lambda의 실행 역할.

  5. EC2의 고동시성 상황에서는 클라이언트를 한 번(모듈 범위) 생성해 요청마다 다시 가져오지 않고 자격 증명이 해석되고 캐시되도록 하세요. SDK 재시도와 공유 클라이언트가 IMDS 딸꾹질을 흡수합니다.

  6. SDK v2와 v3 자격 증명 설정을 섞지 마세요 — 코드가 실제로 import하는 SDK를 구성하세요.

자격 증명이 해석되면 데이터를 살펴보는 것이 전체 파이프라인을 확인하는 가장 빠른 방법입니다 — DynoTable 데스크톱 앱은 AWS 프로필(및 DynamoDB Local)로 연결하고 테이블을 즉시 보여줍니다. 첫 쿼리를 작성하나요? DynamoDB Expression Builder로 시작하세요.

관련 오류

References

공식 AWS 문서(위 링크)를 기준으로 2026-07-13에 마지막으로 검증되었습니다.

Console 없이 DynamoDB 작업하기

DynoTable은 DynamoDB를 위한 빠른 데스크톱 클라이언트입니다 — 테이블을 탐색하고, SQL 스타일 쿼리를 실행하고, 항목을 로컬에서 편집하세요.