需要制作一份相同的AWS IAM角色副本(包括其拥有的政策和信任关系)



我有一个IAM角色(其中有许多策略和信任关系(。我在构建AWS Cognito用户池时使用了这个。但是,此IAM角色将很快被删除。

手动复制将是一件苦差事,而且不可重复。我想通过CLI或其他可重复方式的脚本进行复制。

到目前为止,我已经搜索了stackoverflow和谷歌,但没有找到任何相关的内容。

感谢您的帮助。

看起来您需要使用:

  • list_role_policies()以获取附加到角色的内联策略的名称
  • get_role_policy()检索内联策略
  • list_attached_role_policies()列出附加到角色的托管策略

然后创建一个新角色并使用:

  • put_role_policy()附加内联策略
  • attach_role_policy()附加托管策略

还必须复制信任关系。

感谢@JohnRotenstein指出了正确的方向。我提出了一个Node.js脚本来自动执行IAM角色复制过程。

它与使用的AWS SDK API一起执行的步骤:

  1. 获取源角色及其信任关系策略:getRole()
  2. 获取源角色的内联策略:listRolePolicies()getRolePolicy()
  3. 获取源角色的托管策略(AWS和客户创建的(:listAttachedRolePolicies()
  4. 创建一个新角色,复制所有相关属性(包括信任策略(:createRole()
  5. 将在源角色中找到的所有内联策略添加到新角色:putRolePolicy()
  6. 附加源角色的所有托管策略:attachRolePolicy()

这个过程非常简单。。。唯一有趣的细节是步骤2和3需要递归提取,以适应策略响应可以分页的事实。

如何复制AWS IAM角色。

如果Python是一个选项,那么boto3可能会有所帮助(AWS的Python SDK(

创建角色:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#IAM.Client.create_role

创建策略:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#IAM.Client.create_policy

更多信息:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#clienthttps://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html

相关内容

  • 没有找到相关文章

最新更新