【问题标题】:Inheriting a Security Group From Itself从自身继承安全组
【发布时间】:2017-02-03 04:22:53
【问题描述】:

我在一个安全组中有多个 EC2 实例,我想确保所有其他 EC2 实例都可以访问同一安全组中的任何其他实例。

如果我尝试这样做,我会收到循环引用错误:

    "XYZSecurityGroup": {
  "Type": "AWS::EC2::SecurityGroup",
  "Properties": {
    "VpcId": {
      "Fn::ImportValue": {
        "Fn::Sub": "${NetworkStackName}-VPCID"
      }
    },
    "SecurityGroupIngress": [
      {
        "IpProtocol": "tcp",
        "FromPort": "80",
        "ToPort": "80"
      },
      {
        "IpProtocol": "tcp",
        "FromPort": "27017",
        "ToPort": "27017",
        "SourceSecurityGroupId": {"Ref": "XYZSecurityGroup"}
      }

创建一个单独的 SecurityGroupIngress 元素似乎会覆盖我现有的设置。那么如何让同一个安全组中的所有实例互相看到呢?我还希望这个安全组接受来自另一个安全组的流量。

【问题讨论】:

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

AWS::EC2::SecurityGroup documentation 中所述,您可以使用AWS::EC2::SecurityGroupEgressAWS::EC2::SecurityGroupIngress 资源来定义自引用安全组规则:

重要

如果您想在这些安全组的入口和出口规则中交叉引用两个安全组,请使用 AWS::EC2::SecurityGroupEgressAWS::EC2::SecurityGroupIngress 资源来定义您的规则。不要使用AWS::EC2::SecurityGroup 中嵌入的入口和出口规则。如果这样做,则会导致循环依赖,这是 AWS CloudFormation 所不允许的。

【讨论】:

    猜你喜欢
    • 2020-04-28
    • 1970-01-01
    • 2023-03-27
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多