#role #fuzzy-matching #aws #sts #shell #switch #quickly

app fastsar

快速切换AWS角色,使用模糊匹配

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 身份验证

MIT 许可证

140KB
759

模糊 AWS sts 假设 角色

audit test crates.io codecov

一个小程序,使用模糊匹配快速切换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账户ID
  • roles:您想要假定AWS角色名称的列表

需求

许多AWS账户

依赖项

~24–40MB
~639K SLoC