6 个版本 (3 个重大变更)
0.5.0 | 2022 年 7 月 30 日 |
---|---|
0.4.1 | 2022 年 5 月 3 日 |
0.3.1 | 2022 年 3 月 15 日 |
0.2.4 | 2022 年 3 月 4 日 |
#495 在 身份验证 中
每月下载 26 次
505KB
1K SLoC
awsctx
带有模糊查找器的 AWS 配置文件上下文管理器
演示
用法
help
命令显示每个命令的用法。
$ awsctx --help
USAGE:
awsctx [OPTIONS] [SUBCOMMAND]
OPTIONS:
-h, --help
Print help information
-v, --verbose
Enable verbose output
-V, --version
Print version information
SUBCOMMANDS:
active-context
Show active context in the credentials
auth
Auth awscli with the specified profile by pre-defined scripts, then make it active
completion
Generate completion script
help
Print this message or the help of the given subcommand(s)
list-contexts
List all the contexts in the credentials
refresh
Auth awscli for the active profile by pre-defined scripts
use-context
Updates a default profile by a profile name
安装
Homebrew(仅限 macOS)
$ brew tap hiro-o918/homebrew-tap
$ brew install awsctx
CLI
注意:需要 jq
⬇️ 下载二进制文件并将其移动到 /usr/local/bin
macOS
$ curl -s https://api.github.com/repos/hiro-o918/awsctx/releases/latest \
| jq -r '.assets[] | select(.name | test("^awsctx_v[0-9]+\\.[0-9]+\\.[0-9]+_x86_64-apple-darwin\\.tar\\.gz$")) | .browser_download_url' \
| xargs wget -O - \
| tar zxvf - \
&& mv awsctx /usr/local/bin
Linux
$ curl -s https://api.github.com/repos/hiro-o918/awsctx/releases/latest \
| jq -r '.assets[] | select(.name | test("^awsctx_v[0-9]+\\.[0-9]+\\.[0-9]+_x86_64-unknown-linux-musl\\.tar\\.gz$")) | .browser_download_url' \
| xargs wget -O - \
| tar zxvf - \
&& mv awsctx /usr/local/bin
配置
configs.yaml
awsctx
指的是位于 ~/.awsctx/configs.yaml
的配置。如果您运行一次 awsctx
,则会生成配置文件,或者您可以手动创建一个到 ~/.awsctx/configs.yaml
以下为 configs.yaml
的用法和示例
# Configurations for awsctx
# You can manually edit configurations according to the following usage
# To use subcommand `auth` or `refresh`, fill the below configs for each profile.
auth_commands:
# configuration for `foo` profile with aws configure
foo: |
# you can use pre-defined parameter `{{profile}}` which is replaced by key of this block
# In this case, `{{profile}}` is replaced by `foo`
aws configure --profile {{profile}}
# configuration for `bar` profile with [onelogin-aws-cli](https://github.com/physera/onelogin-aws-cli)
bar: |
# In this case, name of one-login configuration is same as `profile`
onelogin-aws-login -C {{profile}} --profile {{profile}} -u [email protected]
# default configuration for profiles without auth configuration
__default: |
aws configure --profile {{profile}}
配置完成
要启用完成,请运行以下命令。如果您通过 homebrew 安装 awsctx
,则不需要此操作
$ awsctx completion --shell zsh > /path/to/completions/_awsctx
请将 /path/to
替换为环境中的路径。 bash
、elvish
和 fish
也作为 --shell
选项可用
工作原理
登录
使用指定的配置文件名以某种方式授权您的 shell。然后,您将获得 ~/.aws/credentials
,如下所示
[foo]
aws_access_key_id = XXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXX
aws_session_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[bar]
aws_access_key_id = YYYYYYYYYYY
aws_secret_access_key = YYYYYYYYYYY
aws_session_token = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
通过 CLI 更新默认配置文件
使用 use-context
update ~/.aws/credentials
将包含与选项中指定的值相同的 default
配置文件
$ awsctx use-context -p foo
例如,上述命令将更新凭证如下。
[foo]
aws_access_key_id = XXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXX
aws_session_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[bar]
aws_access_key_id = YYYYYYYYYYY
aws_secret_access_key = YYYYYYYYYYY
aws_session_token = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
[default]
aws_access_key_id = XXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXX
aws_session_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
依赖项
~17–28MB
~422K SLoC