java - AWS DynamoDB 中的 AccessDeniedException

标签 java android amazon-dynamodb

我是 amazon Dynamo DB 的新手。我收到访问被拒绝异常。
请帮助我摆脱这个困境。

错误:

User: arn:aws:sts::xx:assumed-role/Cognito_SampleUnauth_Role/CognitoIdentityCredentials is not authorized to perform: dynamodb:DescribeTable on resource: arn:xxx

最佳答案

首先确保您所担任的角色有权访问 DynamoDB。

如果您从笔记本电脑而不是在 EC2/Beanstalk 上运行应用程序,请确保设置 STS 凭证 ( http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-cli.html )。

要从假定角色接收凭据,您可以使用以下命令:

public Credentials getCredentialsFromAssumedRole() {
        AWSSecurityTokenService awsSecurityTokenService = AWSSecurityTokenServiceClientBuilder.defaultClient();
        AssumeRoleRequest assumeRequest = new AssumeRoleRequest()
                .withRoleArn("arn:aws:iam::XX:role/assume-role-DynamoDB-ReadOnly")
                .withDurationSeconds(3600)
                .withRoleSessionName("assumed-role-session");

        AssumeRoleResult assumeResult = awsSecurityTokenService.assumeRole(assumeRequest);
        Credentials credentials = assumeResult.getCredentials();
        return credentials;
    }

之后您可以创建 DynamoDBMapper 实例:

AmazonDynamoDB amazonDynamoDB = new AmazonDynamoDBClient(amazonAWSCredentials);
        amazonDynamoDB.setEndpoint(amazonDynamoDBEndpoint);
        amazonDynamoDB.setRegion(Region.getRegion(Regions.valueOf(amazonAWSRegion)));
        return new DynamoDBMapper(amazonDynamoDB);

使用 DynamoDBMapper,您可以执行如下 CRUD 操作:

dynamoDBMapper.save(entity);
dynamoDBMapper.load(Entity.class, entityId);

@karthik,你之前做的是否相似?请发布您的代码以了解出了什么问题。

关于java - AWS DynamoDB 中的 AccessDeniedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691817/

相关文章:

java - 在 Qt 上使用 java 函数

android - 如何在 Android 中执行点击操作后从通知发送 Toast?

安卓应用隐私政策

node.js - 任何人都可以提供一个 dynamodb 文档客户端 upsert 的例子吗?

java - Dynamodb : UpdateItemSpec : Multiple Update Expression - Not Working

java - Hibernate保存和SQL插入有什么区别?

java - 如何在 AsynchronousSocketChannel 上正确同步并发读取和写入

java - Selenium 化物 SLF4J : Failed to load class "org.slf4j.impl.StaticLoggerBinder" error. 有什么想法吗?

android - 在电子邮件中制作表格同时在电子邮件中制作备份

amazon-web-services - 在 aws 上将 boto3 用于 dynamoDB 时出现 InvalidSignatureException