Section 12 & 14: Amazon S3 Introduction & Advanced S3 Flashcards
What is Amazon S3?
Amazon S3 is a simple storage service that allows people to store objects (files) in buckets (directories).
What are S3 Buckets?
Buckets are highly scalable object (file) storage.
What do S3 buckets consist of?
Buckets have a globally unique name, are defined at the region level, file sizes must be between 0 bytes -5 TB, and offer unlimited storage.
How many AWS buckets per account by default?
100 buckets per account by default.
Is an S3 Bucket suitable for installing an OS or DB?
No, an S3 bucket is not suitable for installing an OS or DB. Block-based storage is better for this.
What do S3 objects consist of?
S3 objects consist of metadata, tags for security / lifecycle, Version ID (if versioning is enabled), and a key value (key = filename, value = data) and sub resources (access control lists and torrents).
What should you do if uploading for than 5 GB to S3?
You should use multi-part upload
What is an S3 Object key composed of?
Prefic + object name. Example: s3://my-bucket/my_folder1/another_folder/my_file.txt
s3://my-bucket/prefix/object_name
At what level is S3 Versioning enabled?
S3 Versioning is enabled at the bucket level
What happens if you upload the same file to S3 twice?
The file will be assigned a unique version every time
Can you disable versioning on an S3 bucket once its enabled?
No. Versioning cannot be disabled, it can only be suspended. Suspending versioning does not delete previous versions.
What if you have files that exist prior to versioning being enabled?
All existing files prior to the enabling of versioning will receive a version of “null”
What does S3 Versioning do?
S3 Versioning stores all versions of an object (file) including deleted versions.
What happens to the permissions on a newly uploaded version? What about the permissions on old versions?
For newly uploaded versions, permissions are automatically reset to private.
For old versions, the existing permissions are retained.
What happens when you delete an object (file) with versioning enabled?
Deleting a file with versioning enabled will simply set a delete marker (it won’t actually be deleted). You can restore this version by deleting the delete marker. However, deleting an individual, specific version will actually delete the file version.
What are the four (4) methods of encrypting objects in S3?
1) SSE-S3 (Server-Side-Encryption)
2) SSE-KMS (Server-Side-Encryption, AWS Key-Management-System)
3) SSE-C (Server-Side-Encryption, Customer)
4) Client Side Encryption
How does SSE-S3 encrypt S3 objects? Main use case?
SSE-S3 encrypts S3 objects using keys handled & managed by AWS. Its main use case is encrypting user data on S3.
How does SSE-KMS encrypt S3 objects? Main advantages?
SSE-KMS encrypts S3 objects by leveraging AWS’s Key Management Service (KMS) to manage the encryption keys. KMS provides a customer managed key and an audit trail of who uses the key, and when they used it.
SSE-KMS’s main advantage is user control & audit trail, giving users full control over encryption key rotation policies.
When should you use SSE-C?
SSE-C should be used when you want to manage your own encryption keys, outside of AWS. AWS S3 does not store the encryption key provided in every HTTPS request. SSE-C can only be done via the AWS CLI.
What is Client Side Encryption?
Client Side Encryption is when the encryption occurs on the client side, rather than the server side. As a result, AWS will not know your encryption key.
How does Client Side Encryption work?
Clients must encrypt data themselves before sending it to S3, and decrypt data themselves when retrieving from S3. Customers fully manage the keys and encryption cycle themselves.
What are the three Encryption Types?
1) In transit (uses SSL / TLS)
2) At Rest (server-side)
3) At Rest (Client Side)
What are the two main types of S3 Security?
1) User-based
2) Resource-based