如何在终端中轻松切换 AWS 凭证?

How can i switch AWS credentials easily in the terminal?

我从事几个不同的项目。我使用 AWS,我使用 Kubernetes。我在我的 ~/.aws/credentials 中存储了许多 AWS 凭证,每个凭证都带有类似

的标签
[account-1]
aws_access_key = x
aws_secret_access_key = y

[account-2]
aws_access_key = x
aws_secret_access_key = y

如何在它们之间切换并轻松设置我的配置? 目前我在终端中输入 aws configure 并在每次我想在它们之间切换时手动粘贴 key/secret/regionn。

当您点击 aws configure 命令时,每次都会在 ~/.aws/credentials 中创建一个新的配置文件。您可以一次生成所有必需的配置文件,然后根据您正在工作的项目设置环境变量。

例如, 在处理项目 1 时,设置环境变量

export AWS_PROFILE=account-1

在处理项目 2 时,设置环境变量

export AWS_PROFILE=account-2

除了@Gunjan 的回答,您还可以像这样传递个人资料名称

$ aws ecr get-login-password  --region us-east-1 --profile account-1

如果你想连接到多个 eks 集群

$ aws eks --region us-east-1  update-kubeconfig --name account-1-eks --region eu-west-1 --profile account-1

You need to have proper IAM permissions to run this command

此命令将在 ~/.kube 中生成一个 kube 配置文件 将该文件移动到其他位置并在您的 bash_profile.zshrc 中添加别名,例如此行

account-1-eks='export KUBECONFIG=:/path/to/the/account-1-eks.config

现在重新加载您的 shell,您可以使用像 account-1-eks

这样的别名来切换

您可以为多个帐户重复这些步骤

如果您正在使用 zsh 和 oh-my-zsh with the aws plugin,您有 asp 命令。

asp account-1

如果您的主题设置得当,您的命令行提示符会告诉您您使用的是哪个帐户。