Cloudformation 安全组

Cloudformation Security Group

我正在尝试在 EC2 上创建一个 ElasticSearch 服务器集群。 ElasticSearch 使用一些已定义的端口来复制和执行领导者选举等任务。我想在我的 CloudFormation‎ 模板中创建一个安全组来锁定这些端口,这样只有 ElasticSearch 服务器集群中的服务器才能相互通信。

有没有一种简单的方法可以将一组服务器识别为一个集群,然后仅将端口访问权限分配给这些服务器?

我可能遗漏了一些明显的东西,但我无法获得我的 CloudFormation‎ 模板来构建我想要的模型。

更新了我现有的 SG。这抱怨循环引用。

ESSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
        GroupDescription: ES Node SG
        VpcId: !FindInMap [ EnvParams,  !Ref EnvironmentName, vpc ]
        SecurityGroupIngress:
            - FromPort: 9200
              ToPort: 9200
              SourceSecurityGroupId: !Ref ESSecurityGroup
              IpProtocol: tcp
            - FromPort: 9300
              ToPort: 9300
              SourceSecurityGroupId: !Ref ESSecurityGroup
              IpProtocol: tcp

您通过将相同的安全组与每个实例相关联来标识一组 EC2 实例。那就是分组。

要允许来自同一安全组内实例的特定端口上的入站流量,请添加入站规则,其中流量的来源是安全组本身。使用私有 IP 在实例之间进行通信。

顺便说一句,您可以使用 AWS 代表您创建的 default security groups 查看此模式。这些默认安全组在其入站规则中将自己指定为源安全组。