如何通过参数或配置文件让aws-auth自动完成AWS凭证刷新?
问题:如何让aws-auth命令跳过交互自动执行?
我需要每日刷新AWS配置文件凭证,当前执行的交互式aws-auth命令如下:
$ ./aws-auth connect --api-key xxx --matricule xxx --password 'xxx' --renew ======================================================================= = aws-auth connect = ======================================================================= There are more than one role that can be assumed. Please choose the role you would like to assume: [ 0] arn:aws:iam::xxx:role/role-xxx [ 1] arn:aws:iam::xxx:role/role-xxx [ 2] arn:aws:iam::xxx:role/role-xxx [ 3] arn:aws:iam::xxx:role/role-xxx [ 4] arn:aws:iam::xxx:role/role-xxx Selection : 4 // 输入选择值 Selected role : arn:aws:iam::xxx:role/role-xxx AWS profile name (xxx) : xxx // 输入配置文件名 Selected AWS profile name : xxx ---------------------------------------------------------------- Success !
请问是否可以传递默认值跳过这两个交互式步骤,使命令自动执行完成?或者是否可为aws-auth配置包含这两个值的配置文件以关闭交互模式?
解决方案
可以通过两种方式实现无交互自动执行:
1. 直接传递命令行参数跳过交互
大部分同类型工具支持通过命令行参数直接指定角色和配置文件名,你可以尝试以下两种参数形式:
- 指定角色ARN:添加
--role-arn arn:aws:iam::xxx:role/role-xxx参数,直接锁定目标角色 - 指定AWS配置文件名:添加
--profile xxx参数,预设配置文件名称
组合后的完整命令如下:
./aws-auth connect --api-key xxx --matricule xxx --password 'xxx' --renew --role-arn arn:aws:iam::xxx:role/role-xxx --profile xxx
如果工具不支持直接传入ARN,也可以尝试传递角色的索引值(比如你的案例中是4),对应参数可能为--role-index 4,命令示例:
./aws-auth connect --api-key xxx --matricule xxx --password 'xxx' --renew --role-index 4 --profile xxx
2. 使用配置文件预设参数
你可以创建aws-auth的专属配置文件,将常用参数预先配置好,避免每次手动输入。这类工具的配置文件通常放在用户主目录下,比如~/.aws-auth/config或~/.config/aws-auth/config。
配置文件示例格式(需根据工具实际要求调整):
[default] api-key = xxx matricule = xxx password = xxx role-arn = arn:aws:iam::xxx:role/role-xxx profile = xxx
配置完成后,执行命令时只需调用:
./aws-auth connect --renew
如果不确定配置文件的路径或格式,可执行./aws-auth --help或./aws-auth connect --help查看工具自带的帮助文档,里面会明确说明配置文件的相关规则。
内容的提问来源于stack exchange,提问作者mingzhao.pro
相关产品推荐
相关产品推荐

