Requester Pays — requesters pay for egress and operations (useful for public datasets)
CMEK — Customer-Managed Encryption Keys via Cloud KMS (regulatory requirement)
VPC Service Controls — restrict GCS access to within a VPC perimeter
Object change notifications — Pub/Sub notifications on object create/delete/update
Checklist
Uniform bucket-level access enabled?
Lifecycle rules set to transition cold data to cheaper classes?
Object versioning enabled for critical buckets?
Pub/Sub notifications configured for event-driven pipelines?
Signed URLs used for temporary access (not service account keys shared)?
CMEK applied if regulatory requirement exists?
Output Format
🔴 Critical — fine-grained ACLs on new bucket (security risk), no versioning on critical data
🟡 Warning — no lifecycle rules (cost accumulates), public bucket without intention
🟢 Suggestion — nearline/coldline transition for infrequently accessed data
Exam Tips
Signed URLs = temporary access without GCP account (not service account keys!)
Nearline/Coldline/Archive have minimum storage durations — deleting early still charges
SetStorageClass lifecycle → use for cost optimization; Delete → use for cleanup
Storage Transfer Service = move data FROM S3/Azure/on-prem TO GCS
Requester Pays = data owner doesn't pay egress; useful for public scientific datasets
CMEK ≠ Google-managed encryption; CMEK = customer controls the key lifecycle in Cloud KMS
1---2name: cloud-storage3description: Cloud Storage4---56# Cloud Storage78## When to Use9- Designing data lake or file storage on GCP10- Setting up lifecycle management to control costs11- Configuring access control for sensitive data12- Preparing for GCP Professional Data Engineer exam1314## Core Jobs1516### 1. Storage Class Selection17| Class | Use case | Min storage | Retrieval cost |18|-------|---------|-------------|----------------|19| **Standard** | Frequently accessed (hot data) | None | None |20| **Nearline** | Accessed < once/month | 30 days | Yes |21| **Coldline** | Accessed < once/quarter | 90 days | Yes (higher) |22| **Archive** | Accessed < once/year | 365 days | Yes (highest) |2324### 2. Lifecycle Rules25- `SetStorageClass` — move to cheaper class after N days26- `Delete` — remove objects after N days or after N versions27- Typical pattern: Standard → Nearline (30d) → Coldline (90d) → Archive (365d) → Delete (730d)28- Rules apply at bucket level; objects evaluated daily2930### 3. Access Control31- **Uniform bucket-level access** — all access via IAM only (recommended, disables ACLs)32- **Fine-grained** — legacy; allows per-object ACLs (avoid for new buckets)33- Always use **uniform bucket-level access** for new buckets34- **Signed URLs** — temporary access (15 min to 7 days) without GCP credentials35- **Signed Policy Documents** — control what can be uploaded via HTML forms3637### 4. Object Versioning38- Enable to protect against accidental deletes/overwrites39- Each overwrite creates a new version; previous becomes noncurrent40- Use lifecycle rule to delete noncurrent versions after N days (control cost)4142### 5. Retention Policies43- **Retention policy** — objects cannot be deleted or replaced until retention period expires44- **Object locks** — WORM (write once, read many) compliance45- Use for regulatory compliance, audit logs4647### 6. Data Transfer48| Tool | Best for |49|------|---------|50| `gsutil` / gcloud CLI | Ad-hoc transfers, scripting |51| Storage Transfer Service | Large-scale from S3/Azure/HTTP/on-prem |52| Transfer Appliance | Petabyte-scale offline transfer |53| BigQuery Data Transfer Service | SaaS source → BigQuery (not GCS) |5455## Key Concepts56- **Requester Pays** — requesters pay for egress and operations (useful for public datasets)57- **CMEK** — Customer-Managed Encryption Keys via Cloud KMS (regulatory requirement)58- **VPC Service Controls** — restrict GCS access to within a VPC perimeter59- **Object change notifications** — Pub/Sub notifications on object create/delete/update6061## Checklist62- [ ] Uniform bucket-level access enabled?63- [ ] Lifecycle rules set to transition cold data to cheaper classes?64- [ ] Object versioning enabled for critical buckets?65- [ ] Pub/Sub notifications configured for event-driven pipelines?66- [ ] Signed URLs used for temporary access (not service account keys shared)?67- [ ] CMEK applied if regulatory requirement exists?6869## Output Format70- 🔴 **Critical** — fine-grained ACLs on new bucket (security risk), no versioning on critical data71- 🟡 **Warning** — no lifecycle rules (cost accumulates), public bucket without intention72- 🟢 **Suggestion** — nearline/coldline transition for infrequently accessed data7374## Exam Tips75- **Signed URLs** = temporary access without GCP account (not service account keys!)76- Nearline/Coldline/Archive have minimum storage durations — deleting early still charges77- `SetStorageClass` lifecycle → use for cost optimization; `Delete` → use for cleanup78- Storage Transfer Service = move data FROM S3/Azure/on-prem TO GCS79- Requester Pays = data owner doesn't pay egress; useful for public scientific datasets80- CMEK ≠ Google-managed encryption; CMEK = customer controls the key lifecycle in Cloud KMS
Run npx skillmds@latest add kienbui1995/cloud-storage in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Cloud Storage It is listed under DevOps & Infra on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
kienbui1995 (@kienbui1995) published this skill. Their other Agent Skills are listed on their SkillMD profile.