gcs-security-assessment
Assesses Google Cloud Storage bucket and project security configurations by gathering telemetry and correlating signals to detect toxic combinations of…
Identity proven by GitHub's verified organisation badge (flutter, google)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
- License
- Apache-2.0 (permissive)
- Pin
- 0dd8034pinned Oct 9, 2026
- Context cost
- about 1,500 tokenswhen the skill loads
- GitHub stars
- 215on googlecloudplatform/data-agent-kit-plugin
- Scripts
- 7 scripts
What it does
“Assesses the security posture of Google Cloud Storage (GCS) buckets and projects. Grounds every finding in gathered telemetry, evaluates buckets against Google security best practices (public access, IAM over-granting, CMEK, VPC Service Controls, audit logging), and correlates signals to flag toxic combinations of individually low-risk settings, with actionable remediation. Use whenever a user asks for a security scan, audit, review, vulnerability check, or compliance assessment (including SAIF) — or simply asks whether their buckets, project, or data are secure, exposed, public, or misconfigured, who can access their data, or wants storage hardened or locked down, e.g. before a launch. Don't use for diagnosing a specific access failure or 403, managing or configuring storage, investigating a live outage, or non-GCS resources (Compute Engine, GKE, etc.).”
Generated summary from the skill's own text
Assesses Google Cloud Storage bucket and project security configurations by gathering telemetry and correlating signals to detect toxic combinations of vulnerabilities. Evaluates buckets against Google security best practices including public access, IAM policies, encryption, VPC Service Controls, and audit logging, then provides actionable remediation steps grounded in actual observed settings.
When to use it
- User requests security scan, audit, or compliance assessment of GCS buckets
- Determining if buckets, projects, or data are exposed, public, or misconfigured
- Evaluating who can access data before product launch or deployment
- Checking for risky combinations of individually low-risk storage settings
When not to
- Diagnosing specific access failures or 403 errors
- Configuring or managing GCS storage directly
- Investigating active outages or incidents
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add googlecloudplatform/data-agent-kit-plugin --skill gcs-security-assessmentInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install googlecloudplatform/data-agent-kit-plugin gcs-security-assessment@0dd8034c50d6bce0290b99190cd44b06fcbec2c1Installs the commit we checked (0dd8034).
Copy by hand
Download the folder at 0dd8034 and put it in .claude/skills/gcs-security-assessment for Claude Code and in .agents/skills/gcs-security-assessment for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Claude Code plugin
/plugin install chrome-devtools-mcp@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Claude Code plugin
/plugin install alloydb-omni@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Claude Code plugin
/plugin install bigquery-data-analytics@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "gcs-security-assessment" by Google. Source, pinned to commit 0dd8034c50d6bce0290b99190cd44b06fcbec2c1: https://github.com/googlecloudplatform/data-agent-kit-plugin/tree/0dd8034c50d6bce0290b99190cd44b06fcbec2c1/skills/gcs-security-assessment 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/gcs-security-assessment/ for Claude Code and .agents/skills/gcs-security-assessment/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/google/gcs-security-assessment
SKILL.md at the pin
---
name: gcs-security-assessment
description: >-
Assesses the security posture of Google Cloud Storage (GCS) buckets and
projects. Grounds every finding in gathered telemetry, evaluates buckets
against Google security best practices (public access, IAM over-granting,
CMEK, VPC Service Controls, audit logging), and correlates signals to flag
toxic combinations of individually low-risk settings, with actionable
remediation. Use whenever a user asks for a security scan, audit, review,
vulnerability check, or compliance assessment (including SAIF) — or simply
asks whether their buckets, project, or data are secure, exposed, public, or
misconfigured, who can access their data, or wants storage hardened or
locked down, e.g. before a launch. Don't use for diagnosing a specific
access failure or 403, managing or configuring storage, investigating a
live outage, or non-GCS resources (Compute Engine, GKE, etc.).
metadata:
version: v3
publisher: google
tags:
- gcs
- security
- compliance
- saif
category: security
support_tier: primary
license: Apache-2.0
---
# Security Posture Assessment Skill
You are a Google Cloud Storage security assessment agent trained on Google's
[Secure AI Framework (SAIF)](https://saif.google/secure-ai-framework/saif-map).
Your job is to evaluate GCS bucket and project configurations, identify **toxic
combinations** of vulnerabilities, and provide actionable remediation.
> [!IMPORTANT]
>
> You are NOT a generic security chatbot. You MUST ground every finding in
> telemetry signals you have actually gathered. NEVER hallucinate findings or
> assume configurations you have not verified. If you cannot gather a signal,
> say so explicitly and skip that check.
> [!CAUTION]
>
> **CRITICAL: Never execute destructive commands (e.g., rm, rb, IAM policy
> changes) without first printing the exact command and explicitly asking the
> user for a Y/N confirmation.**
## Philosophy
Traditional security tools generate isolated alerts from static rules (e.g.,
"bucket is public"). You correlate multiple signals to detect **toxic
combinations** — scenarios where individually low-risk configurations combine to
create critical exposures. A public bucket storing marketing PDFs is very
different from a public bucket storing ML training data with no CMEK, no VPC-SC,
and no audit logging.
## Phase Summary Table
Phase | Inputs | Outputs | Reference
:-------------------------------- | :--------------------------------------- | :------------------------------------ | :--------
**1. Discover Scope & Telemetry** | User input (Project ID/Buckets/Datasets) | Scope confirmation, Telemetry signals | `references/phases/discover.md`
**2. Bucket Classification** | Telemetry signals | Bucket classifications | `references/phases/classification.md`
**3. Baseline Security Eval** | Telemetry signals, Classifications | Baseline failures | `references/phases/baseline.md`
**4. Toxic Combo Analysis** | Telemetry signals, Classifications | Toxic combination findings | `references/phases/toxic_analysis.md`
**5. Output** | Findings from all phases | Formatted assessment report | `references/phases/output.md`
## Workflow Execution
When invoked, the agent **MUST follow this exact sequence**:
1. **Start at Phase 1**: Discover scope and gather telemetry. Use the
referenced file for decisions. **CRITICAL: If multiple Storage Insights
datasets are discovered, you MUST STOP and ASK the user to select one. Do
NOT auto-select a dataset or proceed with an assumed one.** Do not assume
anything before reading the steps referenced in the phase itself.
2. **Do not skip phases**: You must complete Phase N before proceeding to Phase
N+1.
3. **Strict adherence**: Follow all steps defined in each phase. Do not
optimize or deviate.
4. **Gating & analysis scope**: Only a failed **required** preflight check
(`adc`) sets `ready_to_proceed` to `false` — when it does you **MUST STOP
IMMEDIATELY**, do NOT invoke any telemetry script, and report the fix.
Otherwise the preflight's `analysis_scope` field — NOT `ready_to_proceed` —
selects depth: `full` (run everything) or `project_only` (Storage Insights
unavailable — do NOT bail out; run a project-level assessment with ONLY
`evaluate_project_security_posture.py`, do NOT run the SI-backed
`fetch_bucket_telemetry.py` / `fetch_object_telemetry.py`, and recommend
SI). Phase 1 (`discover.md`) defines exactly how to branch.
## Error Handling
Problem | Cause | Fix
----------------------------------- | --------------------------------------------------------------------------- | ---
PermissionDenied on VPC-SC check | Caller lacks `accesscontextmanager.policies.list` | Inform user. Mark VPC-SC status as UNKNOWN and use that wording **consistently across every section of the report** — Section 2, Section 3, narrative summaries, key findings, fixes. Do NOT assume the perimeter is configured AND do NOT assume it is missing, lacking, or "not enforced" — neither inference is supported by an unavailable signal.
PermissionDenied on IAM Recommender | Caller lacks `recommender.iamPolicyRecommendations.list` | Fall back to manual IAM policy inspection. Flag over-broad roles like `roles/storage.admin` and `roles/storage.objectAdmin`.
Model Armor API not enabled | `modelarmor.googleapis.com` not in services list | This IS a finding (not an error). Flag it as "Model Armor not enabled" in your assessment.
Storage Insights API not enabled | `storageinsights.googleapis.com` not enabled on the project | **DO NOT STOP.** `analysis_scope` is `project_only`; run the project-level assessment and relay the recommended check's `fix`. See `discover.md`.
No SI dataset available | SI is enabled but no dataset config exists, or wrong dataset name supplied | **DO NOT STOP.** `analysis_scope` is `project_only`; run the project-level assessment and relay the `bigquery_dataset_access` check's `fix`. See `discover.md`.
BQ MCP Server returns empty results | No buckets in project or wrong project | Confirm project ID with user. If correct and empty, report "No buckets found."
Data Access audit logs check fails | Caller lacks `resourcemanager.projects.getIamPolicy` | Inform user. Note that audit log status is unknown.
Bucket has no tags or labels | No SDP scan, no customer tags | This is the "Unclassified" state. Treat as potentially sensitive. Recommend SDP.
Output too verbose | Reasoning sections are too long, or shared remediations repeated per bucket | Condense reasoning to 2-3 sentences. Move shared remediations to Cross-Cutting Recommendations. If output exceeds ~80 lines, you are being too verbose.
From googlecloudplatform/data-agent-kit-plugin at 0dd8034, shown as plain text under its license: Apache-2.0 (permissive). The license text is in skills/gcs-security-assessment/SKILL.md.
View SKILL.md on GitHub at 0dd8034Files
- SKILL.md7.3 KB · ef9c484bfb4b
- examples/
- sample_assessment.md7.1 KB · 028ee7cc4532
- references/
- baseline_security.md4.3 KB · c25f01acb758
- bucket_classification.md4.7 KB · 56b2124a377b
- phases/
- baseline.md810 B · 673112a279ba
- classification.md727 B · 9e4667085d73
- discover.md8.5 KB · edd26e4d6d56
- output.md12 KB · 9b75650cedc1
- toxic_analysis.md1.8 KB · eff0b18024ac
- saif_risk_factors.md3.7 KB · de396bb52a56
- telemetry_signals.md4.6 KB · 796cafcf2a2e
- toxic_combinations.md16 KB · f98f0c05b67d
- scripts/
- cloud_rest_helpers_nodeps.py21 KB · 89c97bc39871
- evaluate_project_security_posture.py18 KB · d9e2a58b919c
- fetch_bucket_telemetry.py7.3 KB · d6c8a309f53f
- fetch_object_telemetry.py5.9 KB · 8de89579037c
- list_datasets.py7.4 KB · ef58474c27c7
- preflight_permissions.py13 KB · 48828a934b54
- validation.py3.0 KB · 4aef54570455
19 files, 148 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 0dd8034More from Google
skill-creator
This skill guides agents through creating new skills that extend Gemini CLI with specialized knowledge, workflows, and tool integrations.
Contains scripts
Gemini CLI · about 5K tokens · pinned 7 days ago
chrome-devtools-cli
This skill enables agents to automate browser interactions and inspect web pages using Chrome DevTools via command-line interface.
Claude Code, Codex, Cursor +4 · about 2.9K tokens · pinned 7 days ago
cloud-run-basics
Deploys and manages Google Cloud Run services, jobs, and worker pools for running containerized applications or source code.
Claude Code, Codex, Cursor +4 · about 3.9K tokens · pinned 7 days ago
retail-virtual-tryon
Creates virtual try-on agents on Google Cloud using Gemini image models and Veo video generation, supporting static image try-ons and catwalk animations.
Contains scripts
Claude Code, Codex, Cursor +3 · about 3.3K tokens · pinned 7 days ago
site-md
This skill analyzes project briefs and generates a .stitch/SITE.md constitution file that documents the project's identity, visual direction, architecture…
Claude Code, Codex, Cursor +4 · about 730 tokens · pinned 7 days ago
stitch::code-to-design
This skill converts existing frontend code (React, Vue, Angular, etc.) into a Stitch Design by extracting HTML, analyzing design systems, and uploading both…
Claude Code, Codex, Cursor +4 · about 760 tokens · pinned 7 days ago
Related in Security
claude-security
Scans your repository for security issues using Claude, examines code changes or commits for vulnerabilities, and generates patch files to fix findings.
by AnthropicOfficial publisher
Claude Code · about 1K tokens · pinned 7 days ago
sensitive-logging-audit
The skill helps audit and fix sensitive data leaks in Python SDK logging, exceptions, and telemetry by collecting candidate sinks, manually tracing values…
by OpenAIOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 970 tokens · pinned 7 days ago
security-audit
This skill guides security audits of codebases, APIs, and services by finding vulnerabilities that cross real trust boundaries.
by CloudflareOfficial publisher
Contains scripts
Claude Code · about 5.4K tokens · pinned 7 days ago
assess-patch-risk
This skill analyzes patch artifacts to assess their program impact, regression risk, and suitability for automated merging.
by OpenAIOfficial publisher
Codex · about 2.3K tokens · pinned 7 days ago
attack-path-analysis
This skill analyzes security findings to build explicit attack paths from source to sink, calibrates severity, and decides whether each finding is reportable.
by OpenAIOfficial publisher
Codex · about 2.1K tokens · pinned 7 days ago
deep-security-scan
Performs exhaustive, multi-pass security analysis across a repository or scoped directory by running repeated independent security scans and aggregating…
by OpenAIOfficial publisher
Codex · about 3.4K tokens · pinned 7 days ago
Open roles at Google
No open roles at Google on the Agent Native jobs board right now.
Browse the jobs board