Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java获取运行在其中的ECS实例的AWS IAM凭据?_Java_Amazon Web Services_Amazon Ec2_Amazon Iam - Fatal编程技术网

如何使用Java获取运行在其中的ECS实例的AWS IAM凭据?

如何使用Java获取运行在其中的ECS实例的AWS IAM凭据?,java,amazon-web-services,amazon-ec2,amazon-iam,Java,Amazon Web Services,Amazon Ec2,Amazon Iam,我很难让S3客户端拥有其运行的ECS实例的凭据 ECS实例的策略和信任如下-我认为这是可以的 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:PutObject*", "Resource": [

我很难让S3客户端拥有其运行的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();

有人能告诉我正确的方法和文档吗?

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

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

尝试单个资源:arn:aws:s3:::myBucket/*修复了问题-puts现在可以工作-这是一个权限问题。我还使用了AWSCredentialsProvider credentialsProvider=InstanceProfileCredentialsProvider.getInstance();AmazonS3 s3Client=AmazonS3ClientBuilder.standard()。带有凭据(credentialsProvider.build();