Skip to main content

Cloud Storage (GCS)

SmartSRE provides lifecycle management and security hardening for Google Cloud Storage.

What SmartSRE Scans

CategoryChecks
SecurityPublic access, IAM bindings, uniform bucket access
LifecycleMissing policies, cold storage opportunities
ComplianceRetention policies, versioning configuration
CostStorage class optimization, unused buckets

Findings

Critical

Issue TypeSeverityDescription
public_bucketCriticalBucket accessible to allUsers or allAuthenticatedUsers
no_public_access_preventionHighPublic Access Prevention not enabled

Medium-Priority

Issue TypeSeverityDescription
no_lifecycle_policyMediumNo automatic object cleanup configured
cold_bucketLowNo access in 180+ days
no_versioningLowObject versioning not enabled

Available Fixes

Security

OperationDescriptionImpact
enable_public_access_preventionEnable PAP on bucketMedium
remove_public_bindingRemove allUsers IAM bindingHigh
enable_uniform_bucket_accessEnable uniform bucket-level accessMedium

Lifecycle

OperationDescriptionImpact
set_lifecycle_ruleAdd/update lifecycle ruleLow
set_archive_transitionTransition to Archive classLow
set_coldline_transitionTransition to Coldline classLow

Compliance

OperationDescriptionImpact
enable_versioningEnable object versioningLow
set_retention_policyConfigure retention periodMedium

Required Permissions

For Scanning

roles/storage.objectViewer (bucket level)

For Remediation

roles/storage.admin

Example ChangeSet

{
"service": "gcs",
"intent": "Enable lifecycle management for cost optimization",
"steps": [
{
"op": "set_lifecycle_rule",
"resource_ref": {
"project_id": "my-project",
"bucket_name": "logs-archive"
},
"params": {
"action": "SetStorageClass",
"storage_class": "COLDLINE",
"age_days": 90
},
"estimated_cost_usd": -150.00,
"impact_score": 10
},
{
"op": "set_lifecycle_rule",
"resource_ref": {
"project_id": "my-project",
"bucket_name": "logs-archive"
},
"params": {
"action": "Delete",
"age_days": 365
},
"estimated_cost_usd": -200.00,
"impact_score": 25
}
]
}

Configuration Options

SettingDefaultDescription
cold_bucket_days180Days without access to flag as cold
default_archive_age90Default age for archive transition
default_delete_age365Default age for deletion rule

Rollback Capability

OperationRollback Support
set_lifecycle_rule✅ Full (remove/restore rule)
enable_public_access_prevention✅ Full
delete_objects❌ None (destructive)
remove_public_binding✅ Full (restore binding)

Best Practices

  1. Enable PAP first — Prevents accidental public exposure
  2. Use lifecycle rules — Automatic cost optimization
  3. Scope by bucket naming — Target specific buckets (e.g., logs-*)
  4. Test in non-production — Verify lifecycle behavior before production