ALIYUN::ECS::SecurityGroup

更新时间:
复制为 MD 格式

ALIYUN::ECS::SecurityGroup类型用于创建安全组。

语法

{
  "Type": "ALIYUN::ECS::SecurityGroup",
  "Properties": {
    "VpcId": String,
    "Description": String,
    "SecurityGroupName": String,
    "Tags": List,
    "SecurityGroupEgress": List,
    "SecurityGroupIngress": List,
    "ResourceGroupId": String,
    "SecurityGroupType": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

ResourceGroupId

String

安全组所在的资源组ID。

VpcId

String

专有网络ID。

Description

String

安全组描述信息。

长度为2~256个字符。

Tags

List

安全组的标签。

最多支持20个标签。

更多信息,请参见Tags属性

SecurityGroupName

String

安全组名称。

不填则为空,默认值为空。

  • 长度为2~128个字符。

  • 必须以英文字母或汉字开头,不能以http://https://开头。

  • 可包含英文字母、汉字、数字、半角句号(.)、下划线(_)和短划线(-)。

SecurityGroupEgress

List

安全组出方向的访问规则。

更多信息,请参见SecurityGroupEgress属性

SecurityGroupIngress

List

安全组入方向的访问规则。

更多信息,请参见SecurityGroupIngress属性

SecurityGroupType

String

安全组的类型。

取值:

  • normal:基本安全组。

  • enterprise:高级安全组。

Tags语法

"Tags": [
  {
    "Value" : String,
    "Key" : String
  }
]

Tags属性

属性名称

类型

必须

允许更新

描述

约束

Key

String

标签键。

长度为1~128个字符,不能以aliyunacs:开头,不能包含http://https://

Value

String

标签值。

长度为0~128个字符,不能以aliyunacs:开头,不能包含http://https://

SecurityGroupEgress语法

"SecurityGroupEgress": [
  {
    "Description": String,
    "PortRange": String,
    "NicType": String,
    "Priority": Integer,
    "DestGroupId": String,
    "DestCidrIp": String,
    "Policy": String,
    "IpProtocol": String,
    "DestGroupOwnerId": String,
    "Ipv6DestCidrIp": String,
    "DestPrefixListId": String,
    "SourcePortRange": String,
    "Ipv6SourceCidrIp": String,
    "SourceCidrIp": String,
    "DestGroupOwnerAccount": String
  }
]

SecurityGroupEgress属性

属性名称

类型

必须

允许更新

描述

约束

Description

String

安全组规则的描述信息。

长度为1~512个字符。

DestGroupOwnerId

String

跨账号设置安全组规则时,目的端安全组所属的阿里云账号ID。

如果未设置DestGroupOwnerId,则认为您设置了其它安全组的访问权限。如果您已经设置参数DestCidrIp,则参数DestGroupOwnerId无效。

IpProtocol

String

IP协议。

取值:

  • tcp

  • udp

  • icmp

  • gre

  • all:同时支持四种协议。

PortRange

String

IP协议相关的端口号范围。

目的端安全组开放的传输层协议相关的端口范围。取值:

  • TCP/UDP协议:1~65,535。使用正斜线(/)分隔起始端口和终止端口。

    • 正确示例:1/200。

    • 错误示例:200/1。

  • ICMP协议:-1/-1。

  • GRE协议:-1/-1。

  • all:-1/-1。

NicType

String

网络类型。

取值:

  • internet(默认值)

  • intranet

专有网络 VPC 类型安全组规则无需设置网卡类型,默认为 intranet,只能为 intranet。

设置安全组之间互相访问时,即仅指定了 DestGroupId 参数时,只能为 intranet。

默认值:internet。

DestPrefixListId

String

需要设置出方向访问权限的目的端前缀列表ID。

您可以调用云服务ECSDescribePrefixLists接口查询可以使用的前缀列表ID。

安全组的网络类型为经典网络时,不支持设置前缀列表。

当您指定了DestCidrIp、Ipv6DestCidrIpDestGroupId参数中的任意一个时,将忽略该参数。

Priority

Integer

授权策略优先级。

取值范围:1~100。

默认值:1。

DestGroupId

String

同一地域内的目标安全组ID。

DestGroupIdDestCidrIp参数必须指定一项。

  • 如果两项都指定,则默认对DestCidrIp进行授权。

  • 如果指定了该参数,且没有指定DestCidrIp,则NicType只能选择intranet。

DestCidrIp

String

目标IP地址范围。

必须采用CIDR格式来指定IP地址范围。

默认值: 0.0.0.0/0(表示不受限制)。

其它支持的格式,例如 10.159.XX.XX/12。

最多10IP地址或地址段,用半角逗号(,)隔开。

说明

仅支持IPv4。

Policy

String

授权策略。

取值:

  • accept(默认值):接受访问。

  • drop:拒绝访问。

Ipv6DestCidrIp

String

目标地址IPv6 CIDR地址段。

支持在CIDR格式和IPv6格式的IP地址范围。仅支持专有网络类型的IP地址。

SourcePortRange

String

安全组开放的传输层协议相关的源端,端口范围。

取值:

  • TCP/UDP协议:取值范围为 1~65535。使用正斜杠(/)隔开起始端口和终止端口。例如:1/200。

  • ICMP协议:-1/-1。

  • GRE协议:-1/-1。

  • ALL:-1/-1。

用于支持五元组规则,请参见安全组五元组规则

Ipv6SourceCidrIp

String

源端 IPv6 CIDR 地址段。

支持CIDR格式和IPv6格式的IP地址范围。

用于支持五元组规则,请参见安全组五元组规则

说明

仅在支持IPv6VPC类型ECS实例上有效,且该参数与DestCidrIp参数不可同时设置。

SourceCidrIp

String

源端 IPv4 CIDR 地址段。

支持CIDR格式和IPv4格式的IP地址范围。

用于支持五元组规则,请参见安全组五元组规则

DestGroupOwnerAccount

String

目的端安全组所属的阿里云账户。

  • 如果DestGroupOwnerAccountDestGroupOwnerId均未设置,则认为是撤销您其他安全组的访问权限。

  • 如果已经设置参数DestCidrIp,则参数DestGroupOwnerAccount无效。

SecurityGroupIngress语法

"SecurityGroupIngress": [
  {
    "SourceGroupOwnerId": String,
    "Description": String,
    "PortRange": String,
    "NicType": String,
    "Ipv6SourceCidrIp": String,
    "Priority": Integer,
    "SourceGroupId": String,
    "Policy": String,
    "IpProtocol": String,
    "SourcePortRange": String,
    "SourceCidrIp": String,
    "SourcePrefixListId": String,
    "Ipv6DestCidrIp": String,
    "SourceGroupOwnerAccount": String,
    "DestCidrIp": String
  }
]

SecurityGroupIngress属性

属性名称

类型

必须

允许更新

描述

约束

SourceGroupOwnerId

String

源安全组所属的阿里云账号ID。

Description

String

安全组规则的描述信息。

长度为1~512个字符。

SourcePrefixListId

String

需要设置入方向访问权限的源端前缀列表ID。

您可以调用云服务ECSDescribePrefixLists查询可以使用的前缀列表ID。

安全组的网络类型为经典网络时,不支持设置前缀列表。

当您指定了SourceCidrIp、Ipv6DestCidrIpDestGroupId参数中的任意一个时,将忽略该参数。

IpProtocol

String

IP协议。

取值:

  • tcp

  • udp

  • icmp

  • gre

  • all:同时支持四种协议。

PortRange

String

IP协议相关的端口范围。

目的端安全组开放的传输层协议相关的端口范围。取值:

  • TCP/UDP协议:1~65535。使用正斜杠(/)间隔起始端口和终止端口。

    • 正确示例:1/200。

    • 错误示例:200/1。

  • ICMP协议:-1/-1。

  • GRE协议:-1/-1。

  • all:-1/-1。

SourceGroupId

String

同一地域内的源安全组ID。

SourceGroupId或者SourceCidrIp参数必须指定一项。

如果两项都指定,则默认对SourceCidrIp授权。

如果指定了该参数,且没有指定SourceCidrIp,则NicType只能选择intranet。

NicType

String

网络类型。

取值:

  • internet(默认值)

  • intranet

Priority

Integer

授权策略优先级。

取值范围:1~100。

默认值:1。

SourceCidrIp

String

IP地址范围。

必须采用CIDR格式来指定IP地址范围。

默认值:0.0.0.0/0(表示不受限制)。

其它支持的格式,例如10.159.XX.XX/12。

最多10IP地址或地址段,用半角逗号(,)隔开。

说明

仅支持IPV4。

Policy

String

授权策略。

取值:

  • accept(默认值):接受访问。

  • drop:拒绝访问。

SourcePortRange

String

源端安全组开放的传输层协议相关的端口范围。

取值:

  • TCP/UDP协议:取值为1~65535。使用正斜杠(/)间隔起始端口和终止端口。

    • 正确示例:1/200。

    • 错误示例:200/1。

  • ICMP协议:-1/-1。

  • GRE协议:-1/-1。

  • IpProtocol取值为all:-1/-1。

Ipv6SourceCidrIp

String

IPv6 CIDR地址段。

仅支持专有网络类型的IP地址。支持在CIDR格式和IPv6格式的IP地址范围。

Ipv6DestCidrIp

String

目的端IPv6 CIDR地址块。

支持CIDR格式和IPv6格式的IP地址范围。

说明

仅在支持IPv6VPC类型ECS实例上有效,且该参数与DestCidrIp参数不可同时设置。

SourceGroupOwnerAccount

String

源端安全组所属的阿里云账户。

  • 如果SourceGroupOwnerAccountSourceGroupOwnerId均未设置,则认为是设置您其他安全组的访问权限。

  • 如果已经设置参数SourceCidrIp,则参数SourceGroupOwnerAccount无效。

DestCidrIp

String

目的端IPv4 CIDR地址段。

支持CIDR格式和IPv4格式的IP地址范围。

用于支持五元组规则,请参见安全组五元组规则

返回值

Fn::GetAtt

  • SecurityGroupId:安全组ID。

  • SecurityGroupName:安全组名称。

示例

场景 1 :在已有VPC的场景下新建普通安全组。

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  SecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      SecurityGroupIngress:
        - PortRange: 22/22
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
        - PortRange: 80/80
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
      SecurityGroupType: normal
      VpcId:
        Ref: VpcId
      SecurityGroupEgress:
        - PortRange: 443/443
          DestCidrIp: 0.0.0.0/0
          IpProtocol: tcp
      SecurityGroupName: TestSecurityGroupName
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Label:
      zh-cn: 现有VPC的实例ID
      en: Existing VPC Instance ID
Outputs:
  SecurityGroupId:
    Description: generated security group id for security group.
    Value:
      Fn::GetAtt:
        - SecurityGroup
        - SecurityGroupId
  SecurityGroupName:
    Description: The name of security group.
    Value:
      Fn::GetAtt:
        - SecurityGroup
        - SecurityGroupName
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "SecurityGroup": {
      "Type": "ALIYUN::ECS::SecurityGroup",
      "Properties": {
        "SecurityGroupIngress": [
          {
            "PortRange": "22/22",
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp"
          },
          {
            "PortRange": "80/80",
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp"
          }
        ],
        "SecurityGroupType": "normal",
        "VpcId": {
          "Ref": "VpcId"
        },
        "SecurityGroupEgress": [
          {
            "PortRange": "443/443",
            "DestCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp"
          }
        ],
        "SecurityGroupName": "TestSecurityGroupName"
      }
    }
  },
  "Parameters": {
    "VpcId": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Label": {
        "zh-cn": "现有VPC的实例ID",
        "en": "Existing VPC Instance ID"
      }
    }
  },
  "Outputs": {
    "SecurityGroupId": {
      "Description": "generated security group id for security group.",
      "Value": {
        "Fn::GetAtt": [
          "SecurityGroup",
          "SecurityGroupId"
        ]
      }
    },
    "SecurityGroupName": {
      "Description": "The name of security group.",
      "Value": {
        "Fn::GetAtt": [
          "SecurityGroup",
          "SecurityGroupName"
        ]
      }
    }
  }
}

