Network Access Control
Network Access Control Overview
The Control Center includes a built-in network access control feature that allows you to restrict access based on IP addresses, HTTP methods, and URLs. This is particularly useful for implementing privileged access control and preventing unauthorized access to the Control Center.
If you'd like to configure network access control rules, please reach out to your HYPR Solutions Architect and they will help you implement the appropriate configuration for your environment.
How Network Access Control Works
Access control rules are modeled on AWS WAF rules and consist of two main concepts: matchers and rules.
Matchers
Matchers contain conditions that specify the characteristics of web requests you want to evaluate. Available matchers include:
- METHODS: Match HTTP methods (GET, POST, PUT, etc.)
- URLS: Regex expression matching incoming URLs
- IPBLOCKS: CIDR address matching incoming IP addresses
Rules
Rules decide the action to take on matched requests:
- ALLOW: Permits the request (terminating rule)
- DENY: Denies the request with 400 HTTP status (terminating rule)
- COUNT: Logs the request without blocking (non-terminating rule)
Example Configurations
Here are some common use cases for network access control:
Restrict Access to Specific IP Ranges
Allow access only from your corporate network:
ALLOW(IPBLOCKS(192.168.1.0/24)) | DENY(URLS(.*))
Restrict HTTP Methods
Allow only GET and POST requests:
ALLOW(METHODS(GET,POST)) | DENY(URLS(.*))
Block Specific URL Patterns
Block access to administrative endpoints from external IPs:
ALLOW(IPBLOCKS(10.0.0.0/8)) | DENY(URLS(/admin/.*))
Testing Rules
A test API endpoint is available to validate rules before deployment:
curl -X POST "http://localhost:8009/cc/api/serverconfig/firewallrule/test" \
-H "Authorization: Bearer {{apiToken}}" \
-H "Content-Type: application/json" \
-d "{
\"rules\": [
\"ALLOW( IPBLOCKS(192.168.1.0/24) )\",
\"DENY( URLS(.*) )\"
],
\"match\": {
\"method\": \"GET\",
\"url\": \"https://test.org/cc/ui/\",
\"ip\": \"192.168.1.100\"
}
}"
Configuring an incorrect DENY rule may block access for legitimate users. Always test your rules thoroughly before deploying them to production.
Best Practices
- Start with COUNT rules to monitor traffic before implementing DENY rules
- Test rules in a non-production environment first
- Keep rules as simple as possible to avoid unintended consequences
- Document your rules for future reference
- Regularly review and update rules based on changing security requirements
Rules are evaluated in order, and the first matching rule determines the action. Place more specific rules before general ones.