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
初始化
准备工作:
- 您需要知道Okta AWS应用程序SSO URL。应该像https://domain.okta.com/app/amazon_aws/`app-id`/sso/saml。
- 您已经设置了电子邮件/密码/google 2fa。
- 在此过程中,我们将重置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)
- 正确包装并添加测试
欢迎投稿。