6个版本
0.1.5 | 2022年6月7日 |
---|---|
0.1.4 | 2021年5月21日 |
0.1.3 | 2021年3月31日 |
0.1.1 | 2021年2月2日 |
0.1.0 | 2021年1月30日 |
#485 in 身份验证
140KB
759 行
模糊 AWS sts 假设 角色
一个小程序,使用模糊匹配快速切换AWS角色
特性
- 使用最少的按键假设AWS角色
- 所有AWS角色可在一个地方访问
- 预先选择最后使用的账户/角色
- 如果存在多个账户/角色,则仅需要用户输入
用法
Fastsar可以通过命令行参数进行配置,有关详细信息,请参阅fastsar -h
。
设置假设角色的环境变量
大多数shell不允许在子shell或程序中设置环境变量,因此,如果没有任何参数,fastsar将返回一个可以在当前shell中评估的字符串。
在bash中,可以使用eval $(fastsar)
完成此操作,在fish中,可以使用eval (fastsar)
完成此操作。
您还可以将评估绑定到某些热键,例如'Alt+s'
- bash:
bind -x '"\es": eval $(fastsar)'
- fish:
bind \es 'eval (fastsar)'
shell自动检测
Fastsar将尝试通过读取环境变量SHELL
来检测您的shell。如果fastsar在检测您的shell时出现问题,您可以传递shell的名称作为参数(例如,fastsar -s fish
)。
多因素认证
如果您想假设的角色需要使用多因素认证,您可以传递“MFA序列号”(MFA设备的ARN)和MFA令牌作为参数(例如,fastsar -m arn:aws:iam::123123123:mfa/user -t 123123
)。
配置文件
Fastsar将使用您在~/.aws/config
中配置的默认配置文件default
。如果您想使用不同的配置文件,可以将配置文件名作为参数传递(例如fastsar -p my-profile
)。
非交互模式
账户ID和角色名称可以作为参数传递以跳过交互式选择(例如fastsar -a 123123123 -r user
)。
使用不同的区域
Fastsar将使用在~/.aws/config
中指定的默认区域。如果没有设置区域,将回退到us-east-1。如果需要使用不同的区域,可以将其作为参数传递(例如fastsar -R eu-central-1
)。
使用假定角色执行shell命令
您可以通过传递一个shell命令给fastsar并让其为您执行来代替在shell中打印和评估环境变量以使用假定角色,而不是打印环境变量(例如fastsar -'aws s3api list-buckets'
)。在这种情况下,fastsar将打印命令输出而不是环境变量。
如何安装
可以从中下载预编译的二进制文件Github releases。解压下载的存档并将可执行文件移动到您的$PATH
中的一个文件夹中。
如果您想自己编译fastsar并且已经安装了rust工具链,可以运行cargo install fastsar
。
配置
在$HOME/.aws/sts.json
(默认文件路径)中创建一个json文件,其中包含所有账户和角色的以下格式的文件
[
{
"name": "Production",
"id": "1234",
"roles": [
"abc",
"def"
]
},
{
"name": "Testing",
"id": "14253",
"roles": [ "abc" ]
}
]
name
:您账户的名称id
:AWS账户IDroles
:您想要假定AWS角色名称的列表
需求
许多AWS账户
依赖项
~24–40MB
~639K SLoC