【问题标题】:AWS role switching (EMR,EC2,ECS)AWS 角色切换(EMR、EC2、ECS)
【发布时间】:2018-08-07 12:35:47
【问题描述】:

我在 EC2 实例上运行 Python 应用程序,但由于我使用的角色(不能更改存储桶策略),我无法访问某个存储桶中的数据。

我被建议从 EC2 切换到 EMR,因为 EMR 使用 EMRFS,这将支持角色的无缝切换。考虑到我没有使用 Hadoop 框架,我想知道从 EC2 切换到 EMR 会有多难。

ECS 也可以作为无缝切换角色的替代方案吗?

【问题讨论】:

标签: amazon-web-services amazon-ec2 amazon-emr amazon-ecs


【解决方案1】:

您为什么不为 EC2 实例创建一个角色,该角色附加了一个允许访问 S3 存储桶的策略?在这种情况下,您不必修改存储桶策略,只需修改实例策略。见IAM Roles for Amazon EC2。您知道您也可以无缝更改 EC2 实例角色:easily replace or attach an iam role to an existing ec2 instance by using the ec2 console

【讨论】:

  • 因为访问其他s3存储桶我需要使用另一个角色(并且角色及其访问权限是由公司创建和定义的,因此不能更改)
  • 一个角色可以有多个策略,因此您可以在一个角色下拥有该 EC2 实例所需的所有策略。如果您无法修改角色和策略,那么恐怕无法绕过 IAM 来访问您不应该访问的内容。也许您应该与公司讨论这个问题?另外仅供参考,EMR 并不能神奇地解决这个问题。 EMR 只需为您启动一堆 EC2 实例并对其进行管理。您仍然需要为实例定义角色和策略。
  • 嗯,不同角色的创建方式是为了访问不同的存储桶。通过 UI 或 aws cli 访问这些数据并在账户之间切换不是问题,但当作业必须在 EC2 实例上运行时就会成为问题。
  • 嗯,我明白了。也许您可以使用允许 sts:AssumeRole 的策略为您的 EC2 实例创建一个角色,然后为 S3 访问创建两个不同的角色,每个角色都可以访问不同的存储桶。您的 EC2 实例可以对它需要的角色调用 AssumeRole 以获取临时凭证,以允许您在该 S3 存储桶上执行任何您想做的事情。但老实说,我认为您应该使用两个策略更新 EC2 角色,让 EC2 实例访问这些存储桶......
猜你喜欢
  • 2018-11-10
  • 2018-01-07
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 2016-11-21
  • 2018-03-09
相关资源
最近更新 更多