|
| 1 | +{ |
| 2 | + "schema_version": "1.0", |
| 3 | + "rules": [ |
| 4 | + { |
| 5 | + "id": "azure-storage-public-access", |
| 6 | + "provider": "azure", |
| 7 | + "control_ref": "azure.storage.public_access", |
| 8 | + "title": "Move Azure Storage to an approved private-access path", |
| 9 | + "iac_targets": ["terraform", "opentofu", "bicep"], |
| 10 | + "monthly_cost_usd": {"low": 7.3, "expected": 18.0, "high": 73.0}, |
| 11 | + "base_risk": 4, |
| 12 | + "change": "Add a Private Endpoint and private DNS association, then disable public network access after consumer-path validation.", |
| 13 | + "tests": ["Resolve the storage FQDN from every approved network", "Test application read/write paths", "Confirm public path denial", "Recollect Azure Policy state"] |
| 14 | + }, |
| 15 | + { |
| 16 | + "id": "aws-s3-public-access", |
| 17 | + "provider": "aws", |
| 18 | + "control_ref": "aws.s3.public_access", |
| 19 | + "title": "Restrict unintended S3 public access", |
| 20 | + "iac_targets": ["terraform", "opentofu", "cloudformation"], |
| 21 | + "monthly_cost_usd": {"low": 0.0, "expected": 0.0, "high": 5.0}, |
| 22 | + "base_risk": 3, |
| 23 | + "change": "Enable account/bucket public-access controls only after identifying intended public distribution and replacing it with an approved delivery path where required.", |
| 24 | + "tests": ["Inventory bucket policies and ACLs", "Validate CDN/application consumers", "Confirm intended principals retain access", "Recollect Security Hub state"] |
| 25 | + }, |
| 26 | + { |
| 27 | + "id": "gcp-storage-public-access", |
| 28 | + "provider": "gcp", |
| 29 | + "control_ref": "gcp.storage.public_access_prevention", |
| 30 | + "title": "Enforce approved Cloud Storage access", |
| 31 | + "iac_targets": ["terraform", "opentofu", "config-connector"], |
| 32 | + "monthly_cost_usd": {"low": 0.0, "expected": 0.0, "high": 5.0}, |
| 33 | + "base_risk": 3, |
| 34 | + "change": "Enable Public Access Prevention and remove broad IAM members after validating intended public delivery and service identities.", |
| 35 | + "tests": ["Inventory allUsers and allAuthenticatedUsers bindings", "Validate application identities", "Confirm intended public delivery replacement", "Recollect SCC state"] |
| 36 | + }, |
| 37 | + { |
| 38 | + "id": "kubernetes-privileged-workload", |
| 39 | + "provider": "kubernetes", |
| 40 | + "control_ref": "kubernetes.workload.privileged", |
| 41 | + "title": "Remove unnecessary privileged execution", |
| 42 | + "iac_targets": ["kubernetes", "helm", "kustomize", "opa"], |
| 43 | + "monthly_cost_usd": {"low": 0.0, "expected": 0.0, "high": 20.0}, |
| 44 | + "base_risk": 5, |
| 45 | + "change": "Set a least-privilege security context and admission policy while preserving explicitly justified system workloads.", |
| 46 | + "tests": ["Run workload functional and startup tests", "Validate required device and filesystem access", "Exercise admission policy in audit mode", "Collect runtime and admission evidence"] |
| 47 | + }, |
| 48 | + { |
| 49 | + "id": "cloud-logging-disabled", |
| 50 | + "provider": "multicloud", |
| 51 | + "control_ref": "cloud.logging.enabled", |
| 52 | + "title": "Enable a bounded provider-native audit-log pipeline", |
| 53 | + "iac_targets": ["terraform", "opentofu", "bicep", "cloudformation"], |
| 54 | + "monthly_cost_usd": {"low": 5.0, "expected": 45.0, "high": 500.0}, |
| 55 | + "base_risk": 2, |
| 56 | + "change": "Enable required management and data-plane logs with explicit scope, filters, retention, routing and cost alerts.", |
| 57 | + "tests": ["Generate and locate a canary event", "Verify retention and encryption", "Test alert routing", "Measure seven-day ingestion before approving the forecast"] |
| 58 | + } |
| 59 | + ] |
| 60 | +} |
0 commit comments