AWS S3 Data Bucket
An AWS S3 Data Bucket is a data storage container supported by AWS S3 service that can contain S3 objects.
- Context:
- It can (typically) have an S3 Bucket Name that is globally unique across the entire S3 Service.
- It can (typically) be associated with an S3 Bucket ID that serves as an internal identifier within AWS systems.
- It can (typically) have an S3 Bucket Owner, which is the AWS account that created the bucket and has ultimate control over it.
- It can be accessed by an SDK Call, such as through the AWS SDK for Java, AWS SDK for Python (Boto3), and others.
- It can serve various File Repository Purposes, from hosting static web content to storing backups, data archives, and serving as a data lake for analytics.
- It can be configured with various AWS S3 Bucket Policies and IAM Policies to manage access permissions.
- It can utilize features like Versioning, Lifecycle Management, and Cross-Region Replication for enhanced data management and durability.
- It can be interacted with using AWS CLI, AWS Management Console, and directly through API Calls.
- It can support Server-Side Encryption (SSE) for securing stored data.
- ...
- Example(s):
s3://gmrkb-backups/
— A bucket named `gmrkb-backups` used for storing backups.https://s3.console.aws.amazon.com/s3/buckets/gmrkb-backups
— AWS Management Console link for accessing the `gmrkb-backups` bucket.- Endpoint URL: `http://example-bucket-123.s3.us-east-1.amazonaws.com` — Access URL for a bucket named `example-bucket-123` in the `us-east-1` region.
- Endpoint URL: `http://my.photos.2024.s3.eu-central-1.amazonaws.com` — Access URL for a bucket named `my.photos.2024` in the `eu-central-1` region.
- Endpoint URL: `http://data-archive-companyxyz.s3.ap-southeast-2.amazonaws.com` — Access URL for a bucket named `data-archive-companyxyz`
- ...
- Counter-Example(s):
- An AWS EBS Storage Volume — A block storage solution for use with AWS EC2 instances.
- An AWS EC2 Instance Store — Temporary storage allocated to an EC2 instance.
- A GCP Cloud Storage Bucket.
- See: s3cmd, AWS IAM, S3 Bucket Policy.
References
2018
- https://netflix-skunkworks.github.io/bucketsnake/docs/s3background.html
- QUOTE: … Avoiding cross-account object and bucket ownership is strongly advised. This is resolved by always performing S3 operations with an IAM role within the bucket owning account. Doing this ensures that the bucket owner and object owner are the same. This also helps simplify access by reducing the number of places where S3 permissions can live, which ultimately improves the security of your infrastructure.
2011
- http://en.wikipedia.org/wiki/Amazon_S3#Design
- QUOTE: S3 stores arbitrary objects up to 5 terabytes in size, each accompanied by up to 2 kilobytes of metadata. Objects are organized into buckets (each owned by an Amazon Web Services or AWS account), and identified within each bucket by a unique, user-assigned key. Amazon Machine Images (AMIs) which are modified in the Elastic Compute Cloud (EC2) can be exported to S3 as bundles.[1]
Buckets and objects can be created, listed, and retrieved using either a REST-style HTTP interface or a SOAP interface. Additionally, objects can be downloaded using the HTTP GET interface and the BitTorrent protocol.
Requests are authorized using an access control list associated with each bucket and object.
Bucket names and keys are chosen so that objects are addressable using HTTP URLs:
http://s3.amazonaws.com/bucket/key
http://bucket.s3.amazonaws.com/key
http://bucket/key
(where bucket is a DNS CNAME record pointing to bucket.s3.amazonaws.com)
- QUOTE: S3 stores arbitrary objects up to 5 terabytes in size, each accompanied by up to 2 kilobytes of metadata. Objects are organized into buckets (each owned by an Amazon Web Services or AWS account), and identified within each bucket by a unique, user-assigned key. Amazon Machine Images (AMIs) which are modified in the Elastic Compute Cloud (EC2) can be exported to S3 as bundles.[1]
2011
- http://docs.amazonwebservices.com/AmazonS3/latest/dev/Introduction.html#BasicsBucket
- QUOTE: An bucket is a container for objects stored in Amazon S3. Every object is contained in an bucket. For example, if the object named photos/puppy.jpg is stored in the johnsmith bucket, then it is addressable using the URL http://johnsmith.s3.amazonaws.com/photos/puppy.jpg
Buckets serve several purposes: they organize the Amazon S3 namespace at the highest level, they identify the account responsible for storage and data transfer charges, they play a role in access control, and they serve as the unit of aggregation for usage reporting.
You can configure buckets so that they are created in a specific Region.... You can also configure an bucket so that every time an object is added to it, Amazon S3 generates a unique version ID and assigns it to the object.
- QUOTE: An bucket is a container for objects stored in Amazon S3. Every object is contained in an bucket. For example, if the object named photos/puppy.jpg is stored in the johnsmith bucket, then it is addressable using the URL http://johnsmith.s3.amazonaws.com/photos/puppy.jpg
2011
- http://docs.amazonwebservices.com/AmazonS3/latest/dev/UsingBucket.html
- QUOTE: Every object stored in Amazon S3 is contained in an bucket. Buckets partition the namespace of objects stored in Amazon S3 at the top level. Within a bucket, you can use any names for your objects, but bucket names must be unique across all of Amazon S3.
Buckets are similar to Internet domain names. Just as Amazon is the only owner of the domain name Amazon.com, only one person or organization can own a bucket within Amazon S3. Once you create a uniquely named bucket in Amazon S3, you can organize and name the objects within the bucket in any way you like and the bucket will remain yours for as long as you like and as long as you have the Amazon S3 account.
The similarities between buckets and domain names is not a coincidence — there is a direct mapping between Amazon S3 buckets and subdomains of s3.amazonaws.com. Objects stored in Amazon S3 are addressable using the REST API under the domain bucketname.s3.amazonaws.com. For example, if the object homepage.html is stored in the Amazon S3 bucket mybucket its address would be http://mybucket.s3.amazonaws.com/homepage.html. For more information, see Virtual Hosting of Buckets.
To determine whether a bucket name exists using REST, use HEAD, specify the name of the bucket, and set max-keys to 0. To determine whether a bucket name exists using SOAP, use ListBucket and set MaxKeys to 0. A NoSuchBucket response indicates that the bucket is available, a AccessDenied response indicates that someone else owns the bucket, and a Success response indicates that you own the bucket or have permission to access it.
- QUOTE: Every object stored in Amazon S3 is contained in an bucket. Buckets partition the namespace of objects stored in Amazon S3 at the top level. Within a bucket, you can use any names for your objects, but bucket names must be unique across all of Amazon S3.