Skip to main content
Cloud / AWS / Products / Amazon S3 Annotations: Queryable Metadata on Objects

Amazon S3 Annotations: Queryable Metadata on Objects

Amazon S3 Annotations attach named data payloads to S3 objects — up to 1 MiB each, up to 1,000 per object version, queryable through S3 Metadata tables.

Storage
Pricing Model Rates per provider; per the documentation S3 Metadata is billed through the Amazon S3 pricing page
Availability Per the documentation available in all commercial AWS Regions and the China Regions (Beijing and Ningxia); not available in the Middle East (UAE) and Middle East (Bahrain) Regions
Data Sovereignty EU regions available
Reliability SLA per provider (see official SLA page) SLA

What are Amazon S3 Annotations?

Amazon S3 Annotations are named data payloads that you attach to an S3 object after upload. Each annotation holds between 1 byte and 1 MiB of UTF-8 text — for example AI-generated labels, document context, processing results, or compliance records. You create, retrieve, list, and delete annotations without modifying the object itself.

Annotations complement the existing metadata types in Amazon S3: system-defined metadata, object tags, and user-defined metadata. With an annotation table in the S3 Metadata configuration, their content becomes queryable at scale.

Core Features

  • Dedicated API operations: PutObjectAnnotation, GetObjectAnnotation, ListObjectAnnotations, and DeleteObjectAnnotation
  • Large payloads: Up to 1 MiB per annotation and up to 1,000 annotations per object version, up to 1 GiB per object in total
  • Structured content: Any UTF-8 text such as JSON, XML, or YAML; binary data is stored Base64 encoded
  • Queryable through S3 Metadata: Optional annotation table in managed Apache Iceberg tables, queryable with Amazon Athena among others
  • Copying: CopyObject copies annotations by default; the x-amz-annotation-directive header controls the behaviour
  • Encryption: Annotations inherit the parent object’s encryption (SSE-S3, SSE-KMS, or DSSE-KMS); SSE-C is not supported
  • Checksums: Supported algorithms include CRC32, CRC32C, CRC64NVME, SHA1, SHA256, and SHA512; without a specified algorithm Amazon S3 uses CRC-64/NVME
  • Event notifications: s3:ObjectAnnotation:Put and s3:ObjectAnnotation:Delete
  • Replication: With S3 Replication configured, annotations replicate automatically and independently

Typical Use Cases

AI and ML pipelines: Store inference results, embeddings, or moderation labels directly with the source object instead of in a separate database.

Document processing: Keep classification results and extracted context with the document and query them later.

Traceability: Document data lineage, audit trails, and ETL status alongside the source object.

Compliance: Attach labels such as PII flags or retention policies to the object.

Benefits

  • Context stays with the object and travels with copies and replication
  • Considerably larger and more structured payloads than object tags
  • Changes without re-uploading the object and without changing its ETag
  • Analyzable with standard tools on Apache Iceberg tables
  • Encryption matching the parent object
  • Usable for archived objects without restoring them first

Integration with innFactory

As an AWS Reseller, innFactory supports you with Amazon S3 Annotations: designing an annotation schema for your AI and analytics workloads, backfilling existing object estates using S3 Batch Operations with AWS Lambda, enabling and querying annotation tables in S3 Metadata, and aligning encryption, replication, and permissions.

Typical Use Cases

Store AI inference results with the object
Classification and moderation labels
Data lineage and audit trails
Compliance labels such as PII flags

Technical Specifications

API PutObjectAnnotation, GetObjectAnnotation, ListObjectAnnotations, and DeleteObjectAnnotation; CopyObject copies annotations by default
Count Up to 1,000 annotations per object version, up to 1 GiB of annotation storage per object
Encryption Annotations are encrypted using the parent object's encryption configuration (SSE-S3, SSE-KMS, DSSE-KMS); SSE-C is not supported
Events Event notifications s3:ObjectAnnotation:Put and s3:ObjectAnnotation:Delete
Format Any UTF-8 text such as JSON, XML, or YAML; binary data must be Base64 encoded
Querying Optional annotation table in the S3 Metadata configuration; data is held in managed Apache Iceberg tables and can be queried with Amazon Athena and other analytics services
Size Each annotation is between 1 byte and 1 MiB; the annotation name can be up to 512 bytes

Frequently Asked Questions

What are Amazon S3 Annotations?

Per the documentation, annotations are named data payloads that you attach to an Amazon S3 object after it has been uploaded. Each annotation holds between 1 byte and 1 MiB of UTF-8 text, such as AI-generated output, classification results, or processing records. You can create, retrieve, list, and delete annotations without modifying the object itself.

How many annotations can an object have?

Per the documentation you can associate up to 1,000 annotations with an object version, and names must be unique per object version. Total annotation storage per object is therefore up to 1 GiB (1,000 annotations at 1 MiB each).

How do annotations differ from object tags?

Per the documentation, object tags allow 10 entries per object version with 128 characters for the key and 256 for the value, while annotations allow 1,000 entries per object version with up to 512 bytes for the name and 1 MiB for the payload. Annotations hold any UTF-8 text such as JSON or XML, but cannot be set during upload — only afterwards through PutObjectAnnotation. Choose tags when you need IAM policy integration, S3 Lifecycle rule filtering, or cost allocation reporting.

How can annotations be queried?

You enable an annotation table in your S3 Metadata configuration. Per the documentation, it tracks the latest annotations on the objects in your bucket and makes annotation content directly queryable, with each row representing one annotation on a specific object version. The tables are managed Apache Iceberg tables and can be queried with Amazon Athena and other analytics services.

How do annotations behave with versioning and replication?

Per the documentation, annotations are attached to a specific object version and are not copied when a new version is created. Deleting an annotation is permanent, even in a versioned bucket. If S3 Replication is configured, Amazon S3 replicates annotations automatically, with each annotation replicating independently.

Which storage classes support annotations?

Per the documentation you can call the annotation API operations on objects in any storage class, including S3 Glacier and S3 Glacier Deep Archive, without restoring the object first. Annotations are not supported by S3 Inventory Reports, S3 Storage Lens, Amazon S3 File Gateway, Amazon FSx, S3 on Outposts, and S3 Express One Zone (directory buckets), among others.

Note: All product information on this page has been compiled with care, but is provided without guarantee and may be outdated or incomplete. Cloud services evolve rapidly — features, pricing, SLAs, and availability change frequently. Authoritative and up-to-date information can only be found on the official product page of AWS (official documentation). This page does not represent an offer by AWS.

AWS Cloud Expertise

innFactory is an AWS Reseller with certified cloud architects. We provide consulting, implementation, and managed services for AWS.

Ready to start with Amazon S3 Annotations: Queryable Metadata on Objects?

Our certified AWS experts help you with architecture, integration, and optimization.

Schedule Consultation