All Products
Search
Document Center

Virtual Private Cloud:CreateNetworkAcl

Last Updated:Mar 04, 2024

Creates a network ACL.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer.

Authorization information

The following table shows the authorization information corresponding to the API. The authorization information can be used in the Action policy element to grant a RAM user or RAM role the permissions to call this API operation. Description:

  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • The required resource types are displayed in bold characters.
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition Key: the condition key that is defined by the cloud service.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
OperationAccess levelResource typeCondition keyAssociated operation
vpc:CreateNetworkAclWrite
  • NetworkAcl
    acs:vpc:{#regionId}:{#accountId}:networkacl/*
  • VPC
    acs:vpc:{#regionId}:{#accountId}:vpc/{#VpcId}
    none
none

Request parameters

ParameterTypeRequiredDescriptionExample
VpcIdstringYes

The ID of the virtual private cloud (VPC) to which the network ACL belongs.

If the VPC contains Elastic Compute Service (ECS) instances of the following instance families, you must upgrade the ECS instances or release the ECS instances. Otherwise, you cannot create a network ACL for the VPC.

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, and ecs.xn4.

Note If the VPC contains an ECS instance that does not support network ACLs, upgrade the ECS instance.
vpc-dsfd34356vdf****
NetworkAclNamestringNo

The name of the network ACL.

The name must be 1 to 128 characters in length, and cannot start with http:// or https://.

acl-1
DescriptionstringNo

The description of the network ACL.

The description must be 1 to 256 characters in length, and cannot start with http:// or https://.

This is my NetworkAcl.
ClientTokenstringNo

The client token that is used to ensure the idempotence of the request.

You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters.

Note If you do not specify this parameter, the system automatically uses the request ID as the client token. The request ID may be different for each request.
0c593ea1-3bea-11e9-b96b-88e9fe637760
DryRunbooleanNo

Specifies whether to perform only a dry run, without performing the actual request. Valid values:

  • true: performs only a dry run. The system checks the request for potential issues, including missing parameter values, incorrect request syntax, and service limits. If the request fails the dry run, an error message is returned. If the request passes the dry run, the DryRunOperation error code is returned.
  • false (default): performs a dry run and performs the actual request. If the request passes the dry run, a 2xx HTTP status code is returned and the operation is performed.
false
Tagobject []No

The tags of the resource.

KeystringNo

The key of tag N to add to the resource. You can specify up to 20 tag keys. The tag key cannot be an empty string.

The tag key can be up to 128 characters in length. It cannot start with aliyun or acs:, and cannot contain http:// or https://.

FinanceDept
ValuestringNo

The value of tag N to add to the resource. You can specify at most 20 tag values. The tag value can be an empty string.

The tag value can be up to 128 characters in length and cannot contain http:// or https://. The tag value cannot start with aliyun or acs:.

FinanceJoshua
RegionIdstringYes

The region ID of the network ACL.

You can call the DescribeRegions operation to query the most recent region list.

cn-hangzhou

Response parameters

ParameterTypeDescriptionExample
object
NetworkAclIdstring

The ID of the network ACL.

nacl-a2do9e413e0spzasx****
RequestIdstring

The request ID.

0ED8D006-F706-4D23-88ED-E11ED28DCAC0
NetworkAclAttributeobject

The attributes of the network ACL.

Statusstring

The status of the network ACL. Valid values:

  • Available
  • Modifying
Modifying
VpcIdstring

The ID of the VPC to which the network ACL belongs.

vpc-a2d33rfpl72k5xsscd****
CreationTimestring

The time when the network ACL was created.

2021-12-25 11:33:27
Descriptionstring

The description of the network ACL.

This is my NetworkAcl.
NetworkAclNamestring

The name of the network ACL.

acl-1
NetworkAclIdstring

The ID of the network ACL.

nacl-a2do9e413e0spdefr****
RegionIdstring

The region ID of the network ACL.

cn-hangzhou
IngressAclEntriesobject []

The inbound rules.

NetworkAclEntryIdstring

The ID of the inbound rule.

nae-a2dk86arlydmexscd****
NetworkAclEntryNamestring

The name of the inbound rule.

acl-3
Policystring

The action to be performed on network traffic that matches the rule. Valid values:

  • accept
  • drop
accept
Descriptionstring

The description of the inbound rule.

This is IngressAclEntries.
SourceCidrIpstring

The source CIDR block.

10.0.0.0/24
Protocolstring

The protocol. Valid values:

  • icmp
  • gre
  • tcp
  • udp
  • all
all
Portstring

The destination port range of the inbound traffic.

  • If the protocol of the inbound rule is set to all, icmp, or gre, the port range is -1/-1, which specifies all ports.
  • If the protocol of the inbound rule is set to tcp or udp, set the port range in the following format: 1/200 or 80/80, which specifies port 1 to port 200 or port 80. Valid ports: 1 to 65535.
-1/-1
EgressAclEntriesobject []

The outbound rules.

NetworkAclEntryIdstring

The ID of the outbound rule.

nae-a2d447uw4tillxsdc****
NetworkAclEntryNamestring

The name of the outbound rule.

acl-2
Policystring

The action to be performed on network traffic that matches the rule. Valid values:

  • accept
  • drop
accept
Descriptionstring

The description of the outbound rule.

This is EgressAclEntries.
Protocolstring

The protocol. Valid values:

  • icmp
  • gre
  • tcp
  • udp
  • all
all
DestinationCidrIpstring

The destination CIDR block.

10.0.0.0/24
Portstring

The destination port range of the outbound traffic.

  • If the protocol of the outbound rule is set to all, icmp, or gre, the port range is -1/-1, which specified all ports.
  • If the protocol of the outbound rule is set to tcp or udp, set the port range in the following format: 1/200 or 80/80, which specifies port 1 to port 200 or port 80. Valid values for a port: 1 to 65535.
-1/-1
Resourcesobject []

The information about the associated resources.

Statusstring

The association status of the resource. Valid values:

  • BINDED
  • BINDING
  • UNBINDING
BINDED
ResourceTypestring

The type of resource with which you want to associate the network ACL.

VSwitch
ResourceIdstring

The ID of the associated resource.

vsw-bp1de348lntdwgthy****

Examples

Sample success responses

JSONformat

{
  "NetworkAclId": "nacl-a2do9e413e0spzasx****",
  "RequestId": "0ED8D006-F706-4D23-88ED-E11ED28DCAC0",
  "NetworkAclAttribute": {
    "Status": "Modifying",
    "VpcId": "vpc-a2d33rfpl72k5xsscd****",
    "CreationTime": "2021-12-25 11:33:27",
    "Description": "This is my NetworkAcl.",
    "NetworkAclName": "acl-1\t",
    "NetworkAclId": "nacl-a2do9e413e0spdefr****",
    "RegionId": "cn-hangzhou\t",
    "IngressAclEntries": {
      "IngressAclEntry": [
        {
          "NetworkAclEntryId": "nae-a2dk86arlydmexscd****",
          "NetworkAclEntryName": "acl-3\t",
          "Policy": "accept",
          "Description": "This is IngressAclEntries.\t",
          "SourceCidrIp": "10.0.0.0/24\t",
          "Protocol": "all",
          "Port": "-1/-1"
        }
      ]
    },
    "EgressAclEntries": {
      "EgressAclEntry": [
        {
          "NetworkAclEntryId": "nae-a2d447uw4tillxsdc****",
          "NetworkAclEntryName": "acl-2",
          "Policy": "accept",
          "Description": "This is EgressAclEntries.",
          "Protocol": "all",
          "DestinationCidrIp": "10.0.0.0/24",
          "Port": "-1/-1\t"
        }
      ]
    },
    "Resources": {
      "Resource": [
        {
          "Status": "BINDED",
          "ResourceType": "VSwitch",
          "ResourceId": "vsw-bp1de348lntdwgthy****"
        }
      ]
    }
  }
}

Error codes

HTTP status codeError codeError messageDescription
400ParameterMissing.AliUidParameterMissing.AliUid-
400ParameterMissing.BidParameterMissing.Bid-
400ParameterMissing.RegionIdParameterMissing.RegionId-
400ParameterEmpty.RegionIdParameterEmpty.RegionId-
400ParameterMissing.VpcIdParameterMissing.VpcId-
400ParameterLengthIllegal.NameParameterLengthIllegal.NameThe length of the rule name is invalid.
400ParameterIllegal.NameParameterIllegal.NameThe name of the entry is invalid.
400ParameterLengthIllegal.DescriptionParameterLengthIllegal.Description-
400ParameterIllegal.DescriptionParameterIllegal.Description-
400ParameterEmpty.VpcIdParameterEmpty.VpcId-
400InvalidVpcId.NotFoundThe vpc is not exist.-
400QuotaExceed.NetworkAclNetwork acl is over limit.-
400NotSupport.NetworkAclNetwork acl is not support now.-
400IllegalParamFormat.%sThe param format of %s is illegal.The parameter mode is invalid.

For a list of error codes, visit the Service error codes.

Change history

Change timeSummary of changesOperation
2023-11-24The Error code has changed. The request parameters of the API has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    Error Codes 400 change
    delete Error Codes: 500
Input ParametersThe request parameters of the API has changed.
    Added Input Parameters: DryRun
2023-07-05The Error code has changed. The request parameters of the API has changedsee changesets
Change itemChange content
Error CodesThe Error code has changed.
    delete Error Codes: 400
    delete Error Codes: 500
Input ParametersThe request parameters of the API has changed.
    Added Input Parameters: Tag
2023-05-09API Description Update. The Error code has changedsee changesets
Change itemChange content
API DescriptionAPI Description Update.
Error CodesThe Error code has changed.
    delete Error Codes: 400
    delete Error Codes: 500