Okta AWS Saml凭证帮助程序

okta-aws-credential-helper的Python项目详细描述


Okta_aws_cred_helper

Okta AWS凭证助手。

您只需要以下步骤来设置自动从okta派生的aws凭据文件。程序是

okta-aws-cred-helper init
okta-aws-cred-helper refresh

# then you are ready to go.
AWS_PROFILE=okta-role aws s3 ls
# If you need to know what profiles are available to you, you need to check your aws credentials file, i.e. ~/.aws/credentials

# when your DevSecOps made change on permissions, you need to refresh your local aws credentials file to pick up the change.
okta-aws-cred-helper refresh

安装

pip install okta-aws-credential-helper

初始化

准备工作:

  1. 您需要知道Okta AWS应用程序SSO URL。应该像https://domain.okta.com/app/amazon_aws/`app-id`/sso/saml
  2. 您已经设置了电子邮件/密码/google 2fa。
  3. 在此过程中,我们将重置okta google 2fa代码。你需要一个二维码扫描器应用程序(除了谷歌2fa应用程序),以便它可以读取totp代码。一个有用的应用程序可以是:https://play.google.com/store/apps/details?id=com.tohsoft.qrcode.pro

阅读您的TOTP代码

登录您的OKTA帐户并重置您的2FA代码。重置时,当二维码仍显示时,使用二维码扫描仪对二维码进行解码,如下所示

otpauth://totp/xxx.okta.com:<your-email>?secret=<totp-code>&issuer=xxx.okta.com

把totp代码记下来,以后再使用。

初始化OKTA凭据

执行

okta-aws-cred-helper init

根据问题输入答案。系统将要求您输入sso_url、okta用户名(电子邮件)、okta密码、totp代码(您以前已标记为down)。请注意,您输入的任何内容都将返回到屏幕。请注意不要偷窥。

查看您的OKTA凭据设置

注意您的okta凭据设置存储在文件~/.aws/okta-aws/settings.json中。保密。以后也可以直接编辑此文件,而不是运行okta-aws-cred-helper init命令。

初始化后,文件应该如下所示

{
  "sso_url": "https://domain.okta.com/app/amazon_aws/aaaaabbbbbcccccDDDDD/sso/saml",
  "region": "ap-southeast-2",
  "user_name": "name@email.com.au",
  "password": "<password>",
  "google_2fa_totp": "<totp code>"
}

自动设置~/.aws/credentials文件

执行

okta-aws-cred-helper refresh

此命令将修改您的~/.aws/credentials以获取从okta派生的新凭据。来自okta的凭据将被定义为名称以okta-开头的配置文件。

注意到在{{CD4}}中存在的凭据,而不是从^ {< CD6>}开始的配置文件名称将完整。

执行此命令后,只需检查~/.aws/credentials的内容,就可以熟悉okta允许您承担的角色。您还可以将其他个人配置文件配置为来自这些okta-配置文件。

缓存

此进程使用目录~/.aws/okta-aws作为临时凭据缓存。

刷新

此工具会自动为您刷新场景背后的凭据。

速度

刷新凭据时,您可能会感到aws工具(boto脚本或awscli)冻结了几秒钟。这通常发生在每30秒的边缘。当这个工具检测到它接近每30秒结束时,它会一直等到这个30秒的窗口通过,以避免由于网络延迟或同步时间导致的google 2fa认证失败。

提高

视图中包含以下项:

  • 使用更安全的存储。
  • 在Windows上测试
  • 在Linux上测试(ubuntu)
  • 添加简单的角色假设支持
  • 允许对登录URL进行签名(使用awslogin
  • 正确包装并添加测试

欢迎投稿。


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

推荐PyPI第三方库


热门话题
在Android应用程序中处理新活动时出现java NullPointerException   从PSV文件读取Java   在JavaSwing中将方法从一个类传递到另一个类   带有MongoDB错误的java Vertx ClassNotFoundException:com。mongodb。联系溪流工厂   在java中替换2D数组中的数字?   java Avro方案空布尔和双整数布尔的写并集   java导入组织。neo4j无法解决?   从另一个获取变量。使用反射的java文件   Java:以格式化字符串的形式返回具有非常不同的条目长度的2D数组   java客户端应用程序正在从IBMMQ接收不同格式的消息体   java在我的主循环中的步骤有问题   java如何正确安装来自sslforfree的证书。tomcat服务器上的com   java RecyclerView变更单永久   java如何获得屏幕的精确中间位置,即使调整了大小