【问题标题】:AmazonDynamoDBException - User Not AuthorizedAmazonDynamoDBException - 用户未授权
【发布时间】:2022-08-19 00:16:38
【问题描述】:

我正在尝试将 Spring Boot 与 DynamoDB 集成,似乎我遇到了访问被拒绝的问题。

这是我已经做过的

  • 创建了一个新用户
  • 创建了一个用户组并将用户分配到该组。
  • 创建了具有 dynamodb 访问权限的策略,作为 put、get 和 delete 的资源。
  • 将策略分配给用户组

我仍然无法理解为什么与 dynamodb 的编程连接会拒绝访问。

这是配置类的源代码。

public class DynamoDbConfig {

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

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

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

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

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

    public AWSCredentialsProvider amazonAWSCredentialsProvider(){
        return new AWSStaticCredentialsProvider(amazonAWSCredentials());
    }

    public AmazonDynamoDB amazonDynamoDB(){
        return AmazonDynamoDBClientBuilder.standard()
                .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(awsDynamoDBEndPoint, awsRegion))
                .withCredentials(amazonAWSCredentialsProvider())
                .build();
    }

    @Bean
    public DynamoDBMapper mapper(){
        return new DynamoDBMapper(amazonDynamoDB());
    }

已经检查了配置属性正在正确加载。

有什么我想念的吗?

任何帮助将不胜感激。

谢谢

    标签: amazon-web-services spring-boot amazon-dynamodb


    【解决方案1】:

    我找到了解决这个问题的方法。

    将 AWS 托管的完整 DynamoDB 访问策略附加到该组。出于开发或 POC 目的,这是可以的,但它是通过策略限制对资源的访问的最佳实践。

    这就是我为授予访问权限所做的事情

    "Action": [
                    "sns:Publish",
                    "dynamodb:*"
                ],
    

    【讨论】:

      猜你喜欢
      • 2020-06-08
      • 1970-01-01
      • 2017-06-12
      • 2015-10-21
      • 2019-03-07
      • 2018-11-19
      • 2023-03-12
      • 2015-10-27
      • 1970-01-01
      相关资源
      最近更新 更多