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

使用临时凭证/扮演角色时,如何在CDK中指定AWS账号ID?

解决CDK指定AWS账号环境的方法

方法一:在CDK代码中显式指定账号和区域

定义Stack时直接传入env参数,明确指定目标账号ID和区域,避免CDK自动推断:

# Python示例
from aws_cdk import Stack, Environment
from constructs import Construct

class MyStack(Stack):
    def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, 
            env=Environment(
                account="<你的账号ID>",
                region="<目标区域,比如us-east-1>"
            ),
            **kwargs)
        # 栈资源定义逻辑
// TypeScript示例
import { Stack, StackProps, Environment } from 'aws-cdk-lib';
import { Construct } from 'constructs';

export class MyStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, {
      ...props,
      env: {
        account: '<你的账号ID>',
        region: '<目标区域,比如us-east-1>'
      }
    });
    // 栈资源定义逻辑
  }
}

方法二:通过环境变量传递账号和区域

执行CDK命令前,先设置以下环境变量:

export CDK_DEFAULT_ACCOUNT="<你的账号ID>"
export CDK_DEFAULT_REGION="<目标区域,比如us-east-1>"

之后再运行cdk bootstrap或cdk deploy即可。

方法三:在cdk.json中配置默认环境

在项目根目录的cdk.json文件中添加context配置项,指定默认账号和区域:

{
  "app": "npx ts-node bin/your-app.ts",
  "context": {
    "@aws-cdk/core:defaultAccount": "<你的账号ID>",
    "@aws-cdk/core:defaultRegion": "<目标区域,比如us-east-1>"
  }
}

保存后CDK会自动读取该配置作为默认环境。

额外注意事项

  • 确认临时凭证权限:扮演的角色需要拥有CDK操作所需的权限,比如CloudFormation、S3等相关服务的权限。
  • 验证凭证有效性:运行aws sts get-caller-identity命令,确认当前使用的临时凭证关联的账号ID与你指定的一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:30:54