You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为两个CloudFormation栈配置不同的cfn-exec-roles?

为指定CDK栈关联自定义CloudFormation执行角色

在CDK代码中为新栈指定自定义角色

核心是在创建栈时,通过栈属性绑定你已创建的自定义IAM角色。以下是主流语言的实现示例:

  • TypeScript/JavaScript
import * as cdk from 'aws-cdk-lib';
import * as iam from 'aws-cdk-lib/aws-iam';

const app = new cdk.App();

// 引用已创建的自定义CFN执行角色(替换为你的角色ARN)
const customCfnExecRole = iam.Role.fromRoleArn(app, 'CustomCfnExecRole', 'arn:aws:iam::123456789012:role/your-custom-role-name');

// 创建目标栈时绑定该角色
const myTargetStack = new cdk.Stack(app, 'MyTargetStack', {
  role: customCfnExecRole,
  // 其他栈配置(如环境、标签等)
});
  • Python
from aws_cdk import App, Stack, aws_iam as iam

app = App()

# 引用已有的自定义执行角色
custom_cfn_exec_role = iam.Role.from_role_arn(app, "CustomCfnExecRole", "arn:aws:iam::123456789012:role/your-custom-role-name")

# 创建指定角色的栈
my_target_stack = Stack(app, "MyTargetStack",
    role=custom_cfn_exec_role,
    # 其他栈配置
)

为已部署的栈更新执行角色

如果栈已经部署完成,有两种方式替换执行角色:

  1. 通过CDK代码更新后部署:按照上面的代码修改目标栈的角色配置,然后执行部署命令:
cdk deploy MyTargetStack
  1. 通过AWS CLI直接更新:无需修改代码,直接调用CloudFormation的更新命令(注意替换成你的栈名和角色ARN):
aws cloudformation update-stack \
  --stack-name MyTargetStack \
  --role-arn arn:aws:iam::123456789012:role/your-custom-role-name \
  --use-previous-template

关键注意事项

  • 自定义角色必须配置正确的信任关系,允许cloudformation.amazonaws.com作为信任主体,否则CloudFormation无法 AssumeRole。
  • 确保自定义角色仅包含目标栈所需的最小权限,符合最小权限原则。
  • 嵌套栈默认继承父栈的执行角色,若要为嵌套栈单独指定角色,需在嵌套栈的构造函数中同样设置role属性。

内容的提问来源于stack exchange,提问作者ganeshram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 16:57:09