我正在尝试在ElasticSearch
上创建EC2
服务器群集。 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
答案 0 :(得分:2)
通过将同一安全组与每个实例相关联来标识一组EC2实例。 是分组。
要允许来自同一安全组内实例的特定端口上的入站流量,请添加一个入站规则,其中流量源是安全组本身。使用私有IP在实例之间进行通信。
顺便说一句,您可以使用AWS代表您创建的default security groups来查看此模式。这些默认安全组在其入站规则中将自己指定为源安全组。