2

我有一个在负载均衡器后面的 Beanstalk 中运行的 php 网站。

该网站正在连接到作为 Aurora Serverless 运行的 MySQL 兼容数据库。

弹性 beanstalk 实例和 Aurora 都设置在同一个 VPC 中。

VPC CIDR 为 10.10.0.0/24
弹性 beanstalk 实例的本地 IP 为 10.10.0.18

无服务器 Aurora 集群在 VPC 的两个子网中使用 VPC 终端节点,其 IP 地址为 10.10.0.30 和 10.10.0.75。

尽管 Aurora Serverless 仅限于接受来自 VPC 内部的连接,但出于习惯,我仍然只授予来自 VPC 的用户权限。
因此,例如,我已授予 'user'@'10.10.0.%' 权限

当我的网站尝试连接到数据库时,由于主机不在 10.10.0.0/24 子网中,它试图使用未授予权限的用户访问它,但它被拒绝权限。

以下是我遇到的一些错误:

  • 用户'user'@'10.1.17.79'的访问被拒绝(使用密码:YES)
  • 用户'user'@'10.1.18.17'的访问被拒绝(使用密码:是)
  • 用户'user'@'10.1.19.1'的访问被拒绝(使用密码:YES)
  • 用户'user'@'10.1.19.177'的访问被拒绝(使用密码:是)

如您所见,这些主机都不在我的 VPC 中。

这是因为集群在自己的 VPC 中运行,通过私有链接链接到我的 VPC?

如果是这样,我唯一的选择是使用 % 作为我授予权限的用户的主机吗?

就我个人而言,我希望将其锁定在我的 VPC 中,以防万一 Serverless Aurora 将来打开互联网连接。

4

1 回答 1

1

不要将任何特定的 IP 地址列入白名单,例如 RDS。尤其是使用 Aurora 无服务器时,节点 IP 可以随时更改,注意它会扩展,您会发现无法知道节点的真实 IP 地址。

请记住,所有 RDS 数据库服务在技术上都在 AWS 托管 VPC 中运行,但是您确实会获得一个附加到您的 VPC 的 ENI,以允许您连接到实例。这使您可以像在您的 VPC 中实际创建资源一样进行通信。

增强安全性的最佳方法是通过安全组和 NACL,结合使用 TLS 和静态加密。最后确保您的密码强度高且经常轮换。

RDS 最佳实践应该可以帮助您深入了解您可以遵循的其他实践以增强您的安全性。

于 2020-06-26T07:12:57.290 回答