java - 如何获取在其中运行的 ECS 实例的 AWS IAM 凭证 - 使用 Java?
问题描述
我正在努力让 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();
任何人都可以指出正确的方法和文档吗?
解决方案
您使用的 IAM 策略不正确,特别是resource
. 要指示 myBucket 中的所有对象,请使用以下命令:
"Resource": "arn:aws:s3:::myBucket/*"
推荐阅读
- javascript - 如何使用attr函数获取图片的src
- c++ - 是否可以传递结构的实例并更改结构的属性
- python-3.x - 如何从作为变量的一部分的字符串中引用类 3.7
- c# - 为什么 Xamarin 上的 oneSignal 的玩家 ID 为空?仅在 iOS 中
- python - 如何获取与 kafka-python 中的主题相关联的消费者组列表?
- sql - 根据条件将表中的数据拆分为 2 列
- xpath - 基于元素部分匹配拉节点的xpath
- swift - instanceViewController 在单元测试中抛出 SIGABRT
- android - 如何在 Android 中以编程方式创建文件夹
- javascript - 遍历 JSON 并找到匹配的名称以返回 ID