当前位置: 首页 > 知识库问答 >
问题:

AWS安全组难题

公羊凌
2023-03-14

我有一个用于RDS实例的AWS安全组。

我还有一个用于 EC2 实例的 AWS 安全组。

我设置了它,因此EC2实例的安全组用作我用于RDS实例的安全组的入口。

在我的EC2实例中,我可以使用mysql命令毫无问题地访问RDS实例。

但是,如果我尝试使用带有MySQLi的PHP脚本来访问RDS实例,它将无法连接。

如果我将EC2实例的实际AWS IP地址作为入口添加到RDS安全组,那么使用MySQLi的PHP脚本可以正常工作。

知道为什么会这样吗?

  1. RDS和EC2安全组都在同一个VPC上。
  2. 当添加EC2私有地址而没有其他更改时,软件连接良好。

这就是为什么行为让人费解

共有1个答案

盖昀
2023-03-14

典型的安全配置为:

  • Amazon EC2 实例 (App-SG) 上的安全组,具有所需的入站权限和默认的“全部允许”出站权限
  • 亚马逊 RDS 数据库 (DB-SG) 上的一个安全组,允许从应用程序 SG 在端口 3306 (MySQL) 上进行入站访问

也就是说,DB-SG在其入站规则中专门引用App SG

EC2 实例上的软件应通过其 DNS 名称引用 RDS 数据库,该名称将解析为私有 IP 地址 (假设 EC2 实例和 RDS 数据库位于同一 VPC 中)。

如果您的配置适用于EC2实例上的mysql命令,那么它也应该适用于MySQLi访问,因为它们都将连接到同一端口上的同一目标DNS名称(3306)。

 类似资料:
  • 我想问一下关于在AWS中连接EC2到RDP的问题。 我已经将我的EC2安全组(包含EC2实例)添加到默认的RDP组中,数据正在流动——连接正常。 EC2安全组启用了端口80到0.0.0.0/0以及SSH到我的IP。 我有点担心,通过将这个EC2组添加到RDS数据库,它将允许来自任何地方的端口80流量访问数据库。这是对的还是错的? 如果像这样连接RDS实例,EC2中的规则是否适用于它们? 我确实在A

  • 我正在尝试使用ELB部署一些nodejs站点,但ELB和EC2实例的安全组都存在一些问题。 我想做的是允许ELB接受端口80请求,并将这些请求转发到EC2实例上的端口3000,我不希望EC2实例可以从Internet直接访问,它们应该只能通过负载均衡器(在端口3000上)访问。 因此,在我的公有子网的 VPC 中,我有: < li >设置转发80 (HTTP)到3000 (HTTP)的ELB <

  • 我有一个ec2实例,它正在运行一个网站并关联ALB。 通常作为ec2实例安全组内部的一种做法,alb安全组是被引用的,但在这里,客户端具有这样的配置,即在ec2实例内部,源是安全组本身的名称。 但是,对于允许所有流量和所有端口的入站规则来说,这意味着什么,但是对于source=。 我对使用与源相同的安全组名称感到困惑,这一规则将意味着什么?

  • 我有多个AWS安全组,我想从另一个安全组在一个安全组中创建入站流量规则。我可以从AWS控制台做到这一点,但我想使用java api实现自动化。我怎么能做到呢? 对于使用Cidr块的简单规则,我使用了AuthorizeSecurityGroupingResequest,但在这里我找不到实现这一点的方法。 示例代码:

  • 安全组是一种虚拟的包过滤防火墙,通过设置安全组出入方向的规则来控制关联的虚拟机的访问策略。如控制虚拟机是否被其他网络可以被访问,以及虚拟机可访问的外部资源等。 安全组是一种虚拟的包过滤防火墙,通过设置安全组出入方向的规则来控制关联的虚拟机的访问策略。如控制虚拟机是否被其他网络可以被访问,以及虚拟机可访问的外部资源等。一个虚拟机支持关联多个安全组(最多5个)。 安全组规则策略默认为严进宽出。 入方向

  • Security group通过Linux IPtables来实现,为此,在Compute节点上引入了qbr*这样的Linux传统bridge(iptables规则目前无法加载到直接挂在到ovs的tap设备上)。首先在Control节点上用neutron port-list命令列出虚拟机的端口id,例如: # neutron port-list+--------------------------