如何在 VPC 中验证 EBS 和 RDS?

Posted

技术标签:

【中文标题】如何在 VPC 中验证 EBS 和 RDS?【英文标题】:How to verify EBS and RDS in VPC? 【发布时间】:2020-11-09 04:38:20 【问题描述】:

我相信我已经在 VPC 中成功设置了 EBS 实例和 RDS 实例!它的结构是这样的:

弹性负载均衡器:可在互联网上公开使用 弹性实例:在私有子网中 RDS 实例:在私有子网中

我可以做什么,在 AWS 和外部通过测试,来验证我的弹性实例在 VPC 中受到保护并且我的 RDS 实例也受到保护?

非常感谢!

【问题讨论】:

【参考方案1】:

除了@Marcin 的 cmets,我还将执行以下操作以确保您遵循最佳实践:

启用 ELB 上的访问日志以获取有关谁正在访问 ELB 的某种日志。肯定会帮助解决问题。 在 ASG 中安装您的 ec2。 创建证书并终止 ELB 上的 HTTPS 连接,或者您可以通过 HTTPS 并终止 ec2 上的 SSL。 使用 ELB 中的重定向功能将所有请求从 http 端口重定向到 https。

现在,回答您关于如何测试安全性的问题:

尝试直接通过 ssh 进入您的 ec2。它不应该工作,因为您只允许来自 ELB 的流量并且您的 ec2 位于私有子网中。 尝试访问您的 RDS。它不应该工作,因为它只允许来自 EC2 安全组的流量 在 AWS 上构建堡垒服务器(空白 ec2)并尝试访问 EC2。它不应该工作,因为 ec2 应该只允许来自 ELB 安全组的流量 使用堡垒,尝试访问 RDS。同上,它不应该工作,因为它应该只允许来自 ec2 安全组的流量。

【讨论】:

非常感谢您的回答!真的很感激!!【参考方案2】:

您可以验证以下内容:

    确保实例的 SG 只允许来自 ALB 的 SG 的传入流量。 确保 EB 实例位于私有子网中,即它们没有公共 IP。 确保 RDS 已启用无公共 IP 选项,并且它位于私有子网中。 还要确保 RDS 的 SG 只允许来自 EB 实例的传入连接

【讨论】:

感谢马尔辛的帮助!!对于 1. 这应该允许来自 SG 在 HTTP 或 HTTPS 上的传入流量吗? @NGI 嗨。通常是 HTTP,除非您对端到端 ssl 加密有特殊要求。 @NGI 是的,但这需要对 ALB 和您的 EB 实例进行更多设置和更改。它不会开箱即用。 目前您的实例使用HTTP,所以您需要在实例的SG中允许这个。对于 ALB 和实例之间的 HTTPS,您需要 ALB 上的 HTTPS 侦听器、实例上的自签名 SSL 证书并重新配置 nginx 以使用 ssl。 当,好的,我明白了。再次感谢您的帮助马辛!向你学习很多:-)

以上是关于如何在 VPC 中验证 EBS 和 RDS?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 mySQL 工作台连接到 AWS 私有子网 VPC 中的 RDS

如何修复AWS DMS到RDS的连接错误?

在VPC中访问RDS posgtgreSQL?

如何使用 terraform 连接不同 VPC 中的副本 Postgres RDS 及其源?

从 VPC 中的 Elastic Beanstalk 实例访问 RDS

将一个 VPC 中的 EBS 卷数据传输到另一个 VPC 中的 EFS