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.

Table 1 Security group rule information

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.

  • Inbound rules control incoming traffic over specific ports to instances in the security group.

  • Outbound rules control outgoing traffic over specific ports from instances in the security group.

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:

  • IP address:

    • Example IPv4 address: 192.168.10.10/32

    • Example IPv6 address: 2002:50::44/128

    • Example IPv4 address range: 192.168.52.0/24 All IPv4 addresses: 0.0.0.0/0

    • Example IPv6 address range: 2407:c080:802:469::/64 All IPv6 addresses: ::/0

  • Security group: You can select another security group in the same region under the current account as the source.

    For example, instance A is in security group A and instance B is in security group B. If security group A has a rule with Source set to security group B, access from instance B is allowed to instance A.

  • IP address group: If you have multiple IP address ranges and IP addresses with same security requirements, add them to an IP address group and select the group as the source to help you manage them in a more simple way.

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:

  • IP address:

    • Example IPv4 address: 192.168.10.10/32

    • Example IPv6 address: 2002:50::44/128

    • Example IPv4 address range: 192.168.52.0/24 All IPv4 addresses: 0.0.0.0/0

    • Example IPv6 address range: 2407:c080:802:469::/64 All IPv6 addresses: ::/0

  • Security group: You can select another security group in the same region under the current account as the destination.

    For example, instance A is in security group A and instance B is in security group B. If security group A has a rule with Destination set to security group B, access from instance A is allowed to instance B.

  • IP address group: If you have multiple IP address ranges and IP addresses with same security requirements, add them to an IP address group and select the group as the destination to help you manage them in a more simple way.

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.

Table 2 Rules in security group sg-AB

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.