场景 2 :在已有VPC的场景下新建企业安全组。

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  SecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      SecurityGroupIngress:
        - PortRange: 22/22
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
        - PortRange: 80/80
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
      SecurityGroupType: enterprise
      VpcId:
        Ref: VpcId
      SecurityGroupEgress:
        - PortRange: 443/443
          DestCidrIp: 0.0.0.0/0
          IpProtocol: tcp
      SecurityGroupName: TestSecurityGroupName
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Label:
      zh-cn: 现有VPC的实例ID
      en: Existing VPC Instance ID
Outputs:
  SecurityGroupId:
    Description: generated security group id for security group.
    Value:
      Fn::GetAtt:
        - SecurityGroup
        - SecurityGroupId
  SecurityGroupName:
    Description: The name of security group.
    Value:
      Fn::GetAtt:
        - SecurityGroup
        - SecurityGroupName
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "SecurityGroup": {
      "Type": "ALIYUN::ECS::SecurityGroup",
      "Properties": {
        "SecurityGroupIngress": [
          {
            "PortRange": "22/22",
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp"
          },
          {
            "PortRange": "80/80",
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp"
          }
        ],
        "SecurityGroupType": "enterprise",
        "VpcId": {
          "Ref": "VpcId"
        },
        "SecurityGroupEgress": [
          {
            "PortRange": "443/443",
            "DestCidrIp": "0.0.0.0/0",
            "IpProtocol": "tcp"
          }
        ],
        "SecurityGroupName": "TestSecurityGroupName"
      }
    }
  },
  "Parameters": {
    "VpcId": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Label": {
        "zh-cn": "现有VPC的实例ID",
        "en": "Existing VPC Instance ID"
      }
    }
  },
  "Outputs": {
    "SecurityGroupId": {
      "Description": "generated security group id for security group.",
      "Value": {
        "Fn::GetAtt": [
          "SecurityGroup",
          "SecurityGroupId"
        ]
      }
    },
    "SecurityGroupName": {
      "Description": "The name of security group.",
      "Value": {
        "Fn::GetAtt": [
          "SecurityGroup",
          "SecurityGroupName"
        ]
      }
    }
  }
}

