我想建立一个连接到我们的一个AWS RDS实例到一个想要使用MySQL客户端(Toad)的外部远程协作者。
我可以建立一个安全组和访问权限到数据库,以便接受来自他们的办公室IP的连接,但是这有点太暴露了,并且没有用户责任。或者,我们可以创建一个VPN用户来连接到我们的办公室,但这在过去远远不够理想,我更愿意研究其他选择。
IAM提供了一个很好的安全层,但是在这种情况下是否可以将其用作身份验证层?
- 创建一个跳转主机EC2实例,并赋予该EC2实例访问权限您的RDS数据库,因此您必须将IP地址列入白名单EC2实例而不是整个办公室。
- 为将要访问数据库的用户创建SSH用户
- 要求用户使用"标准TCP/Ip"连接到数据库
- 这将实现不将整个办公室列入白名单的用例IP地址和使用SSH可以实现用户问责。
从安全的角度来看,在MySQL中被授予最低权限访问权限的白名单IP和唯一用户是这些实现的常见安全设置,非常安全,并提供完整级别的用户责任、跟踪和审计。您知道每个用户的访问权限,并且它只能来自一个IP。你知道那个用户是谁。你可以控制他们在数据库中可以访问什么。
我不相信添加IAM层是可能的,即使这样,它仍然是另一种形式的用户身份验证和授权,就像MySQL登录将提供。
在一天结束时,您需要信任该用户以您希望授予的方式访问您的数据。白名单IP和唯一登录是非常安全的。使用RDS中的SSL端点,数据在传输过程中也是安全的。我完全没有看到任何不合理的安全风险。这种设置是标准的,在任何安全数据环境中都是强制性的,例如在PCI兼容应用程序中的支付处理中。在此基础上的任何其他实现都增加了管理负担,但没有很多好处。
为了进一步的安全性,让每个用户在安全策略上签字,该策略清楚地描述了他们访问数据的限制和范围,他们保护自己帐户密码的义务,而不是共享帐户,等等。信任是好的,但是强有力的策略声明会强制执行有关数据安全性的适当行为。