Chuyển tới nội dung chính

Quản lý security group rule

GET/v2.0/security-group-rules
POST/v2.0/security-group-rules
DELETE/v2.0/security-group-rules/{rule_id}

Rule chỉ có kiểu allow. Không có rule deny: lưu lượng không khớp rule nào sẽ bị drop, và vì group là stateful, phản hồi cho một kết nối được phép sẽ được cho phép mà không cần thêm rule.

Liệt kê rule​

curl -ks -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
'https://api.vietnix.cloud:9696/v2.0/security-group-rules?security_group_id=b7e4d2c1-8f3a-4b6d-9c05-1e2f3a4b5c60'

Thêm rule​

Tham số​

security_group_ruleobjectbắt buộc

Object bọc rule.

9 trường
security_group_idstringbắt buộcbody

ID của group mà rule thuộc về. Bắt buộc.

directionstringbắt buộcbody

ingress hoặc egress. Bắt buộc.

2 giá trị
  • ingress Áp dụng cho lưu lượng đi vào VM.
  • egress Áp dụng cho lưu lượng đi ra khỏi VM.
ethertypestringbắt buộcbody

IPv4 hoặc IPv6. Bắt buộc.

2 giá trị
  • IPv4 Lưu lượng IPv4.
  • IPv6 Lưu lượng IPv6.
protocolstringbody

tcp, udp, icmp, icmpv6 hoặc null cho mọi giao thức.

5 giá trị
  • tcp Transmission Control Protocol.
  • udp User Datagram Protocol.
  • icmp ICMP cho IPv4.
  • icmpv6 ICMP cho IPv6.
  • any Mọi giao thức. Đây là giá trị được dùng khi protocol là null.
port_range_minintegerbody

Điểm bắt đầu của dải port. Chỉ hợp lệ với tcp và udp.

port_range_maxintegerbody

Điểm kết thúc của dải port. Chỉ hợp lệ với tcp và udp.

remote_ip_prefixstringbody

CIDR nguồn hoặc đích. Dùng 0.0.0.0/0 cho mọi địa chỉ IPv4. Không thể kết hợp với remote_group_id.

remote_group_idstringbody

Cho phép lưu lượng từ security group khác thay vì một CIDR.

descriptionstringbody

Mô tả tự do.

Request mẫu — cho phép SSH từ một mạng​

curl -ks -X POST -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
-d '{
"security_group_rule": {
"security_group_id": "b7e4d2c1-8f3a-4b6d-9c05-1e2f3a4b5c60",
"direction": "ingress",
"ethertype": "IPv4",
"protocol": "tcp",
"port_range_min": 22,
"port_range_max": 22,
"remote_ip_prefix": "203.0.113.0/24",
"description": "SSH from office network"
}
}' https://api.vietnix.cloud:9696/v2.0/security-group-rules

Response mẫu​

JSON body
{
"security_group_rule": {
"id": "5c9f3a21-7d4e-4b8f-a0c6-3e2d1b0a9f88",
"security_group_id": "b7e4d2c1-8f3a-4b6d-9c05-1e2f3a4b5c60",
"direction": "ingress",
"ethertype": "IPv4",
"protocol": "tcp",
"port_range_min": 22,
"port_range_max": 22,
"remote_ip_prefix": "203.0.113.0/24",
"remote_group_id": null,
"description": "SSH from office network",
"tenant_id": "f5d834d636c642c7bfe8af86139c6f26"
}
}

Mã trạng thái​

MãMô tả
201 - CreatedRule đã được tạo.
400 - Bad RequestProtocol, dải port hoặc CIDR không hợp lệ; hoặc cả remote_ip_prefix và remote_group_id đều được đặt.
401 - UnauthorizedCần xác thực trước khi gửi request.
403 - ForbiddenPolicy không cho phép user hiện tại thực hiện thao tác này.
404 - Not FoundSecurity group không tồn tại.
409 - ConflictRule tương tự đã tồn tại trong group.

Xoá rule​

curl -ks -X DELETE -H 'Content-Type: application/json' -H 'X-Auth-Token: gAAAAA<...>' \
https://api.vietnix.cloud:9696/v2.0/security-group-rules/{rule_id}
MãMô tả
204 - No ContentRule đã bị xoá.
401 - UnauthorizedCần xác thực trước khi gửi request.
403 - ForbiddenPolicy không cho phép user hiện tại thực hiện thao tác này.
404 - Not FoundRule không tồn tại.
tip

Rule có hiệu lực ngay trên mọi port dùng group; không cần khởi động lại VM. Nếu kết nối vẫn thất bại, hãy kiểm tra direction, ethertype và xem firewall trong guest có chặn port đó không.