我希望实现以下目标
这是我应用于S3存储桶的策略。我正在使用 NotPrincipal 语句,因此它将拒绝访问除列出的所有人之外的所有人
{
"Id": "policy1",
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"NotPrincipal": {
"AWS": ["arn:aws:iam::xxxxxxxxxxxx:user/user1@mydomain.com",
"arn:aws:iam::xxxxxxxxxxxx:user/user2@mydomain.com",
"arn:aws:iam::xxxxxxxxxxxx:root",
"arn:aws:iam::xxxxxxxxxxxx:role/EMR_DefaultRole",
"arn:aws:iam::xxxxxxxxxxxx:role/EMR_EC2_DefaultRole"]
},
"Action": "s3:*",
"Resource": ["arn:aws:s3:::bucket-restricted-access",
"arn:aws:s3:::bucket-restricted-access/*"]
}
]
}
然后我尝试通过C#AWS SDK创建一个EMR集群,其中包含一个从以下位置运行脚本的引导操作
s3://bucket-restricted-access/config/runscript.sh
但是,只要群集启动,我就会收到错误
终止但有错误 - 拒绝访问尝试读取引导操作 file' s3://bucket-restricted-access/config/runscript.sh'
EMR集群是否使用EMR_EC2_DefaultRole角色的假定权限来尝试并检索引导操作?
如果没有,是否需要在S3存储桶策略中添加另一个用户/角色来修复权限问题?
答案 0 :(得分:-1)
使用安全组ElasticMapReduce-master和ElasticMapReduce-slave
启动EMR集群用于创建EMR的访问密钥和密钥应该具有访问具有引导脚本的s3存储桶的权限