如何通过CloudFormation模板将AWS现有托管策略附加到已有IAM角色
解决方案
要实现为已有IAM角色绑定AWS官方托管策略,无需创建新策略或新角色,直接使用AWS::IAM::RolePolicyAttachment类型的CloudFormation资源即可,完整模板如下:
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Attach AWS managed policy to existing IAM Role", "Parameters": { "ExistingRoleName": { "Type": "String", "Default": "MyRole", "Description": "Name of the existing IAM role to attach policy to" } }, "Resources": { "AttachS3FullAccessPolicy": { "Type": "AWS::IAM::RolePolicyAttachment", "Properties": { "Role": {"Ref": "ExistingRoleName"}, "PolicyArn": "arn:aws:iam::aws:policy/AmazonS3FullAccess" } } } }
核心配置说明
- 无需创建自定义托管策略:直接使用AWS官方预定义托管策略的ARN即可,示例中使用的
arn:aws:iam::aws:policy/AmazonS3FullAccess就是官方提供的S3全访问托管策略ARN - 无需创建新IAM角色:直接通过
Role字段指定已有角色的名称或ARN即可,示例中通过参数传入角色名,可在部署时灵活修改目标角色 - 如果需要绑定其他AWS托管策略,只需替换
PolicyArn的值即可,比如要绑定全局只读访问策略,可替换为arn:aws:iam::aws:policy/ReadOnlyAccess
注意:执行该CloudFormation模板的身份需要持有
iam:AttachRolePolicy权限,且指定的IAM角色必须已存在于当前AWS账户中,否则部署会报错。
内容的提问来源于stack exchange,提问作者PRaw
相关产品推荐
相关产品推荐

