如何使用Java获取运行在其中的ECS实例的AWS IAM凭据?
我很难让S3客户端拥有其运行的ECS实例的凭据 ECS实例的策略和信任如下-我认为这是可以的如何使用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": [
{
"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();