Security Groups and Security Group Rules¶
Security Groups¶
A security group is a collection of access control rules for cloud resources, such as cloud servers, containers, and databases, that have the same security protection requirements and that are mutually trusted. After a security group is created, you can create various access rules for the security group and these rules will apply to all cloud resources added to this security group.
If you have not created any security groups yet, the system automatically creates a default security group for you and associates it with the instance (such as an ECS) when you create it. For details about the default security group, see Default Security Group and Its Rules.
Security groups are stateful. If you send a request from your instance and the outbound traffic is allowed, the response traffic for that request is allowed to flow in regardless of inbound security group rules. Similarly, if inbound traffic is allowed, responses to allowed inbound traffic are allowed to flow out, regardless of outbound rules.
Security groups use connection tracking to track traffic to and from instances that they contain and security group rules are applied based on the connection status of the traffic to determine whether to allow or deny traffic.
If you add, modify, or delete a security group rule, or add or remove an instance to or from a security group, the inbound connection tracking of all instances in the security group will be automatically cleared. The inbound or outbound traffic of the instance will be considered as new connections, which need to match the inbound or outbound security group rules to ensure that the rules take effect immediately and the security of incoming traffic.
If there is no inbound or outbound traffic of an instance for a long time, the traffic will be considered as new connections after the connection tracking times out, and the connections need to match the outbound and inbound rules. The timeout period of connection tracking varies according to the protocol. The timeout period of a TCP connection in the established state is 600s, and the timeout period of an ICMP connection is 30s. For other protocols, if packets are received in both inbound and outbound directions, the connection tracking timeout period is 180s. If packets are received only in one direction, the connection tracking timeout period is 30s. For protocols other than TCP, UDP, and ICMP, only the IP address and protocol number are tracked.
Security Group Rules¶
A security group has inbound and outbound rules to control traffic that's allowed to reach or leave the instances associated with the security group. You can specify protocol, port, source/destination for a security group rule. Table 1 describes key information about a security group rule.
Parameter | Description |
---|---|
Protocol | The network protocol used to match traffic in a security group rule. Currently, the value can be All, TCP, UDP, GRE, ICMP, or more. |
Port | Destination port used to match traffic in a security group rule. The value can be from 1 to 65535.
|
Source (Inbound) | The source in an inbound rule is used to match the IP address or address range of an external request. The source can be:
|
Destination (Outbound) | The destination in an outbound rule is used to match the IP address or address range of an internal request. The destination can be:
|
Like whitelists, security group rules work as follows:
Inbound rules control incoming traffic to instances in the security group.
If an inbound request matches the source in an inbound security group rule, the request is allowed and other requests are denied.
By default, you do not need to configure deny rules in the inbound direction because requests that do not match allow rules will be denied.
Outbound rules control outgoing traffic from instances in the security group.
If the destination of an outbound security group rule is 0.0.0.0/0, all outbound requests are allowed.
0.0.0.0/0 represents all IPv4 addresses.
::/0 represents all IPv6 addresses.
Table 2 uses custom security group sg-AB as an example to describe its inbound and outbound rules in detail.
Direction | Type | Protocol & Port | Source/Destination | Description |
---|---|---|---|---|
Inbound | IPv4 | All | Source: sg-AB | Allows ECSs in the security group to communicate with each other. |
Inbound | IPv4 | TCP: 22 | Source: 0.0.0.0/0 | Allows all IPv4 addresses to access ECSs in the security group over port 22 (SSH) for remotely logging in to Linux ECSs. |
Inbound | IPv4 | TCP: 3389 | Source: 0.0.0.0/0 | Allows all IPv4 addresses to access ECSs in the security group over port 3389 (RDP) for remotely logging in to Windows ECSs. |
Inbound | IPv4 | TCP: 80 | Source: 10.5.6.30/32 | Allows IP address 10.5.6.30 to access ECSs in the security group over port 80. |
Outbound | IPv4 | All | Destination: 0.0.0.0/0 | Allows access from ECSs in the security group to any IPv4 address over any port. |
Outbound | IPv6 | All | Destination: ::/0 | Allows access from ECSs in the security group to any IPv6 address over any port. |
Important
After a port is enabled in a security group rule, ensure that the port in the instance is also enabled to ensure normal network communication.
Generally, instances in the same security group can communicate with each other by default. If instances in the same security group cannot communicate with each other, the possible causes are as follows:
The inbound rule for communication between instances in the same security group is deleted.
Different VPCs cannot communicate with each other. The instances belong to the same security group but different VPCs.
You can use VPC peering connections to connect VPCs in different regions.
Security Group Constraints¶
By default, you can create a maximum of 100 security groups in your cloud account.
By default, you can add up to 50 security group rules to a security group.