Study guide
12.2 Managing and Securing Cloud Storage Objects & Lifecycle Policies
Google Cloud Associate Cloud Engineer ACE
Track your progress as you read
Finished sections get a check mark.
1 Chapter 1: Introduction & Exam Overview
1.1 About the GCP Associate Cloud Engineer Exam 1.2 How to Use This Study Guide & Build a Study Plan
2 Chapter 2: Resource Hierarchy, IAM Basics & Cloud Identity
2.1 The GCP Resource Hierarchy: Organizations, Folders & Projects 2.2 Organization Policies & Granting IAM Roles 2.3 Cloud Identity: Managing Users and Groups
3 Chapter 3: APIs, Quotas & Billing Configuration
3.1 Enabling APIs and Provisioning Cloud Operations Suite 3.2 Assessing and Requesting Quota Increases 3.3 Billing Accounts, Project Linking & Billing Exports 3.4 Billing Budgets and Alerts
4 Chapter 4: Planning Compute & Storage Resources
4.1 Choosing the Right Compute Option: GCE vs. GKE vs. Cloud Run vs. Cloud Functions 4.2 Spot VMs, Custom Machine Types & Cost-Optimized Compute Planning 4.3 Choosing a Data Storage Product: Cloud SQL, BigQuery, Firestore, Spanner & Bigtable 4.4 Cloud Storage Classes & Persistent Disk Types
5 Chapter 5: Planning Network Resources
5.1 Load Balancing Options and Use Cases 5.2 Regional Resource Placement & High Availability Planning 5.3 Network Service Tiers: Premium vs. Standard
6 Chapter 6: Deploying Compute Engine Workloads
6.1 Launching Compute Engine Instances: Disks, SSH Keys & Availability Policies 6.2 Managed Instance Groups, Instance Templates & Autoscaling 6.3 OS Login and VM Manager for Fleet Configuration
7 Chapter 7: Deploying Google Kubernetes Engine Workloads
7.1 Installing and Configuring kubectl 7.2 Deploying GKE Clusters: Autopilot, Regional, Private & GKE Enterprise 7.3 Deploying Containerized Applications to GKE
8 Chapter 8: Deploying Serverless & Event-Driven Applications
8.1 Deploying Applications to Cloud Run and Cloud Functions 8.2 Event-Driven Architectures: Pub/Sub, Cloud Storage Triggers & Eventarc
9 Chapter 9: Deploying Data Solutions
9.1 Deploying Data Products: Cloud SQL, Firestore, Spanner, BigQuery & AlloyDB 9.2 Deploying Pub/Sub, Dataflow & Loading Data into Google Cloud
10 Chapter 10: Deploying Networking Resources & Infrastructure as Code
10.1 Creating VPCs, Subnets & Shared VPC 10.2 Firewall Rules, Cloud VPN & VPC Network Peering 10.3 Infrastructure as Code: Terraform, Config Connector, Cloud Foundation Toolkit & Helm
11 Chapter 11: Managing Compute Engine & GKE in Production
11.1 Connecting to and Managing Running Compute Engine Instances 11.2 Working with Snapshots and Custom Images 11.3 Managing GKE Clusters: Node Pools, Workloads & Artifact Registry Access 11.4 Horizontal and Vertical Pod Autoscaling in GKE
12 Chapter 12: Managing Cloud Run, Storage & Database Operations
12.1 Managing Cloud Run Revisions, Traffic Splitting & Scaling 12.2 Managing and Securing Cloud Storage Objects & Lifecycle Policies 12.3 Querying, Estimating Costs, Backup & Job Monitoring for Databases (Cloud SQL, BigQuery, Spanner, Dataflow)
13 Chapter 13: Networking Operations, Monitoring & Logging
13.1 Networking Operations: Subnets, Static IPs, Cloud DNS & Cloud NAT 13.2 Cloud Monitoring: Alerts, Custom Metrics & Dashboards 13.3 Cloud Logging: Buckets, Log Analytics, Routers & Filtering 13.4 Diagnostics, Ops Agent, Managed Service for Prometheus & Audit Logs
14 Chapter 14: IAM Policies & Role Types
14.1 IAM Policies: Structure, Bindings & Policy Hierarchy 14.2 IAM Role Types: Basic, Predefined & Custom Roles
15 Chapter 15: Service Accounts & Security Configuration
15.1 Creating Service Accounts & Assigning Least-Privilege Permissions 15.2 Assigning Service Accounts to Resources & Managing SA IAM Policies 15.3 Service Account Impersonation & Short-Lived Credentials
16 Chapter 16: Exam Readiness — Scenarios & Test-Day Strategy
16.1 Common ACE Exam Scenarios & Decision Frameworks 16.2 Test-Day Logistics, Time Management & Final Review Checklist
12.2 Managing and Securing Cloud Storage Objects & Lifecycle Policies
Key Takeaways Explain This Topic AI
Uniform bucket-level access (IAM-only) is the recommended default; enabling it disables legacy per-object ACLs entirely for that bucket.
Signed URLs grant time-boxed access to a single object for identities outside Google Cloud, capped at 7 days (604,800 seconds) under V4 signing.
A lifecycle rule pairs AND-combined conditions (age, matchesStorageClass, numNewerVersions, and others) with one action: Delete, SetStorageClass, or AbortIncompleteMultipartUpload.
Nearline/Coldline/Archive carry 30/90/365-day minimum storage durations; moving or deleting an object early still bills the remainder.
Retention policies (Bucket Lock) and object holds prevent early deletion; lifecycle rules cause eventual deletion — compliance setups typically combine both.
Last updated: July 2026
Why This Matters for the ACE Exam
Domain 4 of the official exam guide lists two Cloud Storage bullets under "Ensuring successful operation of a cloud solution": managing and securing objects, and setting object lifecycle management policies. Chapter 4 covered choosing a storage class; this section covers what happens after data lands in a bucket — who is allowed to touch it, how to share a single file without opening the whole bucket, and how to make aging data cheaper automatically instead of manually re-uploading it every few months.
Access Control: IAM, ACLs, and Signed URLs
Cloud Storage supports two overlapping access-control systems, plus a bridge mechanism for external sharing:
Uniform bucket-level access — the recommended default. Once enabled on a bucket, only IAM policies grant access; legacy per-object ACLs stop applying entirely, and any attempt to set or read an ACL on that bucket or its objects fails.
Fine-grained access — the older model, where per-object access control lists (ACLs, using roles like READER and OWNER ) work alongside IAM. This is only available when uniform bucket-level access is not enabled.
Signed URLs — a way to grant time-boxed access to one specific object to a party who has no Google Cloud identity at all (a customer downloading an invoice, for example). A signed URL is neither an IAM grant nor an ACL; it is a cryptographically signed link with a built-in expiration.
- IAM role Permission level
- roles/storage.admin Full control of buckets and objects
- roles/storage.objectAdmin Full control of objects only (create, read, delete, list)
- roles/storage.objectCreator Upload-only — cannot read or delete existing objects
- roles/storage.objectViewer Read-only access to objects
For signed URLs , the current V4 signing scheme allows a maximum expiration of 604,800 seconds — 7 days — because the signing mechanism itself is only valid for that long. In practice, best practice is to use a far shorter window than the maximum: minutes for a one-time upload link, an hour or less for a download link, and never the full 7 days for anything sensitive.
Object Lifecycle Management
A lifecycle configuration is a set of independent rules attached to a bucket. Each rule pairs one or more conditions (combined with AND logic — every condition in the rule must match) with exactly one action . Multiple rules on the same bucket are evaluated independently (effectively OR'd), so a bucket commonly has several rules working together to build a full aging pipeline.
- Condition Meaning
- age Object has existed for N days since creation
- createdBefore Object was created before a specific date
- customTimeBefore / daysSinceCustomTime Based on a user-set Custom-Time metadata value
- isLive True for the current (live) version, false for noncurrent versions
- matchesStorageClass Object is currently in a specified storage class
- matchesPrefix / matchesSuffix Object name matches a prefix or suffix pattern
- noncurrentTimeBefore / daysSinceNoncurrentTime Based on when a versioned object became noncurrent
- numNewerVersions At least N newer versions exist (requires object versioning)
- Action Effect
- Delete Removes the object (subject to any active retention policy or hold)
- SetStorageClass Transitions the object to a cheaper (or different) storage class
AbortIncompleteMultipartUpload Cancels stalled uploads; only usable with age , matchesPrefix , or matchesSuffix
Two operational facts matter for scenario questions: Cloud Storage evaluates rules regularly rather than instantly, so a lifecycle configuration change can take up to 24 hours to take effect , and even once effective, the action itself runs asynchronously — there can be a lag between the moment an object meets a condition and the moment the action fires.
Storage Class Minimums and Cost
Each non-Standard class carries a minimum storage duration ; deleting or transitioning an object out early still bills for the remaining minimum period as an early-deletion charge.
- Class Minimum storage duration
- Standard None
- Nearline 30 days
- Coldline 90 days
- Archive 365 days
- A typical exam-style lifecycle policy tiers objects down automatically as they age: {
- "rule": [
- { "action": {"type": "SetStorageClass", "storageClass": "NEARLINE"},
- "condition": {"age": 30, "matchesStorageClass": ["STANDARD"]} },
- { "action": {"type": "SetStorageClass", "storageClass": "COLDLINE"},
- "condition": {"age": 90, "matchesStorageClass": ["NEARLINE"]} },
- { "action": {"type": "SetStorageClass", "storageClass": "ARCHIVE"},
- "condition": {"age": 365, "matchesStorageClass": ["COLDLINE"]} },
- { "action": {"type": "Delete"},
- "condition": {"age": 2555} }
- ]
- }
Here the matchesStorageClass condition is essential — without it, an object already in Archive would keep re-matching the age: 30 rule and be pushed back down to Nearline.
Retention Policies and Holds: Not the Same as Lifecycle
A lifecycle policy eventually deletes data; a retention policy (Bucket Lock) does the opposite — it prevents deletion or overwriting of any object in the bucket until a configured retention period elapses, even by a project owner. Object holds (temporary or event-based) block deletion of a specific object regardless of any lifecycle rule, until the hold is explicitly released. Compliance scenarios often combine both: a retention policy guarantees data isn't deleted too early , while a lifecycle rule guarantees it eventually is deleted once the requirement expires.
Common Traps
Enabling uniform bucket-level access and then trying to run an ACL command against that bucket — it fails, because ACLs are disabled entirely, not merged with IAM.
Assuming a lifecycle action fires the instant a condition is met — configuration changes take up to 24 hours to activate, and actions run asynchronously afterward.
Forgetting that versioning-related conditions ( numNewerVersions , isLive , noncurrentTimeBefore ) only do anything on a bucket with object versioning enabled.
Treating a signed URL as equivalent to an IAM grant — it is a separate, time-limited mechanism capped at 7 days for external, identity-less sharing.
Key Takeaways
Uniform bucket-level access (IAM-only) is the recommended default; enabling it disables legacy ACLs entirely for that bucket.
Signed URLs grant time-boxed access to a single object for non-Google-Cloud identities and cap out at 7 days under V4 signing.
A lifecycle rule = conditions (AND) + one action ( Delete , SetStorageClass , or AbortIncompleteMultipartUpload ); rules on a bucket act independently.
Nearline/Coldline/Archive carry 30/90/365-day minimum storage durations; deleting early still bills the remainder.
Retention policies and holds prevent early deletion; lifecycle rules cause eventual deletion — compliance setups typically use both together.