![](/img/trans.png)
[英]Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: xxxxxxxxxxxxx)
[英]AWS S3 Java Access Denied Service: Amazon S3; Status Code: 403; Error Code: AccessDenied;
AWS S3 的新手,尝试将 AWS Java SDK 集成到 S3 存储。 授予我的用户的权限如下
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Read Access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::9123...123:root"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::go_bucket/*"
}
]
}
仍在Java代码中
Received error response: com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 6DRTT
Java 代码
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion("us-east-1").build();
try {
S3Object o = s3.getObject(bucket_name, key_name);
S3ObjectInputStream s3is = o.getObjectContent();
FileOutputStream fos = new FileOutputStream(new File(key_name));
byte[] read_buf = new byte[1024];
int read_len = 0;
while ((read_len = s3is.read(read_buf)) > 0) {
fos.write(read_buf, 0, read_len);
}
s3is.close();
fos.close();
}
但是,当我使用“Principal”时:“*”它正在工作
AWS SDK 未从 Windows 中的C:\Users\myuser\.aws\credentials
读取凭证
截至目前,以下已解决问题
BasicAWSCredentials basicAWSCredentials = new BasicAWSCredentials("aws_access_key_id",
"aws_secret_access_key");
final AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(basicAWSCredentials))
.withRegion("us-east-1")
.build();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.