【问题标题】:Set up a connection to AWS RDS from a MySQL client using AMI as authentication layer.使用 AMI 作为身份验证层从 MySQL 客户端设置到 AWS RDS 的连接。
【发布时间】:2016-06-28 17:11:19
【问题描述】:

我想建立与我们的一个 AWS RDS 实例的连接,以连接到想要使用 MySQL 客户端 (Toad) 的外部远程协作者。

我可以设置一个安全组并授予对数据库的访问权限,以便接受来自其办公室 IP 的连接,但这有点太暴露了,并且没有用户责任。或者,我们可以创建一个 VPN 用户来连接到我们的办公室,但这在过去远非理想,我更喜欢研究其他选项。

IAM 提供了良好的安全层,但在这种情况下是否可以将其用作身份验证层?

【问题讨论】:

    标签: amazon-web-services amazon-rds amazon-iam


    【解决方案1】:
    1. 创建一个 Jump Host EC2 实例并授予该 EC2 实例访问 您的 RDS 数据库,因此您必须将其 IP 地址列入白名单 EC2 实例,而不是整个办公室。
    2. 为要访问数据库的人创建一个 SSH 用户 在 Jump Host EC2 实例上。
    3. 要求此人使用“标准 TCP/Ip”连接到数据库 通过 SSH”使用 Toad。
    4. 这将实现您不将整个办公室列入白名单的用例 IP 地址和使用 SSH 可以实现用户责任。

    【讨论】:

      【解决方案2】:

      从安全的角度来看,白名单 IP 和在 MySQL 中被授予最小权限访问的唯一用户是这些实现的常见安全设置,非常安全,并提供完整级别的用户责任、跟踪和审计。您知道每个用户的访问权限,并且它只能来自一个 IP。你知道那个用户是谁。您可以控制他们可以在数据库中访问的内容。

      我认为添加 IAM 层是不可能的,即便如此,它仍然是另一种形式的用户身份验证和授权,就像 MySQL 登录所提供的一样。

      归根结底,您需要信任该用户以您希望授予的方式访问您的数据。白名单 IP 和唯一登录非常安全。借助 RDS 的 SSL 端点,数据在传输中也是安全的。我根本没有看到任何不合理的安全风险。这种设置是标准的,并且在任何安全数据环境中都是强制性的,例如在符合 PCI 的应用程序中的支付处理中。

      恕我直言,在这种过度杀伤和增加管理负担的情况下,任何其他实现都没有太多好处。

      为了进一步确保安全,请让每个用户签署一份安全政策,明确描述他们访问数据的限制和范围、他们保护其帐户密码的义务,而不是共享帐户等。信任是好的,但强有力的政策声明会强制执行有关数据安全的适当行为。

      【讨论】:

      • 白名单 IP 将用于办公室中的所有设备,因此无法知道谁在使用该连接。数据库存储敏感信息,这就是我们认为这种安全设置不够的原因。
      • 是的,我明白了。但是每个用户还必须有一个唯一的 MYSQL 登录数据库。这允许您识别和记录对敏感信息的所有用户和管理访问。这允许您控制允许用户查看或修改的内容,并根据他们的组织角色执行此操作。这还允许您在用户不再为组织工作时删除帐户。再加上安全策略,您就拥有了一个非常安全的访问框架。
      • 同样,通过这种方式可以知道谁在使用连接。
      猜你喜欢
      • 1970-01-01
      • 2022-12-10
      • 2019-05-14
      • 2018-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多