用于aws cli的插件,该插件使用saml ecp和sts检索和旋转凭据。
co-awscli-login的Python项目详细描述
awscli登录插件允许通过 针对saml身份提供程序(idp)进行身份验证。 Linux、MacOS和Windows Subsystem for Linux支持此应用程序。 目前,windows powershell、命令提示符和git shell 不支持for windows。
安装
安装awscli登录插件的最简单方法是使用pip:
$ pip install awscli-login
安装awscli登录后,运行以下命令 要启用插件:
$ aws configure set plugins.login awscli_login
开始
在使用awscli登录检索临时凭据之前,请配置 一个或多个用于插件的配置文件。要配置此 插件,你必须知道你的idp的ecp端点的url。如果 您没有此信息,请与IDP管理员联系。
下面是一个配置用于大学的默认配置文件的示例 伊利诺伊州香槟市的IDP:
$ aws login configure ECP Endpoint URL [None]: https://shibboleth.illinois.edu/idp/profile/SAML2/SOAP/ECP Username [None]: Enable Keyring [False]: Duo Factor [None]: Role ARN [None]:
要登录,请键入以下命令:
$ aws login Username [username]: netid Password: ******** Factor: passcode Code: 123456789
username和password是身份验证所需的值 针对为所选配置文件配置的idp。那factor 仅当您的idp需要duo进行身份验证时才需要。如果 不需要,请将factor留空。如果你的国内流离失所者确实需要二人组 那么Factor可以是auto,push,passcode中的一个, sms,或phone。如果factor为空,auto为 默认值。code是用于 Yubikey、短信息代码或其他一次性代码。
如果您可以访问多个角色,系统将提示您选择 一个。例如:
$ aws login Username [username]: netid Password: ******** Factor: Please choose the role you would like to assume: Account: 978517677611 [ 0 ]: Admin Account: 520135271718 [ 1 ]: ReadOnlyUser [ 2 ]: S3Admin Selection: 2
要切换角色,请先注销,然后再次登录,选择不同的 角色。注意,如果您使用相同的用户名登录到相同的idp, 直到您输入密码或Duo Factor IDP会话将过期:
$ aws logout $ aws login Username [netid]: Please choose the role you would like to assume: Account: 520135271718 [ 0 ]: TestUser [ 1 ]: IAMUser Selection: 0
高级示例
可以同时登录到多个角色 使用多个配置文件的时间。例如,考虑以下内容 包含两个配置文件的配置-一个名为prod,另一个名为 test:
$ aws --profile prod login configure ECP Endpoint URL [None]: https://shibboleth.illinois.edu/idp/profile/SAML2/SOAP/ECP Username [None]: netid Enable Keyring [False]: True Duo Factor [None]: auto Role ARN [None]: arn:aws:iam::999999999999:role/Admin $ aws --profile test login configure ECP Endpoint URL [None]: https://shibboleth.illinois.edu/idp/profile/SAML2/SOAP/ECP Username [None]: netid Enable Keyring [False]: True Duo Factor [None]: passcode Role ARN [None]: arn:aws:iam::111111111111:role/Admin
这个例子包含几个高级特性。首先,我们是 设置用户名、系数和角色。这意味着我们不会 登录到这两个配置文件时提示输入此信息。 此外,我们正在使用钥匙圈。在第一次登录时使用 在配置文件中,将提示用户输入密码。打开(放) 随后的登录不会提示用户输入密码 因为它被储存在一个安全的钥匙圈里。
例如,当我们最初登录到prod:
$ export AWS_PROFILE=test $ aws login Password: ******** Code: 123456789
我们只提示输入密码和代码。我们被要求 密码是因为这是初始登录,而代码是因为 此配置文件配置为与密码设备一起使用,如 一个尤比基人。登录测试时不再提示我们:
$ aws --profile prod login
即使在这种情况下,idp会话已经过期,我们也不会 提示输入密码,因为它存储在密匙环中。这个 用户将收到一个电话或推送至默认值 双设备。
已知问题
更改密码后无法进行身份验证
用户更改idp密码后,后续登录将失败。 要纠正这种情况,请按如下方式更改存储在钥匙环中的数据:
$ keyring set awscli_login username@hostname_of_your_IdP
您的操作可能会提示您输入用户登录密码 系统,具体取决于密钥存储的配置方式。
windows问题
windows的powershell、命令提示符和git shell不是 目前由于自动更新aws证书的问题而受到支持, 以及其他已知问题。