Spring Boot 访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:访问被拒绝

muk1a3rh  于 2023-02-22  发布在  Spring
关注(0)|答案(2)|浏览(590)

在一个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);
    }
b1zrtrql

b1zrtrql1#

official guide to explicitly specifying credentials in Java之后,您不需要在示例化凭据时指定区域。
还要检查您为其创建密钥对的用户的权限,ListBuckets API至少需要s3:ListAllMyBuckets权限,如here所述。

tcbh2hod

tcbh2hod2#

我通过在权限策略面板上添加权限AmazonS3FullAccess解决了这个问题,并重新启动了Sping Boot ,一切正常。

相关问题