切换AWS环境配置

aws 配置文件在 用户目录下的 .aws 里,如果我有多个环境,这个配置文件怎么切换?

~/.aws 目录下,你可以使用 configcredentials 文件来管理多个 AWS 账户或环境。你可以通过 AWS Named Profiles 来切换不同的环境。

1. 配置多个环境

~/.aws/credentials 文件中,你可以定义多个 profile,比如:

[default]
aws_access_key_id = YOUR_DEFAULT_ACCESS_KEY
aws_secret_access_key = YOUR_DEFAULT_SECRET_KEY

[dev]
aws_access_key_id = YOUR_DEV_ACCESS_KEY
aws_secret_access_key = YOUR_DEV_SECRET_KEY

[prod]
aws_access_key_id = YOUR_PROD_ACCESS_KEY
aws_secret_access_key = YOUR_PROD_SECRET_KEY

~/.aws/config 文件中,你可以指定更多配置,如 region:

[default]
region = us-east-1
output = json

[profile dev]
region = us-west-2

[profile prod]
region = us-east-1

2. 切换不同环境的方法

方法 1:使用 AWS_PROFILE 环境变量

你可以在终端中运行:

export AWS_PROFILE=dev

或者:

export AWS_PROFILE=prod

这样后续所有 AWS CLI 命令都会使用该 profile。

如果你只想临时使用某个 profile,可以在命令前加上 AWS_PROFILE

AWS_PROFILE=prod aws s3 ls

方法 2:在 AWS CLI 命令中指定 --profile

aws s3 ls --profile dev
aws ec2 describe-instances --profile prod

方法 3:在 SDK 中使用

如果你的程序是用 SDK 访问 AWS,可以指定 profile。例如,在 Python 的 boto3

import boto3

session = boto3.Session(profile_name="dev")
s3 = session.client("s3")

在 Golang:

sess := session.Must(session.NewSessionWithOptions(session.Options{
    Profile: "prod",
}))
svc := s3.New(sess)

这样你可以轻松在多个 AWS 账户或环境之间切换! 🚀