用于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

usernamepassword是身份验证所需的值 针对为所选配置文件配置的idp。那factor 仅当您的idp需要duo进行身份验证时才需要。如果 不需要,请将factor留空。如果你的国内流离失所者确实需要二人组 那么Factor可以是autopushpasscode中的一个, 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证书的问题而受到支持, 以及其他已知问题。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么数据库最类似于Map,每个用户/id存储无限多个“键”和“值”?   java仅使用super pom进行测试   内存不足如何解析java。OutOfMemoryError:Java堆空间在增加堆大小的情况下将意味着延迟OutOfMemoryError   来自另一个类的mysql和java jdbc调用[运行时应用程序]   java通过下拉菜单更改搜索框搜索的内容   JAVAlang.ClassNotFoundException:sun。jdbc。odbc。JdbcOdbcDriver   java Selenium点击链接   JavaSpringHibernate:从唯一值列表中获取对象列表   java Bing广告与桌面身份验证问题   java如何在没有任何外部SDK的情况下从安卓打印到收据打印机?   未调用java菜单片段类   java在IDEA和PyCharm中同时为同一个项目工作   java我们如何为同一个异常提供不同的海关信息   jakarta ee中是否预定义了“请求”和“响应”变量或值?   java更好地解决“之前和之后”难题?   尝试将数据从Excel添加到Java   发送电子邮件的Java代码只适用于一个电子邮件id?   java如何从资产解析XML?