我可以在 ec2 启动配置的云形成中使用 public 个安全组吗?

Can I use public security groups in cloud formation for ec2 launch configs?

我可以在 ec2 启动配置的云形成中使用 public 安全组吗? 我试图简单地指示 cloudformation 堆栈使用现有的集合,但它无法创建这些资源。 我尝试将这些安全组创建为每个堆栈的滚动集(ssh1、ssh2...),但也没有这样的运气。

如果您的答案中包含有关如何准确执行此操作的代码片段,那就太好了。谢谢。

可以参考示例模板加深理解。

Amazon EC2 instance in a security group

这是您感兴趣的部分。

  "Resources" : {
    "EC2Instance" : {
      "Type" : "AWS::EC2::Instance",
      "Properties" : {
        "InstanceType" : { "Ref" : "InstanceType" },
        "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ],    # <--Here is the refer
        "KeyName" : { "Ref" : "KeyName" },
        "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" },
                          { "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, "Arch" ] } ] }
      }
    },

    "InstanceSecurityGroup" : {
      "Type" : "AWS::EC2::SecurityGroup",
      "Properties" : {
        "GroupDescription" : "Enable SSH access via port 22",
        "SecurityGroupIngress" : [ {
          "IpProtocol" : "tcp",
          "FromPort" : "22",
          "ToPort" : "22",
          "CidrIp" : { "Ref" : "SSHLocation"}
        } ]
      }
    }
  },

以上示例创建一个新的安全组,并将其分配给一个新的 ec2 实例。如果您已经存在安全组,那么您不需要 InstanceSecurityGroup 部分,并将真正的安全组名称分配给位于:

的 ec2 实例
"SecurityGroups" : "REAL Security Group Name",