AWS 网络 ACL/安全组和 RDS 访问

AWS 网络 ACL/安全组和 RDS 访问

只是想澄清一下我正在创建的新 Amazon 设置中的一些设置。我已经遵循了许多指南,一切似乎都正常且安全,如果对安全问题更了解的人能帮我快速检查一下,我将不胜感激。

我的目标是通过 HTTP 和 HTTPS 访问 EC2 实例,并通过 SSH 访问受 IP 限制的特定 EC2 实例。

网络 ACL 配置为仅访问 SSH、HTTP(S)。

Inbound:
SSH   - Source 0.0.0.0/0 - Allow
HTTP  - Source 0.0.0.0/0 - Allow
HTTPS - Source 0.0.0.0/0 - Allow
ALL   - Source 0.0.0.0/0 - Deny

Outbound:
ALL   - Destination 0.0.0.0/0 - Allow

“HTTP”安全组,适用于所有基于 Web 和管理的 EC2 服务器。

Inbound
HTTP  - Source 0.0.0.0/0
HTTPS - Source 0.0.0.0/0    

Outbound
ALL   - Destination 0.0.0.0/0

“SSH”安全组,应用于管理EC2服务器。

Inbound
SSH   - Source MYIP/32

Outbound
ALL   - Destination 0.0.0.0/0

“DB”安全组,应用于 RDS,并将公共可访问性设置为禁用。

Inbound
MySQL - Source 174.20.0.0/20 (VPC CIDR)

Outbound
ALL   - Destination 0.0.0.0/0

如果我需要直接访问 MySQL,计划是通过管理 EC2 服务器创建一个 SSH 隧道。效果很好。

鉴于上述配置,我应该只能通过端口 22、80 和 443 访问我的设置。为什么如果我在本地机器上执行以下操作:

mysql -h db-instance.abcdef12345.eu-west-1.rds.amazonaws.com -unicksuser -p

它是否会连接并要求我输入密码?

请注意,我实际上无法使用正确的详细信息访问服务器,感觉这不应该可访问,甚至不需要输入密码。

答案1

mysql -p给出的响应最初并不是用于证明与服务器的 IP 连接的有效测试。

MySQL 的客户端/服务器协议使用质询/响应模型,因此密码实际上从未发送到服务器,并且提示不是来自服务器。

相反,客户端在连接到服务器之前会在本地提示您输入密码,事实上,它甚至在验证服务器是否存在之前就会提示您输入密码。

$ mysql -p -h lol.psych.example.com

使用此或任何无意义的值作为目标主机名来说明这是真的。密码提示会立即出现。

相关内容