场景 3 :创建ECS实例、并配置安全组开放入方向9966端口。

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: 创建ECS实例、并配置安全组开放入方向9966端口。
  en: Create an ECS instance and configure the security group to open inbound port 9966.
Parameters:
  ZoneId:
    Type: String
    Label:
      en: Availability Zone
      zh-cn: 可用区ID
    AssociationProperty: ALIYUN::ECS::Instance:ZoneId
  InstanceType:
    Type: String
    Label:
      en: Instance Type
      zh-cn: 实例类型
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: ${ZoneId}
  SystemDiskCategory:
    Type: String
    Label:
      en: System Disk Type
      zh-cn: 系统盘类型
    AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
    AssociationPropertyMetadata:
      LocaleKey: DiskCategory
      ZoneId: ${ZoneId}
      InstanceType: ${InstanceType}
      AutoSelectFirst: true
      AutoChangeType: false
    Default: cloud_essd
  InstancePassword:
    Type: String
    NoEcho: true
    Label:
      en: Instance Password
      zh-cn: 实例密码
    Description:
      en: Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).
      zh-cn: 服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。
    ConstraintDescription:
      en: Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).
      zh-cn: 长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Equals:
            - ${SelectInstance}
            - false
    Default: Null
    AssociationProperty: ALIYUN::ECS::Instance::Password
