"EC2 인스턴스 메타데이터 서비스에서 IAM 보안 자격 증명을 가져올 수 없습니다" 오류가 로컬 DynamoDB에 연결할 때 발생합니다

NoSQL Workbench를 다운로드하고 설치한 후, 로컬 DynamoDB 인스턴스를 활성화하고 테스트용 데이터 모델과 Table1이라는 테스트 테이블을 로컬 머신에 생성했습니다. 간단한 콘솔 앱이 있고, 아래 샘플 코드를 포함하고 있습니다:

AmazonDynamoDBConfig clientConfig = new AmazonDynamoDBConfig();
clientConfig.ServiceURL = "http://localhost:8000";
var client = new AmazonDynamoDBClient(clientConfig);
var table = Table.LoadTable(client, "Table1"); // <-- 이 줄에서 충돌 발생

var newEntry = new Document();
newEntry["ID"] = Guid.NewGuid().ToString();
newEntry["TelephoneNumber"] = "15";

table.PutItemAsync(newEntry).GetAwaiter().GetResult();

LoadTable 호출 시 "EC2 인스턴스 메타데이터 서비스에서 IAM 보안 자격 증명을 가져올 수 없습니다"라는 예외가 발생합니다. 이 DynamoDB 인스턴스는 새로 다운로드 및 설치한 것이며, 자격 증명은 설정하지 않았고 기본 설치 옵션을 그대로 사용했습니다. 이 애플리케이션은 .NET Core 콘솔 앱입니다.

인터넷 검색으로는 해결책을 찾을 수 없었습니다. 누군가 도와주실 수 있을까요? 이 테스트 앱의 목적은 AWS 서비스에 연결하는 것이 아니라, 단지 로컬 인스턴스에 연결하는 것입니다.

당신은 로컬 머신에서 DynamoDB Local을 실행하고 있지만, EC2에서 자격 증명 예외가 발생하는데, 혹시 EC2에서 실행 중인 코드가 어떻게 VM과 통신하는지 알고 계신지요?

로컬에서 실행 중이므로 실제로 자격 증명이 사용되지 않기 때문에 더미 자격 증명을 사용할 수 있습니다.

var credentials = new BasicAWSCredentials("fakeMyKeyId", "fakeSecretAccessKey");

클라이언트를 초기화하고 자격 증명을 다음과 같이 전달하세요:

var client = new AmazonDynamoDBClient(credentials, clientConfig);