【问题标题】:Cloudformation security group set group nameCloudformation 安全组集组名
【发布时间】:2016-10-31 21:40:35
【问题描述】:

使用 cloudformation SecurityGroup 可以设置 GroupName 还是必须由 cloudformation 提供?

最终的名称格式很长而且不好看,也不适合用它来通过命令行查找它。

我知道我可以使用标签,但仍然不明白为什么 AWS 不允许我们添加它,我猜是因为他们很懒惰并且不想实施验证。

问候。

【问题讨论】:

  • 我要为这个讨论提供的只是将“GroupName”属性设置为 CloudFormation 资源不会拒绝该属性本身,而只会导致资源创建失败并显示“已存在”错误消息。 .. 需要花一些时间来研究terraform 是如何支持这一点的(如果支持的话)。

标签: amazon-web-services amazon-ec2 amazon-cloudformation


【解决方案1】:

您可以通过添加带有“名称”键的标签来设置安全组的名称,如下所示:

"MySecurityGroup": {
  "Type": "AWS::EC2::SecurityGroup",
  "Properties": {
    "GroupDescription": "Allow http",
    "SecurityGroupIngress": [
      {"IpProtocol": "tcp", "FromPort": "80", "ToPort": "80", "CidrIp": "0.0.0.0/0"}
    ],
    "Tags": [
      {"Key": "Name", "Value": "MySecurityGroup"},
    ]
  }
},

【讨论】:

    【解决方案2】:

    [2017 年 6 月 26 日更新]Apr 28 2017 开始,现在可以使用 CloudFormation 为 EC2 安全组指定自定义名称,使用 AWS::EC2::SecurityGroup 资源上的 GroupName 属性。

    感谢surenyonjan 在此更新中提供comment


    [原答案 2016 年 12 月 23 日] - 不,目前无法使用 CloudFormation 为 EC2 安全组提供自定义名称。

    根据AWS::EC2::SecurityGroup 资源文档,没有可用的NameGroupName 属性。正如您所指出的,您可以使用Tags 属性作为替代提供标签。

    最近,一些 CloudFormation 资源已开始通过 Name 属性支持自定义名称。支持资源的完整列表位于文档的 Name Type 部分。

    AWS::EC2::SecurityGroup 不是支持自定义名称的资源之一。至于为什么,大概是因为这个 CloudFormation 资源是较早的实现,是在服务支持自定义名称之前创建的。

    如果有足够多的用户要求他们这样做,AWS 最终可能会在某个时候返回并使用自定义名称支持更新其所有现有 CloudFormation 资源。如果这对您的用例来说是一项重要/关键功能,我建议联系他们的产品/支持团队提出功能请求,以帮助他们提高优先级。

    【讨论】:

    • 如果我没记错的话,CloudFormation 确实有资源 AWS::EC2::SecurityGroup 的属性 GroupName。并且只有一个有效的 AWS CloudFormation 模板版本:2010-09-09。请解释为什么您的答案是“否”。
    • @surenyonjan 感谢对此资源的更新。请注意,CloudFormation 资源会经常更新,与从未更改过的模板版本无关。有关 CloudFormation 资源更新的完整历史记录,请参阅 CloudFormation release history
    • 哦,谢谢。我只看了这个link,我理解错了它只有一个版本
    【解决方案3】:

    大多数资源的名称只是一种特殊的标签类型,键为名称,要编辑此字段只需将标签添加到模板中

      mySecurityGroup:
        Type: 'AWS::EC2::SecurityGroup'
        Properties:
          VpcId: !Ref myVPC
          GroupDescription: Security Group 
          SecurityGroupIngress:
            - IpProtocol: tcp
              FromPort: 22
              ToPort: 22
              CidrIp: 0.0.0.0/0
          Tags:
            - Key: Name
              Value: mySecurityGroup
    
    

    【讨论】:

      猜你喜欢
      • 2017-08-15
      • 2016-05-12
      • 2020-12-20
      • 1970-01-01
      • 2015-08-01
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 2019-10-19
      相关资源
      最近更新 更多