Creates one or more outbound rules in a security group. You can use the created rules to allow or deny outbound traffic from instances in the security group to other objects.
Description
When you call this operation, take note of the following items:
- The total number of outbound and inbound security group rules in each security group cannot exceed 200. For more information, see the "Security group limits" section in Limits.
- You can set Policy to accept or drop for each security group rule to allow or deny access.
- The valid value of Priority ranges from 1 to 100. A smaller value indicates a higher priority.
- When several security group rules have the same priority, drop rules take precedence.
- The destination can be a CIDR block specified by DestCidrIp, Ipv6DestCidrIp, or DestPrefixListId or can be Elastic Compute Service (ECS) instances in a security group specified by DestGroupId.
- For advanced security groups, security groups cannot be used as authorization objects.
- For each basic security group, a maximum of 20 security groups can be used as authorization objects.
- If the specified security group rule exists in the security group, the call to AuthorizeSecurityGroupEgress is successful but no security group rule is created.
- The
Permissions.N
prefix is added to some parameters to generate new parameters. Original parameters and corresponding parameters prefixed with Permissions.N cannot be specified together. We recommend that you use parameters prefixed withPermissions.N
. - You can determine a security group rule by specifying one of the following groups of parameters. You cannot determine a security group rule by specifying only one parameter.
- Parameters used to specify an outbound security group rule that controls access to a specified CIDR block: SecurityGroupId, Permissions.N.IpProtocol, Permissions.N.PortRange, Permissions.N.SourcePortRange, Permissions.N.NicType, Permissions.N.Policy, and Permissions.N.DestCidrIp. The Permissions.N.SourcePortRange parameter is optional. Sample request:
http(s)://ecs.aliyuncs.com/?Action=AuthorizeSecurityGroupEgress &SecurityGroupId=sg-bp67acfmxazb4ph*** &Permissions.1.IpProtocol=ICMP &Permissions.1.DestCidrIp=10.0.0.0/8 &Permissions.1.PortRange=-1/-1 &Permissions.1.NicType=intranet &Permissions.1.Policy=Accept &<Common request parameters>
- Parameters used to specify an outbound security group rule that controls access to a security group: SecurityGroupId, Permissions.N.IpProtocol, Permissions.N.PortRange, Permissions.N.SourcePortRange, Permissions.N.NicType, Permissions.N.Policy, Permissions.N.DestGroupOwnerAccount, and Permissions.N.DestGroupId. The Permissions.N.SourcePortRange parameter is optional. Sample request:
http(s)://ecs.aliyuncs.com/?Action=AuthorizeSecurityGroupEgress &SecurityGroupId=sg-bp67acfmxazb4ph*** &Permissions.1.DestGroupId=sg-bp67acfmxazb4pi*** &Permissions.1.DestGroupOwnerAccount=Test@aliyun.com &Permissions.1.IpProtocol=TCP &Permissions.1.PortRange=22/22 &Permissions.1.NicType=intranet &Permissions.1.Policy=Drop &<Common request parameters>
- Parameters used to specify an outbound security group rule that controls access to a prefix list: SecurityGroupId, Permissions.N.IpProtocol, Permissions.N.PortRange, Permissions.N.SourcePortRange, Permissions.N.NicType, Permissions.N.Policy, and Permissions.N.DestPrefixListId. The Permissions.N.SourcePortRange parameter is optional. In this case, prefix lists support only security groups in virtual private clouds (VPCs). NicType must be set to intranet. Sample request:
http(s)://ecs.aliyuncs.com/?Action=AuthorizeSecurityGroupEgress &SecurityGroupId=sg-bp67acfmxazb4ph*** &Permissions.1.DestPrefixListId=pl-x1j1k5ykzqlixdcy**** &Permissions.1.DestGroupOwnerAccount=Test@aliyun.com &Permissions.1.IpProtocol=TCP &Permissions.1.PortRange=22/22 &Permissions.1.NicType=intranet &Permissions.1.Policy=Drop &<Common request parameters>
- Parameters used to specify an outbound security group rule that controls access to a specified CIDR block: SecurityGroupId, Permissions.N.IpProtocol, Permissions.N.PortRange, Permissions.N.SourcePortRange, Permissions.N.NicType, Permissions.N.Policy, and Permissions.N.DestCidrIp. The Permissions.N.SourcePortRange parameter is optional. Sample request:
Debugging
Request parameters
Parameter | Type | Required | Example | Description |
---|---|---|---|---|
Action | String | Yes | AuthorizeSecurityGroupEgress | The operation that you want to perform. Set the value to AuthorizeSecurityGroupEgress. |
RegionId | String | Yes | cn-hangzhou | The region ID of the source security group. You can call the DescribeRegions operation to query the most recent region list. |
ClientToken | String | No | 123e4567-e89b-12d3-a456-426655440000 | The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that it is unique among different requests. The ClientToken value can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see How to ensure idempotence. |
SecurityGroupId | String | Yes | sg-bp67acfmxazb4p**** | The ID of the security group. |
Permissions.N.Policy | String | No | accept | The action of security group rule N that determines whether to allow outbound access. Valid values:
Default value: accept. Valid values of N: 1 to 100. |
Permissions.N.Priority | String | No | 1 | The priority of security group rule N. A smaller value indicates a higher priority. Valid values: 1 to 100. Default value: 1. Valid values of N: 1 to 100. |
Permissions.N.IpProtocol | String | No | ALL | The transport layer protocol of security group rule N. The values are case-insensitive. Valid values:
Valid values of N: 1 to 100. |
Permissions.N.DestCidrIp | String | No | 10.0.0.0/8 | The destination IPv4 CIDR block for security group rule N. CIDR blocks and IPv4 addresses are supported. Valid values of N: 1 to 100. |
Permissions.N.Ipv6DestCidrIp | String | No | 2001:db8:1233:1a00::*** | The destination IPv6 CIDR block for security group rule N. CIDR blocks and IPv6 addresses are supported. Valid values of N: 1 to 100. Note The Permissions.N.Ipv6DestCidrIp parameter is valid only when the destination is ECS instances that reside in VPCs and support IPv6 CIDR blocks. You cannot specify both this parameter and the DestCidrIp parameter. |
Permissions.N.DestGroupId | String | No | sg-bp67acfmxazb4p**** | The ID of the destination security group to be referenced in security group rule N.
Valid values of N: 1 to 100. Take note of the following items:
|
Permissions.N.DestPrefixListId | String | No | pl-x1j1k5ykzqlixdcy**** | The ID of the destination prefix list to be referenced in security group rule N. You can call the DescribePrefixLists operation to query the IDs of available prefix lists. Take note of the following items:
Valid values of N: 1 to 100. |
Permissions.N.PortRange | String | No | 80/80 | The range of destination ports that correspond to the transport layer protocol for security group rule N. Valid values:
Valid values of N: 1 to 100. |
Permissions.N.SourceCidrIp | String | No | 10.0.0.0/8 | The source IPv4 CIDR block for security group rule N. CIDR blocks and IPv4 addresses are supported. This parameter is supported by quintuple rules. For more information, see Security group quintuple rules. Valid values of N: 1 to 100. |
Permissions.N.Ipv6SourceCidrIp | String | No | 2001:db8:1234:1a00::*** | The source IPv6 CIDR block for security group rule N. CIDR blocks and IPv6 addresses are supported. This parameter is supported by quintuple rules. For more information, see Security group quintuple rules. Valid values of N: 1 to 100. Note The Permissions.N.Ipv6SourceCidrIp parameter is valid only when the source is ECS instances that reside in VPCs and support IPv6 CIDR blocks. You cannot specify both this parameter and the DestCidrIp parameter. |
Permissions.N.SourcePortRange | String | No | 80/80 | The range of source ports that correspond to the transport layer protocol for security group rule N. Valid values:
This parameter is specified to meet quintuple rules. For more information, see Security group quintuple rules. Valid values of N: 1 to 100. |
Permissions.N.DestGroupOwnerAccount | String | No | Test@aliyun.com | The Alibaba Cloud account that manages the destination security group when you set security group rule N across accounts.
Valid values of N: 1 to 100. |
Permissions.N.DestGroupOwnerId | Long | No | 12345678910 | The ID of the Alibaba Cloud account that manages the destination security group when you set security group rule N across accounts.
Valid values of N: 1 to 100. |
Permissions.N.NicType | String | No | intranet | The network interface controller (NIC) type of security group rule N when the security group is in the classic network. Valid values:
Default value: internet. Valid values of N: 1 to 100. |
Permissions.N.Description | String | No | This is description. | The description of security group rule N. The description must be 1 to 512 characters in length. Valid values of N: 1 to 100. |
Policy | String | No | accept | This parameter is discontinued. Use |
Priority | String | No | 1 | This parameter is discontinued. Use |
IpProtocol | String | No | ALL | This parameter is discontinued. Use |
DestCidrIp | String | No | 10.0.0.0/8 | This parameter is discontinued. Use |
Ipv6DestCidrIp | String | No | 2001:db8:1233:1a00::*** | This parameter is discontinued. Use |
DestGroupId | String | No | sg-bp67acfmxazb4p**** | This parameter is discontinued. Use |
DestPrefixListId | String | No | pl-x1j1k5ykzqlixdcy**** | This parameter is discontinued. Use |
PortRange | String | No | 80/80 | This parameter is discontinued. Use |
SourceCidrIp | String | No | 10.0.0.0/8 | This parameter is discontinued. Use |
Ipv6SourceCidrIp | String | No | 2001:db8:1234:1a00::*** | This parameter is discontinued. Use |
SourcePortRange | String | No | 80/80 | This parameter is discontinued. Use |
DestGroupOwnerAccount | String | No | Test@aliyun.com | This parameter is discontinued. Use |
DestGroupOwnerId | Long | No | 12345678910 | This parameter is discontinued. Use |
NicType | String | No | intranet | This parameter is discontinued. Use |
Description | String | No | This is description. | This parameter is discontinued. Use |
Response parameters
Parameter | Type | Example | Description |
---|---|---|---|
RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** | The ID of the request. |
Examples
Sample requests
http(s)://ecs.aliyuncs.com/?Action=AuthorizeSecurityGroupEgress
&RegionId=cn-hangzhou
&ClientToken=123e4567-e89b-12d3-a456-426655440000
&SecurityGroupId=sg-bp67acfmxazb4p****
&Permissions.1.DestGroupId=sg-bp67acfmxazb4p****
&Permissions.1.DestGroupOwnerAccount=Test@aliyun.com
&Permissions.1.IpProtocol=ALL
&Permissions.1.PortRange=22/22
&Permissions.1.NicType=intranet
&Permissions.1.Policy=Drop
&Common request parameters
Sample success responses
XML
format
HTTP/1.1 200 OK
Content-Type:application/xml
<AuthorizeSecurityGroupEgressResponse>
<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
</AuthorizeSecurityGroupEgressResponse>
JSON
format
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
Error codes
HTTP status code | Error code | Error message | Description |
---|---|---|---|
400 | OperationDenied | The specified IpProtocol does not exist or IpProtocol and PortRange do not match. | The error message returned because the specified IpProtocol parameter does not exist or does not match the specified PortRange parameter. |
400 | InvalidIpProtocol.Malformed | The specified parameter PortRange is not valid. | The error message returned because the specified transport layer protocol or the PortRange parameter is invalid. |
400 | InvalidDestCidrIp.Malformed | The specified parameter DestCidrIp is not valid. | The error message returned because the specified DestCidrIp parameter is invalid. |
400 | InvalidPolicy.Malformed | The specified parameter Policy is not valid. | The error message returned because the specified Policy parameter is invalid. |
400 | InvalidNicType.ValueNotSupported | The specified NicType does not exist. | The error message returned because the specified NicType parameter does not exist. |
400 | InvalidDestGroupId.Mismatch | Specified security group and destination group are not in the same VPC. | The error message returned because the specified security group and the destination security group do not belong to the same VPC. |
400 | InvalidDestGroup.NotFound | Specified destination security group does not exist. | The error message returned because the specified destination security group does not exist. |
400 | InvalidPriority.Malformed | The parameter Priority is invalid. | The error message returned because the specified Priority parameter is invalid. |
400 | InvalidDestCidrIp.Malformed | The parameter DestCidrIp is not valid. | The error message returned because the specified DestCidrIp parameter is invalid. |
400 | InvalidSecurityGroup.InvalidNetworkType | The specified security group network type is not support this operation, please check the security group network types. For VPC security groups, ClassicLink must be enabled. | The error message returned because the operation is not supported while the security group is of the current network type. The error message returned because ClassicLink must be enabled for security groups in VPCs. |
400 | InvalidSecurityGroupId.Malformed | The specified parameter SecurityGroupId is not valid. | The error message returned because the specified SecurityGroupId parameter is invalid. |
400 | InvalidParamter.Conflict | The specified SourceCidrIp should be different from the DestCidrIp. | The error message returned because the value of SourceCidrIp is the same as that of DestCidrIp. |
400 | InvalidSourcePortRange.Malformed | The specified parameter SourcePortRange is not valid. | The error message returned because the specified SourcePortRange parameter is invalid. |
400 | InvalidParameter.Conflict | IPv6 and IPv4 addresses cannot exist at the same time. | The error message returned because IPv6 addresses and IPv4 addresses are both specified. |
400 | InvalidParam.PrefixListAddressFamilyMismatch | The address family of the specified prefix list does not match the specified CidrIp. | The error message returned because the address family of the specified prefix list does not match that of the specified CIDR block. |
400 | NotSupported.ClassicNetworkPrefixList | The prefix list is not supported when the network type of security group is classic. | The error message returned because security groups in the classic network do not support prefix lists. |
400 | InvalidParam.DestCidrIp | The specified parameter DestCidrIp is invalid. | The error message returned because the specified DestCidrIp parameter is invalid. |
400 | InvalidParam.SourceCidrIp | The specified param SourceCidrIp is not valid. | The error message returned because the specified SourceCidrIp parameter is invalid. |
400 | InvalidParam.Permissions | The specified parameter Permissions cannot coexist with other parameters. | The error message returned because a parameter with the Permissions prefix cannot be specified at the same time as the corresponding parameter without the Permissions prefix. |
400 | InvalidParam.DuplicatePermissions | There are duplicate permissions in the specified parameter Permissions. | The error message returned because the security group rules specified by the parameters with the Permissions prefix are duplicate. |
403 | InvalidDestGroupId.Mismatch | NicType is required or NicType expects intranet. | The error message returned because the NicType parameter is not specified or is not set to intranet. |
403 | MissingParameter | The input parameter DestGroupId or DestCidrIp cannot be both blank. | The error message returned because the DestGroupId and DestCidrIp parameters cannot be empty at the same time. |
403 | AuthorizationLimitExceed | The limit of authorization records in the security group reaches. | The error message returned because the maximum number of rules in the security group has been reached. |
403 | InvalidParamter.Conflict | The specified SecurityGroupId should be different from the SourceGroupId. | The error message returned because the destination security group is the same as the source security group. |
403 | InvalidNetworkType.Conflict | The specified SecurityGroup network type should be same with SourceGroup network type (vpc or classic). | The error message returned because the network type of the specified security group is different from that of the source security group. |
403 | InvalidSecurityGroup.IsSame | The authorized SecurityGroupId should be different from the DestGroupId. | The error message returned because the authorized security group cannot be the same as the current destination security group. |
403 | InvalidNetworkType.Conflict | The parameter SecurityGroup network type should be same with SourceGroup network type (vpc or classic). | The error message returned because the network type of the specified security group is different from that of the source group. |
403 | InvalidOperation.ResourceManagedByCloudProduct | %s | The error message returned because security groups managed by cloud services cannot be modified. |
403 | LimitExceed.PrefixListAssociationResource | The number of resources associated with the prefix list exceeds the limit. | The error message returned because the maximum amount of resources that can be associated with the prefix list has been reached. |
404 | InvalidSecurityGroupId.NotFound | The specified SecurityGroupId does not exist. | The error message returned because the specified security group does not exist in this account. Check whether the security group ID is correct. |
404 | InvalidDestGroupId.NotFound | The DestGroupId provided does not exist in our records. | The error message returned because the specified DestGroupId parameter does not exist. |
404 | InvalidPrefixListId.NotFound | The specified prefix list was not found. | The error message returned because the specified prefix list does not exist. |
404 | InvalidSecurityGroupId.NotFound | %s | The error message returned because the specified security group ID does not exist. |
500 | InternalError | The request processing has failed due to some unknown error. | The error message returned because an internal error has occurred. Try again later. |
For a list of error codes, see Service error codes.