2017-12-28 41 views
2
나는 말한다 AWS DynamoDB의에 오류가 발생하고

:봄 부팅 DynamoDB의 AWS 예외

[요청 처리가 실패; 중첩 예외는 입니다. com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException : 요청에 포함 된 보안 토큰이 유효하지 않습니다. (서비스 : AmazonDynamoDBv2, 상태 코드 : 400, 오류 코드 : UnrecognizedClientException, 요청 ID : VJ8R07B81ANC1047P1ANEDS4CRVV4KQNSO5AEMVJF66Q9ASUAAJG)] 루트 causecom.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException과 : 는 요청에 포함 된 보안 토큰이 잘못되었습니다. (서비스 : AmazonDynamoDBv2, 상태 코드 : 400, 오류 코드 : UnrecognizedClientException, 요청 ID : VJ8R07B81ANC1047P1ANEDS4CRVV4KQNSO5AEMVJF66Q9ASUAAJG)

실제 DynamoDB의 엔드 포인트와는 EC2 인스턴스에서 실행. 그러나 응용 프로그램을 실행하고 로컬 DynamoDB에서이를 가리키면 작동합니다.

누구든지 해결책을 찾았습니까? 감사.

여기에 나는 또한 응용 프로그램이 실제 DynamoDB의 엔드 포인트를 지적 실행 시도

@Configuration 
@EnableDynamoDBRepositories(basePackages = "**.****.***.repository") 
public class DynamoConfig { 

    @Value("${aws.secret.key}") 
    private String awsSecretKey; 

    @Value("${aws.access.key}") 
    private String awsAccessKey; 

    @Value("${aws.dynamodb.endpoint}") 
    private String awsDynamoDBEndpoint; 

    @Value("${aws.region}") 
    private String awsRegion; 

    @Bean 
    public AmazonDynamoDB amazonDynamoDB() { 
     AmazonDynamoDBClientBuilder amazonDynamoDB = AmazonDynamoDBClientBuilder.standard() 
       .withCredentials(new AWSStaticCredentialsProvider(amazonAWSCredentials())) 
       .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(awsDynamoDBEndpoint, awsRegion)); 

//  amazonDynamoDB.setSignerRegionOverride(Regions.fromName(awsRegion).getName()); 
//  if (!StringUtils.isEmpty(awsDynamoDBEndpoint)) { 
//   amazonDynamoDB.setEndpoint(awsDynamoDBEndpoint); 
//  } 
     return amazonDynamoDB.build(); 
    } 

    @Bean 
    public AWSCredentials amazonAWSCredentials() { 
     return new BasicAWSCredentials(awsAccessKey, awsSecretKey); 
    } 
} 

P.S, 나도 같은 오류가 발생하고 DynamoDB의

내 설정이다.

+0

Dynamo에 전화하는 데 사용하는 코드를 표시 할 수 있습니까? – TheOni

+0

안녕하세요, 내 설정을 볼 수 있도록 내 게시물을 편집했습니다. – kkeda

+0

코드가 잘된 것처럼 보입니다. 자격 증명을 만들 때 액세스 키와 암호 키가 잘되어 있는지 확인 했습니까? aws 설명서에 명시된 바와 같이 액세스 키 ID 또는 보안 토큰이 유효하지 않은 경우 UnrecognizedClientException이 발생합니다. – TheOni

답변

1

ec2 인스턴스에 대해 구성된 역할이있는 경우 Credentials 메서드 호출을 제거 할 수 있습니다.

자격 증명

이 순서대로 처리됩니다

  1. 코드 정의
  2. AWS 클라이언트 구성
  3. 선례에 아무도는 자격 증명을 사용하지 않는 것 발견하고 그것은 단지의 경우 허가 될 경우 인스턴스가 올바른 권한을 부여하는 iam 역할을 첨부했습니다.