S3 Storage Lens: Cross-Account Visibility and Cost Insight Across Your Entire Organization

Ned
Ned Cloud Engineer
· Updated · 3 min read
S3 Storage Lens: Cross-Account Visibility and Cost Insight Across Your Entire Organization

The Problem

You are a solutions architect at a company with fifty AWS accounts in an Organization and thousands of S3 buckets. Some buckets have not been touched in months. Others are silently growing at hundreds of GB per day.

You need to identify unused or rarely accessed buckets to drive storage cost optimization, with the least operational overhead.

The Solution

Use S3 Storage Lens with the advanced tier. It aggregates usage and activity metrics across every account in your Organization into a single, purpose-built dashboard. No pipelines to build, no queries to write, no CloudTrail parsing.

How It Works

What Storage Lens Provides

Storage Lens is S3’s built-in analytics service. It aggregates metrics daily and exposes them through:

  • An interactive dashboard in the S3 console
  • CloudWatch metrics you can alarm on
  • Daily CSV or Parquet exports to an S3 bucket for BI tools

It answers questions like:

  • Which buckets grew the most this month?
  • Which prefixes have not been read in 90 days?
  • What percentage of my data is in cold storage classes?
  • Where are my incomplete multipart uploads costing me money?

Free Tier vs Advanced Tier

Feature Free Advanced
Metrics count ~14 usage metrics ~28+ metrics (usage + activity)
Retention 14 days 15 months
Prefix-level aggregation No Yes
Activity metrics (GET/PUT counts, retrieval bytes) No Yes
CloudWatch publishing No Yes
Cost Free Per-object-monitored fee

Activity metrics answer “what is being accessed.” They live only in the advanced tier. Free-tier usage metrics tell you what you have; advanced tier tells you what is being used.

Creating an Organization-Wide Dashboard

Enable trusted access from the management account first:

1
2
aws organizations enable-aws-service-access \
  --service-principal storage-lens.s3.amazonaws.com

Then create the dashboard:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
aws s3control put-storage-lens-configuration \
  --account-id 111122223333 \
  --config-id org-wide-lens \
  --storage-lens-configuration '{
    "Id": "org-wide-lens",
    "AccountLevel": {
      "ActivityMetrics": { "IsEnabled": true },
      "BucketLevel": {
        "ActivityMetrics": { "IsEnabled": true },
        "PrefixLevel": {
          "StorageMetrics": {
            "IsEnabled": true,
            "SelectionCriteria": {
              "Delimiter": "/",
              "MaxDepth": 5,
              "MinStorageBytesPercentage": 1.0
            }
          }
        }
      }
    },
    "DataExport": {
      "S3BucketDestination": {
        "Format": "CSV",
        "OutputSchemaVersion": "V_1",
        "AccountId": "111122223333",
        "Arn": "arn:aws:s3:::storage-lens-export",
        "Prefix": "org-wide-lens/"
      }
    },
    "IsEnabled": true,
    "AwsOrg": {
      "Arn": "arn:aws:organizations::111122223333:organization/o-abc123"
    }
  }'

Within 48 hours, the dashboard populates with metrics from every account, every bucket.

Identifying Cold Buckets

Sort the dashboard by “GetRequests” over 90 days. Buckets at zero are candidates for:

  • Moving to S3 Glacier Deep Archive
  • Applying an aggressive lifecycle policy
  • Deleting outright if the data is no longer needed

Combine with the “IncompleteMultipartUploadStorageBytes” metric to find abandoned uploads costing you money.

Why Not the Alternatives?

S3 console dashboard: Lists buckets and shows basic properties, but has no cross-account aggregation and no activity metrics.

CloudWatch BucketSizeBytes + Athena: CloudWatch metrics show size only, not access patterns, and you cannot query them with Athena.

CloudTrail S3 data events + CloudWatch Logs Insights: Technically possible, but painful. Data events are expensive, log volume is large, and you have to write your own aggregation. Storage Lens does this out of the box.

S3 Inventory reports: Great for per-object listings and encryption status, but not for activity trending or cross-account rollups.

Key Takeaways

  • S3 Storage Lens is the purpose-built tool for organization-wide S3 analytics
  • Advanced tier unlocks activity metrics, prefix-level aggregation, and 15-month retention
  • Enable trusted access in Organizations first, then create the dashboard from the management account
  • Use it to find cold buckets, abandoned multipart uploads, and unused prefixes for cost optimization
  • Zero pipelines, zero queries — the dashboard is ready inside 48 hours
Rating:
Share
Previous S3 Byte-Range Fetches: Parallel Downloads and Partial Reads Without Pulling the Whole Object Next S3 Access Points: Named Endpoints for Isolated, Per-Application Bucket Access