0

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

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

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

我怎样才能做到这一点?

4

3 回答 3

1

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

于 2019-07-18T06:32:24.220 回答
1

您描述的内容是不可能的,但有另一种选择。

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

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

然而,这里有一个有趣的选择......

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

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

请参阅:Amazon S3 预签名 URL

于 2019-07-18T09:52:35.343 回答
0

一步一步地按照这个文档。我用同样的方法让它工作。

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

于 2019-07-18T06:55:40.363 回答