Safeguards Configuration Guide
Table of Contents
- Security Rules Configuration
- Pre-commit Hooks
- GitHub Actions Security Workflow
- Security Scanning Tools
- Troubleshooting
Security Rules Configuration
Basic Rule Chain Setup
from safeguards.rules.base import RuleChain
from safeguards.rules.defaults import PermissionGuardrail, SecurityContextRule
chain = RuleChain()
chain.add_rule(rule1)
chain.add_rule(rule2)
Default Rules
1. Permission Guardrail
permission_rule = PermissionGuardrail(
required_permissions={"read", "write"},
role_permissions={
"admin": {"read", "write", "delete"},
"editor": {"read", "write"},
"viewer": {"read"},
}
)
2. Security Context Rule
security_rule = SecurityContextRule(
required_security_level="medium", # Options: low, medium, high
allowed_environments={"prod", "staging", "dev"}
)
3. Resource Limit Rule
4. Rate Limit Rule
Rule Dependencies
Rules can specify dependencies that must be evaluated first:
Rule Priority Levels
CRITICAL
: Must pass, blocks executionHIGH
: Should pass, may block based on configMEDIUM
: Warning if failsLOW
: Informational only
Pre-commit Hooks
Installation
Available Hooks
-
GitLeaks: Secret detection
-
Bandit: Python security checks
-
Safety: Dependency scanning
Custom Hook Configuration
See .pre-commit-config.yaml
for full configuration options.
GitHub Actions Security Workflow
Workflow Triggers
- Push to main branch
- Pull requests
- Daily scheduled scan
Available Scans
- GitLeaks for secret detection
- Safety Check for dependencies
- Bandit for code analysis
- Semgrep for pattern matching
- Dependency Review
- Snyk vulnerability scanning
Required Secrets
GITHUB_TOKEN
: Automatically providedSNYK_TOKEN
: Required for Snyk integration
Security Scanning Tools
Bandit Configuration
Configure in .bandit.yml
:
GitLeaks Configuration
Configure in .gitleaks.toml
:
[allowlist]
paths = [
'''.*test.*''',
'''.*example.*''',
]
[[rules]]
id = "custom-pattern"
regex = '''pattern'''
Semgrep Configuration
Configured in workflow:
Troubleshooting
Common Issues
- Pre-commit Hook Failures
- Check hook configuration in
.pre-commit-config.yaml
- Run
pre-commit run --all-files
for details -
Update hooks:
pre-commit autoupdate
-
GitHub Actions Failures
- Check workflow run logs
- Verify required secrets are set
-
Check tool-specific configuration files
-
Security Rule Violations
- Review violation messages
- Check rule configuration
- Verify input data format
Best Practices
- Rule Chain Configuration
- Order rules by priority
- Consider dependencies
-
Use appropriate priority levels
-
Security Scanning
- Regular dependency updates
- Monitor scan results
-
Address high-priority issues first
-
Custom Rules
- Follow rule interface
- Include comprehensive tests
- Document requirements
Getting Help
- Check GitHub issues
- Review documentation
- Contact maintainers