我所在的公司使用 okta 的旧版 AWS 登录。因此,为了使用 aws-cli,需要使用 aws-okta 实用程序,该实用程序要求在运行任何 aws-cli 命令之前进行 okta MFA。
我正在 terraform 中编写基础设施,但我还没有找到如何让 terraform 使用 okta 以便能够创建 aws 组件。
这可能吗?
此外,这需要在 ci/cd 管道中运行,但我不确定由于 MFA 它在那里会如何工作,您能给我什么建议吗?
答案1
是的……Okta 有相当多的方法。Okta 让 SSO/联合身份变得非常简单,跨 AWS、第三方 SaaS 工具和使用 LDAP 身份验证的传统工具等,提供广泛的日志/审计跟踪
https://github.com/oktadeveloper/okta-aws-cli-assume-role
https://github.com/segmentio/aws-okta
https://bitbucket.org/atlassian/cloudtoken/src/master/
https://github.com/Nike-Inc/gimme-aws-creds
我们对大约 30 个 AWS 账户使用 gimme-aws-creds。我们的 DevOps 团队和开发团队在 Mac 和 PC 上都使用 docker 容器方法。它允许用户在特定的 AWS 账户中承担角色,您可以在 PC 上运行 Terraform。您还可以使用 Terraform AWS 提供程序中的承担角色功能
https://www.terraform.io/docs/providers/aws/index.html
从 CI/CD 的角度来看,您不需要 Okta,也不需要 MFA。jenkins EC2 服务器或同等服务器将具有一个实例角色,以承担同一帐户或其他帐户中的其他角色。Terraform 将使用此承担的角色我们使用 Okta 来保护我们的 Jenkins 服务器(LDAP 身份验证)。