我正在努力让具有ECS实例凭据的S3Client在其中运行。
ECS实例具有以下策略和信任-我认为还可以
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:PutObject*",
"Resource": [
"arn:aws:s3:::myBucket",
"arn:aws:s3:::/*"
]
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
我不知道如何获得客户端-在.net世界中,我会使用
s3Client = Amazon.AWSClientFactor.CreateAmazonS3Client()
但是我需要在Java中执行此操作-我尝试了多种方法,但是总是被“拒绝”
s3Client = AmazonS3ClientBuilder.standard().build();
谁能指出我正确的方法和文档?
最佳答案
您使用的IAM策略不正确,尤其是resource
。要指示myBucket中的所有对象,请使用以下命令:
"Resource": "arn:aws:s3:::myBucket/*"