升级AWS CDK v2后缺失cloudformation:ListStackResources权限如何解决
AWS CDK v2 部署报
cloudformation:ListStackResources权限缺失处理方案 根因
该报错是重新bootstrap生成的CDK托管部署角色缺少diff、deploy操作必需的CloudFormation读权限导致,绝大多数诱因是CDK CLI版本与项目内CDK依赖版本不匹配,拉取了错位版本的bootstrap模板生成角色,不属于v1到v2的常规代码不兼容问题。
方案选择说明
- 不推荐手动修改角色附加权限:CDK bootstrap生成的角色、策略均为CDK托管资源,手动修改会产生配置漂移,后续重跑bootstrap、升级CDK版本时手动变更会被覆盖,问题会反复出现,不符合基础设施即代码的合规要求。
- 优先通过CDK原生命令修复:
- 先做版本对齐:确认全局安装的CDK CLI版本,和C#项目通过NuGet引用的
Amazon.CDK.Lib及所有关联CDK包版本完全一致,版本错位是v2 bootstrap权限异常的最高频原因。 - 版本对齐后在项目根目录执行
cdk bootstrap --force,该命令会强制用当前CLI版本匹配的官方bootstrap模板刷新当前账号、目标区域下的所有CDK bootstrap托管资源,自动补全部署角色、发布角色的缺失权限,无配置漂移风险,是官方标准修复路径。
- 先做版本对齐:确认全局安装的CDK CLI版本,和C#项目通过NuGet引用的
- 仅特定场景需要调整栈代码:如果项目代码中显式自定义了bootstrap角色的权限策略、权限边界,主动裁剪了默认附带的CloudFormation相关权限,才需要在自定义策略中补充
cloudformation:ListStackResources操作权限;如果没有自定义bootstrap角色相关逻辑,不需要改动任何业务栈代码。 - 企业账号特殊处理:如果账号归属于AWS Organization,组织层面配置了强制SCP权限管控,先联系账号管理员确认SCP未拦截CDK角色对CloudFormation栈资源的读权限,再执行上述bootstrap命令即可。
内容的提问来源于stack exchange,提问作者user2458080
相关产品推荐
相关产品推荐

