Aws打开端口到另一个实例但不公开

时间:2016-02-19 21:30:47

标签: amazon-web-services port vpc

我不明白我必须在我的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能够与它连接。

我该怎么做?

1 个答案:

答案 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" }
          }
        ]
      }
    }
  }
}