如何使用Java获取其内部运行的ECS实例的AWS IAM凭证?

时间:2018-10-14 19:55:55

标签: java amazon-web-services amazon-ec2 amazon-iam

我正在努力让S3Client在其中运行ECS实例的凭据。

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();

有人可以指出正确的方法和文档吗?

1 个答案:

答案 0 :(得分:1)

您使用的IAM策略不正确,尤其是resource。要指示myBucket中的所有对象,请使用以下命令:

"Resource": "arn:aws:s3:::myBucket/*"