我有多个 AWS 账户,根据我所在的项目目录,我想在 AWS CLI 中键入命令时使用不同的账户。
我知道 AWS 凭证可以通过环境变量传递,所以我认为一种解决方案是根据它所AWS_CONFIG_FILE
在的目录进行设置,但我不知道该怎么做。
使用 Mac OS X,AWS 版本是aws-cli/1.0.0 Python/2.7.1 Darwin/11.4.2
,我这样做是为了在 Rails 4 应用程序中使用 AWS。
我有多个 AWS 账户,根据我所在的项目目录,我想在 AWS CLI 中键入命令时使用不同的账户。
我知道 AWS 凭证可以通过环境变量传递,所以我认为一种解决方案是根据它所AWS_CONFIG_FILE
在的目录进行设置,但我不知道该怎么做。
使用 Mac OS X,AWS 版本是aws-cli/1.0.0 Python/2.7.1 Darwin/11.4.2
,我这样做是为了在 Rails 4 应用程序中使用 AWS。
我建议在配置文件中使用不同的配置文件,只需指定您想要的配置文件:
aws --profile <your-profile> <command> <subcommand> [parameters]
如果您不想为每个命令键入配置文件,只需运行:
export AWS_DEFAULT_PROFILE=<your-profile>
在一组命令之前。
如果您想在更改到终端目录时以某种方式自动化设置该环境变量的过程,请参阅Linux 中的动态环境变量?
我认为您可以为 aws 命令创建一个别名,该命令将根据您所在的目录导出 AWS_CONFIG_FILE 变量。以下内容(bash)可能会起作用。
首先创建以下 shell 脚本,我们将其命名为 match.sh 并将其放入 /home/user/
export AWS_CONFIG_FILE=`if [[ "$PWD" =~ "MATCH" ]]; then echo "ABC"; else echo "DEF"; fi`
aws "$@"
现在在 ~/.bashrc 脚本中定义别名
alias awsdirbased="/home/user/match.sh $@"
现在,每当您想运行“aws”命令而不是运行“awsdirbased”时,它应该可以工作