Access Rules
Access rules in Arxignis provide granular control over who can access your applications and under what conditions. These rules help you implement security policies, geographic restrictions, and network-based access controls.
Overview
Access rules allow you to:
- Block or allow specific IP addresses or ranges
- Implement geographic restrictions by country
- Control access by ASN (Autonomous System Number)
- Create rule lists for different access policies
- Resolve geographic and ASN rules to IP ranges
API Endpoints
Get Access Rule
Retrieve a specific access rule by ID.
GET /v1/access-rules/{id}?resolve=true
Parameters:
id
(path, required): Access rule ID (UUID)resolve
(query, optional): Resolve country codes and ASN numbers to IP ranges (default: false)
Rule Categories
Allow Rules
Rules that explicitly allow access:
{
"allow": {
"country": ["US", "CA", "GB"],
"asn": ["AS32934", "AS15169"],
"ips": ["192.168.1.0/24", "10.0.0.1"]
}
}
Block Rules
Rules that explicitly block access:
{
"block": {
"country": ["CN", "RU", "KP"],
"asn": ["AS4134", "AS4837"],
"ips": ["192.168.100.0/24", "10.1.0.0/16"]
}
}
Response Formats
Basic Format (resolve=false)
{
"success": true,
"data": {
"id": "dcfb642a-1daa-4c3a-ae1d-708379217e15",
"name": "admin",
"description": "Administrator access",
"allow": {
"country": ["US", "CA"],
"asn": ["AS32934"],
"ips": ["192.168.1.0/24"]
},
"block": {
"country": ["CN"],
"asn": ["AS4134"],
"ips": ["10.0.0.0/8"]
},
"is_active": true,
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
}
Resolved Format (resolve=true)
When resolve=true
, country codes and ASN numbers are resolved to actual IP ranges:
{
"success": true,
"data": {
"id": "dcfb642a-1daa-4c3a-ae1d-708379217e15",
"name": "admin",
"description": "Administrator access",
"allow": {
"country": [
{
"US": ["1.0.0.0/8", "2.0.0.0/8", "3.0.0.0/8"]
},
{
"CA": ["24.0.0.0/8", "25.0.0.0/8"]
}
],
"asn": [
{
"AS32934": ["8.8.8.0/24", "8.8.4.0/24"]
}
],
"ips": ["192.168.1.0/24"]
},
"block": {
"country": [
{
"CN": ["1.0.1.0/24", "1.0.2.0/23"]
}
],
"asn": [
{
"AS4134": ["202.96.0.0/12"]
}
],
"ips": ["10.0.0.0/8"]
},
"is_active": true,
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
}
}
Rule Types
Country-based Rules
Control access based on geographic location using ISO country codes:
- US - United States
- CA - Canada
- GB - United Kingdom
- CN - China
- RU - Russia
ASN-based Rules
Control access based on Autonomous System Numbers:
- AS32934 - Google LLC
- AS15169 - Google LLC
- AS4134 - China Telecom
- AS4837 - China Unicom
IP-based Rules
Control access based on specific IP addresses or CIDR ranges:
- 192.168.1.0/24 - Private network range
- 10.0.0.0/8 - Private network range
- 203.0.113.0/24 - Documentation range
Error Responses
400 Bad Request
{
"success": false,
"error": "Invalid ID format",
"details": {
"id": "invalid-uuid"
}
}
404 Not Found
{
"success": false,
"error": "Access rules not found",
"details": {
"id": "dcfb642a-1daa-4c3a-ae1d-708379217e15"
}
}
500 Internal Server Error
{
"success": false,
"error": "Failed to retrieve access rules",
"details": {
"id": "dcfb642a-1daa-4c3a-ae1d-708379217e15"
}
}
Best Practices
- Use resolve=true sparingly - Resolved data is expensive to compute
- Cache responses - Access rules don't change frequently
- Test with small datasets - Resolved format can return large IP ranges
- Monitor cache performance - Check cache hit rates in response headers
- Handle missing rules - Always check for 404 responses when rules don't exist