Resources:
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      CidrBlock: 192.168.0.0/16
  VSwitch:
    Type: ALIYUN::ECS::VSwitch
    Properties:
      ZoneId:
        Ref: ZoneId
      VpcId:
        Ref: Vpc
      CidrBlock: 192.168.0.0/24
  SecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      VpcId:
        Ref: Vpc
  SecurityGroupIngress_9966:
    Type: ALIYUN::ECS::SecurityGroupIngress
    Properties:
      SecurityGroupId:
        Ref: SecurityGroup
      SourceCidrIp: 0.0.0.0/0
      IpProtocol: tcp
      NicType: intranet
      PortRange: 9966/9966
  InstanceGroup:
    Type: ALIYUN::ECS::InstanceGroup
    Properties:
      VpcId:
        Ref: Vpc
      VSwitchId:
        Ref: VSwitch
      SecurityGroupId:
        Ref: SecurityGroup
      ImageId: ubuntu_22_04
      InstanceName: ChatTTS
      InstanceType:
        Ref: InstanceType
      SystemDiskCategory:
        Ref: SystemDiskCategory
      Password:
        Ref: InstancePassword
      IoOptimized: optimized
      MaxAmount: 1
Outputs: {}
Metadata: {}
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "创建ECS实例、并配置安全组开放入方向9966端口。",
    "en": "Create an ECS instance and configure the security group to open inbound port 9966."
  },
  "Parameters": {
    "ZoneId": {
      "Type": "String",
      "Label": {
        "en": "Availability Zone",
        "zh-cn": "可用区ID"
      },
      "AssociationProperty": "ALIYUN::ECS::Instance:ZoneId"
    },
    "InstanceType": {
      "Type": "String",
      "Label": {
        "en": "Instance Type",
        "zh-cn": "实例类型"
      },
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "${ZoneId}"
      }
    },
    "SystemDiskCategory": {
      "Type": "String",
      "Label": {
        "en": "System Disk Type",
        "zh-cn": "系统盘类型"
      },
      "AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
      "AssociationPropertyMetadata": {
        "LocaleKey": "DiskCategory",
        "ZoneId": "${ZoneId}",
        "InstanceType": "${InstanceType}",
        "AutoSelectFirst": true,
        "AutoChangeType": false
      },
      "Default": "cloud_essd"
    },
    "InstancePassword": {
      "Type": "String",
      "NoEcho": true,
      "Label": {
        "en": "Instance Password",
        "zh-cn": "实例密码"
      },
      "Description": {
        "en": "Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).",
        "zh-cn": "服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。"
      },
      "ConstraintDescription": {
        "en": "Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).",
        "zh-cn": "长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。"
      },
      "AssociationPropertyMetadata": {
        "Visible": {
          "Condition": {
            "Fn::Equals": [
              "${SelectInstance}",
              false
            ]
          }
        }
      },
      "Default": null,
      "AssociationProperty": "ALIYUN::ECS::Instance::Password"
    }
  },
  "Resources": {
    "Vpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "CidrBlock": "192.168.0.0/16"
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VpcId": {
          "Ref": "Vpc"
        },
        "CidrBlock": "192.168.0.0/24"
      }
    },
    "SecurityGroup": {
      "Type": "ALIYUN::ECS::SecurityGroup",
      "Properties": {
        "VpcId": {
          "Ref": "Vpc"
        }
      }
    },
    "SecurityGroupIngress_9966": {
      "Type": "ALIYUN::ECS::SecurityGroupIngress",
      "Properties": {
        "SecurityGroupId": {
          "Ref": "SecurityGroup"
        },
        "SourceCidrIp": "0.0.0.0/0",
        "IpProtocol": "tcp",
        "NicType": "intranet",
        "PortRange": "9966/9966"
      }
    },
    "InstanceGroup": {
      "Type": "ALIYUN::ECS::InstanceGroup",
      "Properties": {
        "VpcId": {
          "Ref": "Vpc"
        },
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "SecurityGroupId": {
          "Ref": "SecurityGroup"
        },
        "ImageId": "ubuntu_22_04",
        "InstanceName": "ChatTTS",
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "SystemDiskCategory": {
          "Ref": "SystemDiskCategory"
        },
        "Password": {
          "Ref": "InstancePassword"
        },
        "IoOptimized": "optimized",
        "MaxAmount": 1
      }
    }
  },
  "Outputs": {
  },
  "Metadata": {
  }
}