22个稳定版本
使用旧版Rust 2015
1.13.2 | 2023年6月17日 |
---|---|
1.13.0 | 2023年3月9日 |
1.11.0 | 2022年6月10日 |
1.10.2 | 2021年11月3日 |
1.6.0 | 2018年7月5日 |
#86 in 身份验证
95 每月下载次数
72KB
2K SLoC
saml2aws-auto
这是一个命令行界面,用于在通过SAML进行身份验证时管理多个AWS账户凭据。账户组织在组中,可以使用一条命令进行刷新。
安装
brew install rukenshia/repo/saml2aws-auto
GitHub发布 页面包含所有主流平台的存档。下载适用于您的平台的版本,并确保 saml2aws-auto
在您的PATH变量中。
如果您已安装Rust,可以使用以下命令
cargo install saml2aws-auto
Linux
如果您使用Linux,您需要运行saml2aws-auto之前设置一个秘密工具。您可以在故障排除部分找到更多信息。
功能
- 通过SAML进行身份验证时检索AWS凭据(目前仅支持Keycloak,MFA是强制性的)
- 管理组织在组中的多个账户
- 考虑令牌过期时间(如果它们仍然有效,则不会刷新)
入门
下载并安装 saml2aws-auto
后,您可以使用此命令添加新组
$ saml2aws-auto groups add my-accounts --prefix my-accounts --role Administrator
Welcome to saml2aws-auto. It looks like you do not have a configuration file yet.
Currently, only Keycloak is supported as Identity Provider. When setting the
IDP URL, please note that you will have to pass the exact path to the saml client of Keycloak.
让我们将命令分解成几个部分
saml2aws-auto groups add
告诉CLI添加一个新组。my-accounts
告诉CLI您希望用于组的名称。这可以是任何东西。--prefix my-accounts
告诉它您想要针对的所有账户都以my-accounts
开头。在我们的示例中,我们有两个账户:my-accounts-staging
和my-accounts-prod
。这意味着前缀将捕获这两个账户。如果您还有my-other-accounts-staging
和my-other-accounts-prod
,但想要所有四个账户都在同一个组中,您可以使用前缀my-
。--role Administrator
识别用于所有账户的角色。
如果您以后想向现有组添加新账户,可以使用--append
标志。如果您想针对特定账户,可以传递--accounts [account names,]
。使用saml2aws-auto groups add --help
获取更多信息。
接下来,您将需要回答几个问题
? IDP URL [localhost]: https://my.idp/realms/myrealm/protocol/saml/clients/aws
? IDP Username: my.username@company.com
? IDP Password []: my.password
All set!
? MFA Token [000000]: 123456
您的密码将存储在平台的原生凭据管理器中。
您输入MFA令牌后,组将为您配置
Listing allowed roles for your account SUCCESS
my-accounts:
my-accounts-staging: arn:aws:iam::1234567890:role/Administrator
my-accounts-prod: arn:aws:iam::1234567891:role/Administrator
Group configuration updated
现在您唯一要做的就是刷新您的凭据
$ saml2aws-auto refresh my-accounts
? MFA Token [000000]: 123456
Refreshing my-accounts-staging SUCCESS
Refreshing my-accounts-prod SUCCESS
Refreshed group my-accounts. To use them in the AWS cli, apply the --profile flag with the name of the account.
Example:
aws --profile my-accounts-staging s3 ls
更改密码/用户名/其他配置
您可以使用saml2aws-auto configure
重新配置您的详细信息。如果您需要连接到多个IDP,可以使用--config
选项为saml2aws-auto提供一个单独的配置文件路径。
用法
您可以通过输入saml2aws-auto help
与工具进行交互式探索。这也适用于任何子命令。
故障排除
我在代理后面
如果您正在使用代理,您需要设置代理使用的常用环境变量。
http_proxy
- 通过提供的代理路由所有HTTP流量(例如http://user:password@localhost:1234
)https_proxy
- 通过提供的代理路由所有HTTPS流量(例如http://user:password@localhost:1234
)
对于saml2aws-auto
,所有请求通常都发送到HTTPS端点,因此建议配置https_proxy
。
我的密码无法存储
一些用户报告了凭据管理方面的问题。如果您的密码无法正确存储,您可以使用--skip-password-manager
标志结合--password
标志(带有groups add
和refresh
命令)来绕过此问题。
示例
saml2aws-auto --skip-password-manager groups add example --role Administrator --prefix example --password "my password"
名称org.freedesktop.secrets未由任何.服务文件(org.freedesktop.DBus.错误.ServiceUnknown)))
这是一个特定于Linux的错误,告诉您目前您还没有任何实现Freedesktop Secret Service的密钥管理器。通常,GNOME-Keyring或另一个工具是预安装的。打开它并配置您的密码和默认的密钥库,然后尝试重新运行saml2aws-auto。 另一个提供此API的应用程序的链接
依赖关系
~17–37MB
~582K SLoC