Access Rules
IP-based access control for deployment endpoints across all cloud providers
Access rules control which IP addresses and CIDR ranges can reach your deployment endpoints. Every deployment starts fully isolated by default — no traffic is allowed until you explicitly create an access rule. This includes LaserData itself — our control plane orchestrates infrastructure but has no network access to your deployment endpoints or data.
You are in full control of who can reach your deployment. Nothing is open until you say so.
Available on all deployment models (Managed, BYOC, On-Premise) and all plans.
Why Access Rules
When you provision a deployment, it has zero network access configured — no IP, no port, no protocol is reachable by anyone. Clients cannot connect to any endpoint until you explicitly allow traffic. Access rules let you:
- Restrict access to known office or VPN IP ranges
- Open specific protocols (e.g. TCP for applications, HTTP for monitoring) independently
- Grant temporary access with automatic expiry — useful for contractors or debugging sessions
- Keep the Console UI accessible only from trusted networks
Concepts
Protocol Rules
Each access rule specifies which protocols to open for the allowed CIDR blocks. You can enable any combination:
| Protocol | What It Opens |
|---|---|
| Iggy HTTP | Iggy HTTP API endpoint |
| Iggy TCP | Iggy TCP transport |
| Iggy WebSocket | Iggy WebSocket transport |
| Iggy UDP | Iggy QUIC/UDP transport |
| Console HTTP | Console web UI (ports 80 and 443) |
There is no "allow all" default — you must explicitly select which protocols to permit. If no protocols are enabled, no ports are opened even if CIDR blocks are defined.
CIDR Blocks
Each rule requires at least one IPv4 CIDR block:
- Single host:
203.0.113.5/32 - Subnet:
10.0.0.0/16 - All IPs:
0.0.0.0/0(opens the selected protocols to the entire internet) - Subnet mask must be between
/0and/32
Rule Expiry
You can set an optional expiration date on any rule. Once expired, the rule is no longer enforced and traffic from those CIDRs is blocked again. This is useful for temporary access — for example, granting a partner access for 30 days without needing to remember to clean it up.
Creating an Access Rule
From the Console
- Navigate to your deployment and open the Access Rules tab
- Click Add Rule
- Enter a name for the rule (must be unique within the deployment)
- Add one or more CIDR blocks — your IP ranges
- Select the protocols you want to allow (Iggy TCP, HTTP, WebSocket, UDP, Console HTTP)
- Optionally set an expiration date
- Add optional remarks for context
- Click Create
LaserData automatically configures the underlying cloud infrastructure (security groups on AWS, firewall rules on other providers) to permit the specified traffic.
Validation
When creating a rule, the platform validates:
- Name must be unique within the deployment (case-insensitive)
- CIDR blocks must be valid IPv4 CIDR notation with at least one entry
- Expiry, if set, must be a future timestamp
- The deployment must not have reached its plan's access rule limit
Managing Access Rules
From the Access Rules tab you can view all active rules with their CIDR blocks, enabled protocols, expiry status, and creation timestamps. Rules can be deleted individually — this removes both the rule and the corresponding cloud infrastructure configuration.
Plan Limits
| Resource | Basic | Pro | Enterprise |
|---|---|---|---|
| Access rules per deployment | 3 | 10 | 20 |
Audit
All access rule operations are recorded in the audit log:
- Rule created — who created it, which CIDRs and protocols
- Rule updated — what changed, previous values preserved
- Rule deleted — who removed it and when
API Reference
For programmatic access via API keys, the following endpoints are available.
Required permission: DeploymentAccessRulesManage (create, delete) or DeploymentAccessRulesRead (list)
Create a Rule
curl -X POST {supervisor_url}/deployments/{deployment_id}/access_rules \
-H "ld-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "production-api-access",
"ingress": true,
"cidr_blocks": ["10.0.0.0/16", "172.16.0.0/12"],
"rules": {
"iggy_tcp": true,
"iggy_http": true
},
"valid_to": "2026-12-31T23:59:59Z",
"remarks": "Production API servers"
}'List Rules
curl {supervisor_url}/deployments/{deployment_id}/access_rules \
-H "ld-api-key: YOUR_API_KEY"[
{
"id": 1,
"ingress": true,
"name": "production-api-access",
"remarks": "Production API servers",
"rules": {
"iggy_http": true,
"iggy_tcp": true,
"iggy_websocket": false,
"iggy_udp": false,
"console_http": false,
"all_traffic": false
},
"cidr_blocks": ["10.0.0.0/16", "172.16.0.0/12"],
"valid_to": "2026-12-31T23:59:59Z",
"created_at": "2025-01-15T10:30:00Z"
}
]Delete a Rule
curl -X DELETE {supervisor_url}/deployments/{deployment_id}/access_rules/{rule_id} \
-H "ld-api-key: YOUR_API_KEY"