如何使用 IAM 角色设置 AWS 客户端 VPN 进行身份验证?

如何使用 IAM 角色设置 AWS 客户端 VPN 进行身份验证?

上下文:我正在尝试在 VPC 的 private_isolated 子网中设置 Postgres RDS。我想使用 pgAdmin 来处理它,这意味着我需要一个堡垒或 VPN 连接。堡垒需要长时间运行的 EC2 实例,而我目前根本没有运行任何 EC2。我想设置 VPN 连接,因为这似乎更切题。但是我们没有 AD 或 SAML 提供程序 - 我们有 IAM 用户和 SSO 来启动 AWS 会话。更新:我意识到 IAM 可以在 RDS 级别使用以允许会话登录。https://aws.amazon.com/premiumsupport/knowledge-center/users-connect-rds-iam/因此这至少涵盖了一个相关问题。

客户端 VPN 似乎通常使用 AD 或 SAML 提供商进行设置,或者使用手动创建的证书进行手动相互身份验证。前一种选择似乎有些过头了 - 我们是一家小公司,不需要 AD 或单独的 SAML 提供商。而另一方面,手动证书似乎容易出现人为错误,因为设置 CA 或让每个用户上传客户端证书需要做很多工作。

我是系统管理方面的新手。为什么我不能使用 IAM SSO 创建允许我进行一小时 VPN 访问的密钥,我如何登录管理控制台或使用 CLI 进行操作?使用 SAML 选项可以做到这一点吗?我问错问题了吗?

谢谢!

答案1

考虑到您希望将数据库放在私有子网中,唯一的连接方式是通过 VPN 或 DirectConnect(昂贵),或者通过可以访问数据库的 EC2 实例(堡垒)(参见文档https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Scenarios.html#USER_VPC.Scenario3)。

最具成本效益的方法是使用 EC2 实例。您无需使用 SSH 和复杂的密钥,而是可以在实例中配置 SSM 代理并允许用户通过控制台进行访问。以下是文档:https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html

答案2

到目前为止,我得出的结论是“你不能”是简短的答案。在 bash 脚本中可能存在一些迂回的方法,可以使用 IAM 用户访问某些证书,然后使用这些证书连接到 VPN。

相反,@palvarez 提到的替代方案可能是遇到类似问题的人的最佳解决方案。

相关内容