Build S3 inventory configurations with daily/weekly schedules, Parquet/CSV/ORC formats, and optional metadata fields.
Build S3 inventory configurations with daily/weekly schedules, Parquet/CSV/ORC formats, and optional metadata fields.
Required Fields
IdIsEnabledIncludedObjectVersionsSchedule.FrequencyDestination.S3BucketDestinationOutput will appear here...The builder validates that Id, IsEnabled, IncludedObjectVersions, Schedule.Frequency, and Destination.S3BucketDestination all resolve before accepting the JSON as a valid PutBucketInventoryConfiguration request, the fields S3 needs to schedule and route the inventory report; it can't verify the destination bucket's policy actually grants S3 permission to write inventory reports there, that's a separate bucket policy requirement checked only when the first report attempts delivery.
Build an S3 Inventory configuration that generates a periodic (Daily or Weekly) manifest listing every object in a bucket (or a filtered subset) with selected OptionalFields like size, storage class, and encryption status, exported as CSV, ORC, or Parquet. Inventory reports are inherently a day-or-more-stale snapshot, not a real-time listing, generated on the configured schedule and typically delivered within about 48 hours for the first report, so it's the right tool for bulk analytics and cost/compliance auditing over millions of objects (where a live ListObjectsV2 API scan would be slow and expensive), not for anything needing current-moment object state.
Default to Parquet format for any inventory report you intend to actually query via Athena regularly, the query-cost difference versus CSV compounds significantly over repeated queries against a large bucket's inventory.
The 48-hour delay for the first report catches people off guard during an urgent audit, don't configure inventory the same day you need the report, plan for that initial lag.
OptionalFields adds real size to the report and, in some cases, query cost, include only the fields your actual audit or analytics use case needs rather than checking every available option by default.
It reflects the bucket's state as of when the report was generated on its configured schedule (Daily or Weekly), not live, real-time state. The first report typically takes up to 48 hours to appear after configuring inventory, and subsequent reports follow the configured cadence, for anything needing current-moment accuracy, use the S3 API directly (ListObjectsV2 or HeadObject) rather than relying on an inventory report.
It matters significantly for query cost and speed if you're analyzing the inventory via Athena or similar, Parquet's columnar, compressed format means a query scanning only a few fields (like just Size and StorageClass) reads far less data than scanning full CSV rows, directly reducing Athena's per-TB-scanned cost for any inventory analysis done regularly.
Inventory's Filter primarily supports prefix-based scoping, it's not as flexible as S3 Lifecycle or replication filters, which can combine prefix and tag conditions. If you need tag-based inventory scoping specifically, you'd typically generate a broader prefix-scoped or full-bucket inventory and then filter the resulting report data (via Athena query) rather than filtering at the inventory configuration level itself.
Was this tool helpful?
Disclaimer: This tool runs entirely in your browser. No data is sent to our servers. Always verify outputs before using them in production. AWS, Azure, and GCP are trademarks of their respective owners.