Amazon S3 allows people to store objects (files) in buckets (directories).
Charged for data stored per month e.g. GB-month
Buckets must have a globally unique name.
Buckets are defined at the region level.
S3 is a global service.
Naming convention
Objects
They are files and have a key
You can directly upload with pre-signed URLs if the web server is stressed
The largest object that can be uploaded in a single PUT is 5GB
The key is the full path (s3://my-bucket/folder/test.txt
)
Key = Prefix + Object name
Object values are the contents of the file (max size 5TB)
If uploading more than 5GB, use multi-part upload
Metadata (list of text key / value pairs - system or user metadata)
Tags (Unicode key/value pair - up to 10) - useful for security/lifecycle
Version ID (if versioning is enabled)
If you add files and then enable versioning, the existing files will have "null" version
A customer master key (CMK) is a logical representation of a master key. The CMK includes metadata, such as the key ID, creation date, description, and key state. The CMK also contains the key material used to encrypt and decrypt data. You can use a CMK to encrypt and decrypt up to 4 KB (4096 bytes) of data. Typically, you use CMKs to generate, encrypt, and decrypt the data keys that you use outside of AWS KMS to encrypt your data. This strategy is known as envelope encryption.
Four methods to encrypt objects in S3
SSE-S3
"x-amz-server-side-encryption": "AES256"
SSE-KMS
"x-amz-server-side-encryption": "aws:kms"
SSE-C
Client-side encryption
Encryption in transit
You may enable default encryption for a bucket.