我不明白我必须在我的vpc中设置哪条规则才能使postgres端口仅用于同一个vpc中的其他实例。
让我澄清一下:
172.30.0.183是我的数据库。
172.30.0.207实例A
172.30.0.165实例B
他们在同一个VPC中。 如果我将入站规则包含到绑定到0.0.0.0/0的端口5432(postgres),我可以从Internet访问我的数据库,但我不希望这样。 我只想让我的实例A和B能够与它连接。
我该怎么做?
答案 0 :(得分:1)
您需要两个安全组才能正确执行此操作。
第一个不需要任何入口规则。我们称之为“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" }
}
]
}
}
}
}