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
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 将按以下顺序查找凭证。
- 环境变量:AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY
- AWS 配置文件中的 credential_process 命令,通常位于 ~/.aws/config。
- AWS 凭证文件。通常位于 ~/.aws/credentials。
- 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