Amazon web services AWS CLI登录,环境变量承担特定角色

Amazon web services AWS CLI登录,环境变量承担特定角色,amazon-web-services,kubernetes,aws-cli,Amazon Web Services,Kubernetes,Aws Cli,我正在寻找一种使用CLI登录AWS(和EKS)的方法,使用承担特定角色的环境变量 能够假定特定角色很重要,因为我定义的角色映射到我的EKS集群,只允许在单个命名空间中拥有权限。我已经能够在定义AWS\u ACCESS\u KEY\u ID、AWS\u SECRET\u ACCESS\u KEY和AWS\u DEFAULT\u REGION时登录 我将在管道上运行它,因此需要使用环境变量。目前我让它工作的唯一方法是为AWS\u ACCESS\u KEY\u ID和AWS\u SECRET\u AC

我正在寻找一种使用CLI登录AWS(和EKS)的方法,使用承担特定角色的环境变量

能够假定特定角色很重要,因为我定义的角色映射到我的EKS集群,只允许在单个命名空间中拥有权限。我已经能够在定义
AWS\u ACCESS\u KEY\u ID
AWS\u SECRET\u ACCESS\u KEY
AWS\u DEFAULT\u REGION
时登录

我将在管道上运行它,因此需要使用环境变量。目前我让它工作的唯一方法是为
AWS\u ACCESS\u KEY\u ID
AWS\u SECRET\u ACCESS\u KEY
设置环境变量,并将它们注入
~/.AWS/credentials
文件,并创建
~/.AWS/config
文件。当CLI试图使用变量时,我还必须
取消设置变量或使用不同的变量名,这与配置文件不符

示例如下:

export AWS_ACCESS_KEY_ID=*****REMOVED*****
export AWS_SECRET_ACCESS_KEY=*****REMOVED*****

mkdir ~/.aws

cat <<EOT >> ~/.aws/config
[test]
region = us-east-1

[profile test-profile]
region = us-west-1
role_arn = arn:aws:iam::111111111111:role/test-role
source_profile = test
EOT

cat <<EOT >> ~/.aws/credentials
[test]
aws_access_key_id = ${AWS_ACCESS_KEY_ID}
aws_secret_access_key = ${AWS_SECRET_ACCESS_KEY}
EOT
导出AWS\u访问\u密钥\u ID=*******已删除*****
导出AWS_SECRET_ACCESS_KEY=******已删除*****
mkdir~/.aws
cat~/.aws/config
[测试]
地区=美国东部-1
[剖面测试剖面图]
地区=美国西部1
角色\u arn=arn:aws:iam::111111:角色/测试角色
源\配置文件=测试
EOT
cat~/.aws/证书
[测试]
aws\u访问\u密钥\u id=${aws\u访问\u密钥\u id}
aws_secret_access_key=${aws_secret_access_key}
EOT

我不介意继续使用这种方法,但它并不像我希望的那样干净。理想情况下,所有环境变量都可以用于此目的。

我似乎在寻找: