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

如何高效使用AWS SDK在多个AWS账户间切换?

更高效的AWS多账户切换方案

当然有更省心高效的方法!手动覆盖~/.aws/credentials文件不仅繁琐,还容易误删或混淆凭证,下面这几种方案能帮你轻松在多账户间切换:

1. 使用多Profile配置(最常用)

你可以在~/.aws/credentials文件中直接定义多个账户的凭证块,每个块用[profile-name]标识:

[default]
aws_access_key_id=你的默认账户AK
aws_secret_access_key=你的默认账户SK

[account-dev]
aws_access_key_id=开发账户AK
aws_secret_access_key=开发账户SK

[account-prod]
aws_access_key_id=生产账户AK
aws_secret_access_key=生产账户SK

在SDK中指定Profile

初始化AWS SDK时,直接通过profile_name参数指定要使用的账户:

import boto3

# 切换到开发账户
dev_session = boto3.Session(profile_name='account-dev')
dev_s3 = dev_session.client('s3')

# 切换到生产账户
prod_session = boto3.Session(profile_name='account-prod')
prod_ec2 = prod_session.client('ec2')

用环境变量全局切换

如果你不想改代码,可以通过设置AWS_PROFILE环境变量让当前终端会话默认使用某个账户:

# 临时切换到开发账户
export AWS_PROFILE=account-dev

# 之后所有SDK调用都会自动使用dev账户的凭证

2. 临时环境变量切换(适合单次操作)

如果只是临时用一次其他账户,直接设置凭证相关的环境变量即可,无需修改配置文件:

export AWS_ACCESS_KEY_ID=临时账户AK
export AWS_SECRET_ACCESS_KEY=临时账户SK

当前终端窗口内的所有SDK请求都会使用这套凭证,关闭窗口后自动失效。

3. IAM角色切换(更安全的跨账户访问)

如果你的账户拥有跨账户IAM角色的权限,推荐这种方式——不用存储多个账户的AK/SK,而是通过角色临时获取凭证。

在~/.aws/config文件中配置角色信息:

[profile account-prod]
role_arn=arn:aws:iam::生产账户ID:role/你的跨账户角色名
source_profile=default  # 用默认账户来扮演这个角色

之后SDK初始化时指定account-prod profile,会自动完成角色切换并获取临时凭证:

session = boto3.Session(profile_name='account-prod')
prod_client = session.client('s3')

小技巧:快速切换别名

可以在你的shell配置文件(~/.bashrc或~/.zshrc)中添加别名,一键切换Profile:

alias aws-dev='export AWS_PROFILE=account-dev'
alias aws-prod='export AWS_PROFILE=account-prod'

之后在终端输入aws-dev就能立刻切换到开发账户,非常方便!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:23:36