#aws-credentials #aws #assume-role #command #tool #temporary #command-line-tool

bin+lib assume-rolers

一个用于使用临时 AWS 凭证的命令行工具

4 个版本 (2 个破坏性更新)

0.3.0 2022年12月2日
0.2.1 2022年11月25日
0.2.0 2022年11月22日
0.1.0 2022年11月12日

#16#aws-credentials

MIT 许可证

2MB
960

assume-rolers

assume-rolers 是一个用于使用临时 AWS 凭证的工具。目前,assume-rolers 仅支持 Linux 和 macOS。

你可以通过开发 WebAssembly/WASI 插件来扩展此工具!

安装

目前没有可用的预构建二进制文件。请从源代码构建此工具。

$ cargo install assume-rolers

$ git clone https://github.com/yoshihitoh/assume-rolers
$ cd assume-rolers
$ cargo build --release

如果你打算经常使用此工具,请将二进制文件复制到 PATH 目录中。

$ cp ./target/release/assume-rolers ~/.local/bin/

使用方法

交互模式

你可以在终端中选择一个配置文件。如果你选择的角色需要 MFA,你还可以在终端中设置令牌代码。

$ assume-rolers

指定配置文件

你可以通过命令行参数传递配置文件。如果你选择的角色需要 MFA,你可以通过 -t--token 标志设置令牌代码。

$ assume-rolers <PROFILE_NAME> [-t <TOKEN>]

注销会话

assume-rolers 创建一个新的 shell 会话,因此你可以通过 exit 命令注销它。

输出

assume-rolers 将导出以下参数。

名称 操作 注释
AWS_PROFILE 未设置 -
AWS_REGION 设置 -
AWS_DEFAULT_REGION 设置 -
AWS_ACCESS_KEY_ID 设置 -
AWS_SECRET_ACCESS_KEY 设置 -
AWS_SESSION_TOKEN 设置 -
AWS_SESSION_EXPIRATION 设置 过期日期时间,格式为 RFC 3339。例如:"2022-11-20T12:01:36+00:00"
AWS_PROFILE 设置 假设配置文件名称。你可以使用此变量来设置 shell 提示符。

凭证

assume-rolers 依赖于 rusoto 的 DefaultCredentialsProvider,后端为 ChainProvider。因此,assume-rolers 将按以下顺序查找凭证。

  1. 环境变量:AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY
  2. AWS 配置文件中的 credential_process 命令,通常位于 ~/.aws/config。
  3. AWS 凭证文件。通常位于 ~/.aws/credentials。
  4. IAM 实例配置文件。只有在运行在具有实例配置文件/角色的 EC2 实例上时才会工作。

引用自 Rusoto 的文档。

插件

内置插件

你可以使用内置插件,通过 -c 选项。

名称 注意
导出 显示导出环境变量的命令。
联盟 显示用于在 AWS 管理控制台登录的联盟 URL。

例如,您可以使用以下命令与 export 插件。

$ assume-rolers <PROFILE> -t <TOKEN> -p export

编写自己的插件

您可以编写自己的插件。该插件必须为 wasm32-wasi 目标构建。以 assume-rolers-export 插件为例。

您可以通过指定 .wasm 文件的路径来使用 wasm/wasi 插件。例如,您可以使用以下命令使用 assume-rolers-export.wasm 插件。

$ assume-rolers <PROFILE> -t <TOKEN> -p ./plugins/assume-rolers-export.wasm

Shell 完成功能

目前,assume-rolers 仅支持 fish shell。

尝试以下命令以启用 shell 完成功能。

$ cp ./shell-completions/assume-rolers.fish ~/.config/fish/functions/

依赖关系

~47–63MB
~1M SLoC