#aws-credentials #group #keycloak #account #saml #aws-cli #manage

app saml2aws-auto

当使用SAML和Keycloak时,这是一个简单的AWS凭据管理工具

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

Download history 7/week @ 2024-03-10 10/week @ 2024-03-31

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-stagingmy-accounts-prod。这意味着前缀将捕获这两个账户。如果您还有 my-other-accounts-stagingmy-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 addrefresh命令)来绕过此问题。

示例

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