如何重用CDK Bootstrap创建的现有IAM角色?
CDK Bootstrap 同名角色冲突且无删除权限的解决办法
问题描述:
执行CDK的bootstrap操作时提示同名角色已存在,之前做过bootstrap,本来可以删除CloudFormation里的CDKToolkit栈后重新执行,但当前账号没有角色删除权限,想问能不能重用现有角色?
错误日志:
10:27:18 | CREATE_FAILED | AWS::IAM::Role | ImagePublishingRole cdk-hnb659fds-image-publishing-role-31441111111111-ap-northeast-1 already exists 10:27:23 | DELETE_FAILED | AWS::IAM::Role | FilePublishingRole API: iam:DeleteRole User: arn:aws:iam::31441111111111:user/myuser is not authorized to perform: iam:DeleteRole on resource: role cdk-hnb659fds-file-publishing-role-myuser31441111111111-ap-northeast-1 because no identity-based policy allows the iam:DeleteRole action 10:27:23 | DELETE_FAILED | AWS::IAM::Role | CloudFormationExecutionRole API: iam:DetachRolePolicy User: arn:aws:iam::31441111111111:user/myuser is not authorized to perform: iam:DetachRolePolicy on resource: role cdk-hnb659fds-cfn-exec-role-314411397247-ap-northeast-1 because no identity-based policy allows the iam:DetachRolePolicy action 10:27:23 | DELETE_FAILED | AWS::IAM::Role | LookupRole API: iam:DeleteRolePolicy User: arn:aws:iam::31441111111111:user/myuser is not authorized to perform: iam:DeleteRolePolicy on resource: role cdk-hnb659fds-lookup-role-314411397247-ap-northeast-1 because no identity-based policy allows the iam:DeleteRolePolicy action
可以重用现有角色,试试下面几种方法:
使用
--no-bootstrap参数跳过bootstrap
如果环境已完成过bootstrap,后续部署时不小心触发了bootstrap操作,直接在CDK部署命令里加--no-bootstrap,让CDK跳过bootstrap步骤,直接调用已有的角色资源。强制执行bootstrap更新
不用删除现有栈,直接执行更新命令:cdk bootstrap --force该命令会尝试更新现有
CDKToolkit栈,对于已存在的角色会跳过创建,仅处理需要更新的资源,避免触发删除操作。指定自定义角色前缀规避冲突
如果更新仍有问题,可重新bootstrap时指定自定义前缀,生成不重复的角色名称:cdk bootstrap --qualifier my-custom-prefix生成的角色会带上
my-custom-prefix前缀,不会和旧角色重名,同时无需删除旧资源。确认现有角色权限有效性
检查现有的cdk-hnb659fds-*系列角色是否具备CDK运行所需权限(如S3访问、CloudFormation执行、镜像发布等),若权限满足要求,CDK会自动复用这些角色,无需重新创建。可通过IAM控制台查看角色的信任策略和权限策略是否配置正确。
内容的提问来源于stack exchange,提问作者whitebear
相关产品推荐
相关产品推荐

