gpt4 book ai didi

java - 用于读取/写入存储桶中的文件的 aws 策略

转载 作者:行者123 更新时间:2023-12-01 08:47:12 24 4
gpt4 key购买 nike

我有以下 s3 结构:

存储桶名称:test-bucket

文件:test.json

我有以下 AWS 政策:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:PutObject",
"Action": "s3:GetObject",
"Action": "s3:DeleteObject",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::test-bucket"
}
]
}

此策略附加到访问 key 为 123 的用户。

当我尝试使用 sdk 将 test.json 放入或获取 test-bucket 时,如下所示:

BasicAWSCredentials awsCreds = new BasicAWSCredentials("123", "secretKeyId");
s3Client = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.withRegion("US-EAST-1")
.build();
s3Client.putObject(new PutObjectRequest("test-bucket", "test.json", file));

这会导致访问拒绝问题。

如果我将策略的资源更改为

 "Resource": "*"

然后就可以了。我只是想确保我放置的资源格式正确。出了什么问题?

最佳答案

您需要让亚马逊知道,除了您的存储桶之外,您还想访问您的存储桶中的内容。

因此更改资源:

"Resource": "arn:aws:s3:::test-bucket"

类似于:

"Resource": [
"arn:aws:s3:::test-bucket",
"arn:aws:s3:::test-bucket/*"
]

关于java - 用于读取/写入存储桶中的文件的 aws 策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42605497/

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