ALIYUN::VPC::NetworkAcl类型用于创建网络ACL(Network Access Control List)。

语法

{
  "Type": "ALIYUN::VPC::NetworkAcl",
  "Properties": {
    "NetworkAclName": String,
    "Description": String,
    "VpcId": String,
    "EgressAclEntries": List,
    "IngressAclEntries": List
  }
}

属性

属性名称类型必须允许更新描述约束
NetworkAclNameString网络ACL的名称。 长度为2~128个字符,必须以英文字母或汉字开头,不能以http://https://开头。可包含英文字母、汉字、数字、下划线(_)和短划线(-)。
DescriptionString网络ACL的描述信息。 长度为2~256个字符,必须以英文字母或汉字开头,不能以http://https://开头。
VpcIdString网络ACL所属的VPC的ID。 如果VPC中含有以下实例规格族中的任一实例,则不支持为该VPC创建网络ACL: ecs.c1、ecs.c2、ecs.c4、ecs.c5、ecs.ce4、ecs.cm4、ecs.d1、ecs.e3、ecs.e4、ecs.ga1、ecs.gn4、ecs.gn5、ecs.i1、ecs.m1、ecs.m2、ecs.mn4、ecs.n1、ecs.n2、ecs.n4、ecs.s1、ecs.s2、ecs.s3、ecs.se1、ecs.sn1、ecs.sn2、ecs.t1、ecs.xn4。

如需创建网络ACL,请先升级实例规格。更多信息,请参见包年包月实例升配规格按量付费实例变配规格

说明 如果您的VPC中含有实例规格族限制中的任一实例,且您已经创建了网络ACL,为了保证正常使用网络ACL功能,请升级实例规格。
IngressAclEntriesList入方向网络ACL规则。最多支持20个规则。

更多信息,请参见IngressAclEntries属性

EgressAclEntriesList出方向网络ACL规则。最多支持20个规则。

更多信息,请参见EgressAclEntries属性

IngressAclEntries语法

"IngressAclEntries": [
  {
    "Policy": String,
    "Description": String,
    "EntryType": String,
    "SourceCidrIp": String,
    "Port": String,
    "Protocol": String,
    "NetworkAclEntryName": String
  }
]

IngressAclEntries属性

属性名称类型必须允许更新描述约束
PolicyString授权策略。取值:
  • accept:允许。
  • drop:拒绝。
DescriptionString入方向规则的描述信息。 长度为2~256个字符,必须以英文字母或汉字开头,不能以http://https://开头。
EntryTypeString规则类型。取值:
  • custom(默认值):自定义规则。
  • system:系统规则。
SourceCidrIpString源地址网段。
PortString源端口范围。
ProtocolString传输层协议。取值:
  • icmp
  • gre
  • tcp
  • udp
  • all
NetworkAclEntryNameString入方向规则的名称。

EgressAclEntries语法

"EgressAclEntries": [
  {
    "Policy": String,
    "Description": String,
    "EntryType": String,
    "DestinationCidrIp": String,
    "Port": String,
    "Protocol": String,
    "NetworkAclEntryName": String
  }
]

EgressAclEntries属性

属性名称类型必须允许更新描述约束
PolicyString授权策略。取值:
  • accept:允许。
  • drop:拒绝。
DescriptionString出方向规则的描述信息。长度为2~256个字符,必须以英文字母或汉字开头,不能以http://https://开头。
EntryTypeString规则类型。取值:
  • custom(默认值):自定义规则。
  • system:系统规则。
DestinationCidrIpString目标地址网段。
PortString目的端口范围。
ProtocolString传输层协议。取值:
  • icmp
  • gre
  • tcp
  • udp
  • all
NetworkAclEntryNameString出方向规则的名称。

返回值

Fn::GetAtt

  • NetworkAclId:网络ACL的ID。
  • NetworkAclEntryName:网络ACL规则名称。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters: {}
    Resources:
      NetworkAcl:
        Type: ALIYUN::VPC::NetworkAcl
        Properties:
          IngressAclEntries:
            - Policy: drop
              Protocol: gre
              Port: 9001/9001
          VpcId:
            Ref: VpcId
          EgressAclEntries:
            - Policy: accept
              Protocol: udp
              Port: 8000/8000
              DestinationCidrIp: 10.0.0.0/24
              NetworkAclEntryName: test-egress
              EntryType: system
              Description: test description
          NetworkAclName: TestNetworkAcl
    Outputs:
      NetworkAclId:
        Description: The ID of the network ACL.
        Value:
          Fn::GetAtt:
            - NetworkAcl
            - NetworkAclId
      NetworkAclEntryName:
        Description: The name of the inbound rule.
        Value:
          Fn::GetAtt:
            - NetworkAcl
            - NetworkAclEntryName
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
      },
      "Resources": {
        "NetworkAcl": {
          "Type": "ALIYUN::VPC::NetworkAcl",
          "Properties": {
            "IngressAclEntries": [
              {
                "Policy": "drop",
                "Protocol": "gre",
                "Port": "9001/9001"
              }
            ],
            "VpcId": {
              "Ref": "VpcId"
            },
            "EgressAclEntries": [
              {
                "Policy": "accept",
                "Protocol": "udp",
                "Port": "8000/8000",
                "DestinationCidrIp": "10.0.0.0/24",
                "NetworkAclEntryName": "test-egress",
                "EntryType": "system",
                "Description": "test description"
              }
            ],
            "NetworkAclName": "TestNetworkAcl"
          }
        }
      },
      "Outputs": {
        "NetworkAclId": {
          "Description": "The ID of the network ACL.",
          "Value": {
            "Fn::GetAtt": [
              "NetworkAcl",
              "NetworkAclId"
            ]
          }
        },
        "NetworkAclEntryName": {
          "Description": "The name of the inbound rule.",
          "Value": {
            "Fn::GetAtt": [
              "NetworkAcl",
              "NetworkAclEntryName"
            ]
          }
        }
      }
    }