Install
openclaw skills install auditclaw-gcpGCP compliance evidence collection for auditclaw-grc. 12 read-only checks across Cloud Storage, firewall, IAM, logging, KMS, DNS, BigQuery, Compute, and Cloud SQL.
openclaw skills install auditclaw-gcpCompanion skill for auditclaw-grc. Collects compliance evidence from Google Cloud Platform projects using read-only API calls.
12 checks | Viewer + Security Reviewer roles only | Evidence stored in shared GRC database
GOOGLE_APPLICATION_CREDENTIALS or gcloud auth). No credentials stored by this skill.~/.openclaw/grc/compliance.sqlite via auditclaw-grcgcloud auth application-default login or service account JSON)GCP_PROJECT_ID environment variable setpip install -r scripts/requirements.txtAll evidence is stored in the shared GRC database at ~/.openclaw/grc/compliance.sqlite via the auditclaw-grc skill's db_query.py script.
To run a full evidence sweep:
python3 scripts/gcp_evidence.py --db-path ~/.openclaw/grc/compliance.sqlite --all
To run specific checks:
python3 scripts/gcp_evidence.py --db-path ~/.openclaw/grc/compliance.sqlite --checks storage,firewall,iam
| Check | What It Verifies |
|---|---|
| storage | Uniform bucket-level access, public access prevention |
| firewall | No unrestricted ingress (0.0.0.0/0) to SSH/RDP/all |
| iam | Service account key rotation (90 days), SA admin privilege restriction |
| logging | Audit logging enabled (all services), log export sink exists |
| kms | KMS key rotation period <= 90 days |
| dns | DNSSEC enabled on public zones |
| bigquery | No public dataset access (allUsers/allAuthenticatedUsers) |
| compute | No default service account with cloud-platform scope |
| cloudsql | SSL enforcement, no public IP with 0.0.0.0/0 |
Each check produces evidence items stored with:
source: "gcp"type: "automated"control_id: Mapped to relevant SOC2/ISO/HIPAA controlsdescription: Human-readable finding summaryfile_content: JSON details of the check resultroles/viewerroles/iam.securityReviewerroles/cloudsql.viewerroles/logging.viewerroles/dns.readerroles/cloudkms.viewerAll checks use read-only access only.
When a user asks to set up GCP integration, guide them through these steps:
gcloud iam service-accounts create auditclaw-scanner --display-name="AuditClaw Scanner"
Grant these 6 read-only roles:
for role in roles/viewer roles/iam.securityReviewer roles/cloudsql.viewer roles/logging.viewer roles/dns.reader roles/cloudkms.viewer; do
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:auditclaw-scanner@PROJECT_ID.iam.gserviceaccount.com \
--role=$role
done
gcloud iam service-accounts keys create key.json --iam-account=auditclaw-scanner@PROJECT_ID.iam.gserviceaccount.com
Set environment variables:
Run: python3 {baseDir}/scripts/gcp_evidence.py --test-connection
The exact roles are documented in scripts/gcp-roles.json. Show with:
python3 {baseDir}/../auditclaw-grc/scripts/db_query.py --action show-policy --provider gcp