Amazon web services 将IAM角色从一个EC2传递到另一个EC2

Amazon web services 将IAM角色从一个EC2传递到另一个EC2,amazon-web-services,amazon-ec2,amazon-iam,amazon-policy,Amazon Web Services,Amazon Ec2,Amazon Iam,Amazon Policy,我有一个ec2实例(比如ec2-1),它附加了一个IAM角色。此IAM角色具有用于启动新ec2实例、新安全组、列出各种安全组、从S3复制文件等的策略 现在,我想使用aws cli或cloudformation模板(不是从控制台)从这个ec2-1实例启动另一个ec2实例,但可以从s3复制对象。 我只希望paas将这个策略/角色从ec2-1复制到这个新启动的实例中,以便使用CFT中的用户数据,我可以将对象从s3复制到新的ec2实例中 我不想通过ec2-1中包含的完整策略的完整角色,如启动ec2、SG

我有一个ec2实例(比如ec2-1),它附加了一个IAM角色。此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实例

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

逐步遵循此文档。我用同样的方法让它工作


逐步遵循此文档。我用同样的方法让它工作


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

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

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

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

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

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


请参阅:

您所描述的是不可能的,但还有一种选择

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

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

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

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

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

见: