我有一个关于将 IAM 角色与 EC2 和 EMR 一起使用的问题。这是我当前的设置:
我启动了一台具有特定 IAM 角色的 EC2 机器(我们将此角色称为"admin")。我的工作流程是从这台机器上传文件到 S3,然后创建具有特定 IAM 角色("运行者"角色)的 EMR 集群。EMR 集群处理从管理员计算机上传到 S3 的文件。管理员是对所有 AWS 服务中的所有 API 具有权限的角色。Runner 可以访问 EMR、EC2 和 S3 中的所有 API。
由于某种原因,EMR 集群无法访问 S3 中加载的输入文件。它不断从 s3 收到"拒绝访问"异常。
我想从一个 IAM 角色写入 s3 并从另一个 IAM 角色读取它是导致问题的原因。
任何关于这里出了什么问题的想法,或者这是否是一个受支持的用例,都是值得赞赏的。
谢谢!
http://blogs.aws.amazon.com/security/post/TxPOJBY6FE360K/IAM-policies-and-Bucket-Policies-and-ACLs-Oh-My-Controlling-Access-to-S3-Resourc
S3 对象以三种方式受到保护,如我链接到的帖子所示。
- 您的 IAM 角色需要读取 S3 对象的权限。
- S3 存储桶策略必须允许您的 IAM 角色访问对象。
- 特定对象的 S3 ACL 还必须允许您的 IAM 角色访问该对象。