【问题标题】:Passing IAM roles from one EC2 to another Ec2将 IAM 角色从一个 EC2 传递到另一个 Ec2
【发布时间】:2019-07-18 17:52:35
【问题描述】:

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

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

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

我怎样才能做到这一点?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-iam amazon-policy


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

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

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

      见:Amazon S3 pre-signed URLs

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2019-10-20
          • 2020-09-02
          • 1970-01-01
          • 2018-07-09
          • 2016-12-30
          • 2018-11-10
          • 2018-01-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多