将 IAM 角色从一个 EC2 传递到另一个 Ec2



我有一个附加了 IAM 角色的 ec2 实例(比如 ec2-1)。此 IAM 角色具有用于启动新 ec2 实例、新安全组、列出各种安全组、从 S3 复制文件等的策略。

现在,我想使用 aws cli 或 cloudformation 模板(不是从控制台)从此 ec2-1 实例启动另一个 ec2 实例,但具有从 s3 复制对象的额外访问权限。 我只希望 paas 此策略/角色从 ec2-1 到这个新启动的实例,以便使用 CFT 中的用户数据,我可以将对象从 s3 复制到新的 ec2 实例中。

我不想传递 ec2-1 中的完整策略的完整角色,例如启动 ec2、SG 等。

我怎样才能做到这一点?

创建一个单独的角色并以最小访问权限(需要访问新的 EC2 实例)附加新策略,并在从 EC2-1 启动新 EC2 时将新创建的角色附加到新的 EC2 实例。

你所描述的是不可能的,但有另一种选择。

首先,没有"通过变化传递角色"的概念。IAM 角色可用于生成临时凭证。然后,可以使用这些凭据根据分配给角色的权限执行操作。您当然可以将凭据传递给另一个实例,但随后它将使用与该角色关联的所有权限进行操作。您不能只传递部分权限。

最好的方法是专门为第二个实例创建一个不同的角色,并分配适当的策略。

但是,这里有一个有趣的选择...

如果您的目标是使实例 2 能够从 Amazon S3 下载某些对象,并且这些对象是私有的,则实例 1 可以为每个对象生成预签名 URL。这些 URL 将提供对 Amazon S3 中私有对象的限时访问。

实例 1 上的某些代码需要生成预签名 URL,然后将这些预签名 URL 包含在用于启动实例 2 的用户数据中。因此,实例 2 将能够下载对象,而无需 IAM 角色。

请参阅: Amazon S3 预签名网址

按照此文档逐步操作。我用同样的方法让它工作。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

最新更新