我不明白我必须在我的vpc中设置哪个规则才能使postgres端口仅适用于同一vpc中的其他实例。Aws开放端口到另一个实例但未公开
让我澄清:
172.30.0.183是我的数据库。
172.30.0.207实例的
172.30.0.165实例B
他们是在同一个VPC。 如果我将包含入站规则的端口5432(postgres)绑定到0.0.0.0/0,我可以从Internet访问我的数据库,但我不希望这样。 我只想让我的实例A和B能够连接它。
我该怎么做?
我不明白我必须在我的vpc中设置哪个规则才能使postgres端口仅适用于同一vpc中的其他实例。Aws开放端口到另一个实例但未公开
让我澄清:
172.30.0.183是我的数据库。
172.30.0.207实例的
172.30.0.165实例B
他们是在同一个VPC。 如果我将包含入站规则的端口5432(postgres)绑定到0.0.0.0/0,我可以从Internet访问我的数据库,但我不希望这样。 我只想让我的实例A和B能够连接它。
我该怎么做?
需要两个安全组正确做到这一点。
第一个不需要任何入口规则。我们称之为“DatabaseClient”。附加到实例A和B.
现在创建另一个组。打开端口5432到在“DatabaseClient”组下运行的任何实例。称它为“DatabaseServer”。将它与postgres服务器关联起来。
你完成了。
下面是一个如何通过云计算实现此功能的示例 - 您需要知道VPC ID才能运行它。
{
"Description" : "Postgres access",
"Parameters" : {
"VpcId" : {
"Type" : "String"
}
},
"Resources" : {
"PGClient" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"VpcId" : { "Ref" : "VpcId" },
"GroupDescription" : "Associate with instances that need db access."
}
},
"PGServer" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"VpcId" : { "Ref" : "VpcId" },
"GroupDescription" : ".",
"SecurityGroupIngress" : [
{
"IpProtocol" : "tcp",
"FromPort" : "5432",
"ToPort" : "5432",
"SourceSecurityGroupId" : { "Ref" : "PGClient" }
}
]
}
}
}
}
如果您不想为此使用cloudformation,则可以先创建DatabaseClient安全组,然后在创建或编辑您的DatabaseServer安全组时,请将DatabaseClient安全组引用为源中的“自定义IP”。 – daxlerod
这是我第一次尝试没有成功! 我转到了https://console.aws.amazon.com/vpc屏幕,我可以在输入字段“source”时看到这些建议,但系统并未建议您的IP范围如您所描述图片。 我做了相同的配置,仍然无法连接! –
另一件事。 “/”32,24,16,15之后的数字的意思是什么? 对不起,基本问题。 –
谢谢你,你帮了我。该实例仅与一个安全组相关联。 –