在一个Sping Boot 项目中,我尝试获取bucket列表。我还没有bucket。错误如下:
Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied
我在一小时前创建了访问和密钥。我试着删除并重新创建,但没有机会。有什么丢失吗?
AWSCredentials credentials = new BasicAWSCredentials(
"myaccesskey",
"mysecretkey"
);
AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(Regions.US_EAST_1)
.build();
try{
List<Bucket> buckets = s3client.listBuckets();
for(Bucket bucket : buckets) {
response += bucket.getName();
}
} catch (Exception exception) {
System.out.print(exception);
}
2条答案
按热度按时间b1zrtrql1#
在official guide to explicitly specifying credentials in Java之后,您不需要在示例化凭据时指定区域。
还要检查您为其创建密钥对的用户的权限,ListBuckets API至少需要s3:ListAllMyBuckets权限,如here所述。
tcbh2hod2#
我通过在权限策略面板上添加权限AmazonS3FullAccess解决了这个问题,并重新启动了Sping Boot ,一切正常。