能否同时激活多个AWS CLI配置文件以访问不同AWS资源?
能否同时激活两个AWS配置文件访问不同资源?
可行,不需要切换全局配置文件,你可以针对不同的AWS操作明确指定对应的配置文件,或者在代码中初始化不同的客户端实例分别使用两个配置,具体方法如下:
CLI命令行场景
执行命令时通过--profile参数指定要使用的配置文件,不同操作对应不同profile即可:
- 访问S3存储桶A用配置文件1:
aws s3 ls s3://bucket-a --profile profile1 - 消费MSK主题B用配置文件2:
aws kafka get-bootstrap-brokers --cluster-arn arn:aws:kafka:你的区域:账号ID:cluster/集群名称 --profile profile2
代码开发场景(以AWS SDK为例)
用AWS SDK写代码时,可以分别初始化不同的客户端,各自绑定对应的配置文件:
比如Python的boto3示例:
import boto3 # 用配置文件1初始化S3客户端,访问桶A s3_client = boto3.client('s3', profile_name='profile1') s3_client.list_objects_v2(Bucket='bucket-a') # 用配置文件2初始化Kafka客户端,获取MSK集群信息 kafka_client = boto3.client('kafka', profile_name='profile2') broker_info = kafka_client.get_bootstrap_brokers(ClusterArn='arn:aws:kafka:你的区域:账号ID:cluster/集群名称')
临时环境变量方式(单进程生效)
如果需要在当前终端临时给某个操作指定配置,可以设置环境变量覆盖默认值:
# 临时用profile2执行MSK相关命令 export AWS_PROFILE=profile2 aws kafka ... # 之后要执行S3操作时,再切换回profile1 export AWS_PROFILE=profile1 aws s3 ...
要是想同时执行两个不同配置的操作,开两个终端窗口分别设置环境变量就行。
本质上AWS没有全局“同时激活多个配置文件”的状态,但通过上面的方法,不用切换全局默认配置,就能同时用两个配置分别访问对应的资源。
内容的提问来源于stack exchange,提问作者Roberto Russo
相关产品推荐
相关产品推荐

