我正在努力让具有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/*"

10-02 10:09