gpt4 book ai didi

java - AWS DynamoDB 中的 AccessDeniedException

转载 作者:行者123 更新时间:2023-11-29 19:12:46 24 4
gpt4 key购买 nike

我是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com