You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从aws-vault exec获取AWS凭证并写入文件?命令返回空值问题

解决aws-vault exec输出AWS凭证为空的问题

问题原因

你执行的命令aws-vault exec default -- echo ${AWS_ACCESS_KEY_ID}中,${AWS_ACCESS_KEY_ID}会被当前终端的shell优先解析,而当前环境中并没有这个变量,所以解析后变成空字符串,再传给aws-vault执行,自然输出为空。

解决方法

要让变量在aws-vault创建的凭证环境中被解析,需要避免本地shell提前替换变量,下面是几种可行的方式:

1. 通过bash -c执行命令

让aws-vault启动一个bash子shell,在子shell中解析变量并执行命令:

aws-vault exec default -- bash -c 'echo $AWS_ACCESS_KEY_ID'

这样就能正确输出对应的访问密钥ID。

2. 转义美元符号

通过反斜杠转义变量的美元符号,阻止本地shell解析:

aws-vault exec default -- echo \${AWS_ACCESS_KEY_ID}

将凭证存储到文件

如果要把AWS凭证(包括访问密钥、密钥和会话令牌)保存到文件中,可以用以下命令:

aws-vault exec default -- bash -c 'cat > aws_credentials.env <<EOF
AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN
EOF'

执行后,当前目录会生成aws_credentials.env文件,包含完整的临时凭证信息。

也可以单独导出某个凭证到文件:

# 导出访问密钥ID到文件
aws-vault exec default -- bash -c 'echo $AWS_ACCESS_KEY_ID > access_key.txt'
# 导出密钥到文件
aws-vault exec default -- bash -c 'echo $AWS_SECRET_ACCESS_KEY > secret_key.txt'

内容的提问来源于stack exchange,提问作者Stoyan Georgiev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 09:37:08