rules:
- id: gcp-sql-public-database
  patterns:
  - pattern: resource
  - pattern-either:
    - pattern-inside: |
        resource "google_sql_database_instance" "..." {
        ...
        ip_configuration {
          ...
          authorized_networks {
            ...
            value = "0.0.0.0/0"
            ...
          }
          ...
        }
        ...
        }
    - pattern-inside: |
        resource "google_sql_database_instance" "..." {
        ...
        ip_configuration {
          ...
          dynamic "authorized_networks" {
            ...
            content {
              ...
              value = "0.0.0.0/0"
              ...
            }
            ...
          }
          ...
        }
        ...
        }
  message: >-
    Ensure that Cloud SQL database Instances are not open to the world
  metadata:
    owasp:
    - A05:2017 - Broken Access Control
    - A01:2021 - Broken Access Control
    cwe:
    - 'CWE-284: Improper Access Control'
    category: security
    technology:
    - terraform
    - gcp
    references:
    - https://owasp.org/Top10/A01_2021-Broken_Access_Control
    subcategory:
    - vuln
    likelihood: MEDIUM
    impact: MEDIUM
    confidence: MEDIUM
  languages: [hcl]
  severity: WARNING
