Verify firewall configuration for the Chronicle API
This document describes the network firewall and proxy rules required for clients, collectors, and integrations to communicate with the Google Security Operations Chronicle API.
Verify firewall and proxy configuration
If you use firewalls or authenticated proxies between your environment and the internet, configure rules to allow outbound HTTPS and Transport Layer Security (TLS) connections on TCP port 443. Allow access to the following Google Cloud hosts:
- Chronicle API endpoints: Allow access to the locational endpoint (
<var>REGION</var>-chronicle.googleapis.com) or regional endpoint (chronicle.<var>REGION</var>.rep.googleapis.com) that corresponds to your Google SecOps instance location. Your Chronicle API endpoint serves all platform capabilities, including log and event ingestion, Unified Data Model (UDM) search, Detection Engine rules and retrohunts, built-in dashboards, entity risk and User and Entity Behavior Analytics (UEBA), reference lists, data tables, feeds, and SOAR case management. - Google authentication and API endpoints: Allow access to
oauth2.googleapis.com,www.googleapis.com, andaccounts.google.com(plussts.googleapis.comandiamcredentials.googleapis.comif you use Workload Identity Federation or service account impersonation). Client libraries, collectors, and integrations require these endpoints to authenticate, exchange credentials, verify certificates, and refresh OAuth 2.0 tokens.
| Connection type | Destination | Port | Purpose |
|---|---|---|---|
| TCP (HTTPS) | <var>REGION</var>-chronicle.googleapis.com |
443 | Locational Chronicle API endpoint for your instance (for example, us-chronicle.googleapis.com or europe-west2-chronicle.googleapis.com). For all supported locations, see Service endpoint. |
| TCP (HTTPS) | chronicle.<var>REGION</var>.rep.googleapis.com |
443 | Regional or multi-regional Chronicle API endpoint (rep) with in-region TLS termination (for example, chronicle.us.rep.googleapis.com). For supported regions, see Regional service endpoints. |
| TCP (HTTPS) | chronicle.googleapis.com |
443 | Global Chronicle API service endpoint. |
| TCP (HTTPS) | oauth2.googleapis.com |
443 | OAuth 2.0 token acquisition and refresh. |
| TCP (HTTPS) | www.googleapis.com |
443 | Google API authentication, token verification certificates, and API discovery. |
| TCP (HTTPS) | accounts.google.com |
443 | Google identity and service account authentication. |
| TCP (HTTPS) | sts.googleapis.com |
443 | Token exchange when using Workload Identity Federation or Workforce Identity Federation (if applicable). |
| TCP (HTTPS) | iamcredentials.googleapis.com |
443 | Short-lived credential generation when using service account impersonation (if applicable). |
Google IP address ranges and private connectivity
Google APIs and authentication services use dynamically allocated IP addresses that change frequently. Don't configure firewall rules with hardcoded IP addresses obtained from one-time DNS lookups.
Depending on your network architecture, use one of the following approaches:
- Public internet egress (dynamic IP ranges): If your firewall doesn't support domain-based rules and requires IP Classless Inter-Domain Routing (CIDR) blocks, configure automated updates using published Google IP ranges (
goog.jsonandcloud.json). For instructions and a sample Python script to calculate default domain IP ranges, see IP addresses for default domains and Obtain Google IP address ranges. - Private Google Access (static virtual IPs): To connect from Virtual Private Cloud virtual machines (VMs) or on-premises networks (over Cloud VPN or Cloud Interconnect) without traversing the public internet or maintaining dynamic IP lists, use Private Google Access or Private Google Access for on-premises hosts with
private.googleapis.com(199.36.153.8/30) orrestricted.googleapis.com(199.36.153.4/30). - Private Service Connect: To access Google APIs using a private internal IP address in your VPC network, use Private Service Connect endpoints for Google APIs. Regional endpoints (
chronicle.<var>REGION</var>.rep.googleapis.com) aren't accessible throughprivate.googleapis.comorrestricted.googleapis.com. To connect privately to a*.rep.googleapis.comendpoint, see Access regional Google APIs through private endpoints.
Test network connectivity
To verify that your firewall or proxy allows outbound HTTPS connections and TLS handshakes to the Chronicle API and Google authentication endpoints on TCP port 443, run the connectivity checks for your operating system.
Linux or macOS
Open a terminal on the host where your API client, collector, or integration runs.
Test HTTPS connectivity and TLS negotiation on port
443to your Chronicle API endpoint and the required authentication hosts usingcurl:curl -Iv https://<var>REGION</var>-chronicle.googleapis.com curl -Iv https://oauth2.googleapis.com curl -Iv https://www.googleapis.com curl -Iv https://accounts.google.comReplace
<var>REGION</var>with the region prefix or multi-region name for your Google SecOps instance (for example,us,eu, oreurope-west2). A successful connection completes the TLS handshake and returns an HTTP response header (such asHTTP/2 404orHTTP/2 200).
Windows PowerShell
Start Windows PowerShell with administrator privileges.
Test TCP port
443and HTTPS reachability for your Chronicle API endpoint and each required authentication host:Test-NetConnection <var>REGION</var>-chronicle.googleapis.com -Port 443 Invoke-WebRequest -Uri https://<var>REGION</var>-chronicle.googleapis.com -Method Head -SkipHttpErrorCheck Invoke-WebRequest -Uri https://oauth2.googleapis.com -Method Head -SkipHttpErrorCheck Invoke-WebRequest -Uri https://www.googleapis.com -Method Head -SkipHttpErrorCheck Invoke-WebRequest -Uri https://accounts.google.com -Method Head -SkipHttpErrorCheckReplace
<var>REGION</var>with the region prefix or multi-region name for your Google SecOps instance (for example,us,eu, oreurope-west2). Verify thatTcpTestSucceededreturnsTrueandInvoke-WebRequestreturns an HTTPStatusCodewithout a proxy or TLS connection error.