Amazon S3 security (associate) Flashcards
What are some features of Amazon S3 object encryption?
- You can encrypt object in S3 buckets using one of 4 methods:
- Sever side encryption (SSE)
- sever side encryption with Amazon S3-managed keys (SSE-S3) - enabled by default (encrypts S3 objects using keys handled, managed, and owned by AWS) - Server side encryption with KMS keys stored in AWS KMS (SSE -KMS)
(Leverage AWS key management service (AWS KMS) to manage encryption keys - Server side encryption with customer provided keys (SSE-C) (when you want to manage your own encryption keys)
- Client side encryption
What are some features of Amazon S3 encryption-SSE-S3? (Server side encryption)
- Encryption using megs handled, managed, and owned by AWS
- Object is encrypted server side
- Encryption type is AES-256
- Must der Header “x-amz-Server-side encryption”:”AES256”
- Enabled by default for new buckets & new objects
What are some features of SSE KMS?
- Encryption using Jets handled and managed by AWS KMS (key management service)
- KMS advantage: user control + audit key using CloudTrail
- Object is encrypted server side
- Must set header “x-and-Server-Side-Encryption”:”aws:kms”
What are the limitations to SSE KMS?
- If you use SSE KMS you may be impacted by the KMS limits
- When you upload it calls the generatedatakey KMS API
- When you download, it calls the decrypt KMS API
- Count towards the KMS quota per second
- You can request a quotas increase using the service quotas console
What are some features of SSE-C encryption?
- Server Side Encryption using keys fully managed by the customer outside of AWS
- Amazon S3 DOESNT store the Encryption key you provide
- HTTPS must be used
- Encryption key must provide in HTTP headers for every HTTP request made
What are some features of client side encryption?
- Use client libraries such as Amazon S3 client side encryption library
- Clients must encrypt data themselves before sending to Amazon S3
- Clients Must decrypt data themselves when retrieving from Amazon S3
- Customer fully manage the keys and encryption cycle
What are some features of encryption in transit (SSL/TLS)?
- Encryption in flight is also called SSL/TLS
- Amazon S3 exposes two endpoints:
1. HTTP endpoint (no encrypted)
2. HTTPS endpoint (encryption in flight) - HTTPS is recommended
- HTTPS is mandatory for SSE-C
__________ is just “double encryption based on KMS”.
DSSE-KMS
What are the features of default encryption vs bucket policies?
- SSE-S3 encryption is automatically applied to new objects stores in S3 bucket
- Optionally you can force encryption using a bucket policy and refuse any API call to PUT an S3 object without encryption headers (SSE-KMS or SSE-C)
- Bucket policies are evaluated before default encryption
What is CORS?
- Cross Origin resource sharing (CORS)
- Origin= scheme (protocol) + host (domain) + port
- Web browser based mechanism to allow request to other origins while visiting the main origin
Ex. Same origin: http://example.com/app1 & http://example.com/app2
Different origins: http://www.example.com & http://other.example.com
- The request won’t be fulfilled unless the other origin allows for the request using CORA headers (ex. Access-control-allow-origin)
How does Amazon S3 and CORS interact?
- If a client makes a cross-origin request on our S3 bucket, we need to enable the correct CORS headers
- You can allow for a specific origin or for * (all origins)
CORS is a web browser security that allows you to enable images/assest/ or files being retrieved from one S3 bucket in case the request is originating from another origin
Describe MFA delete
- MFA (Multi factor authentication) force user to generate a code on a device before doing important operations on S3
- MFA will be required to:
- Permanently delete an object version
- Suspend versioning on the bucket - MFA wont be required to:
- Enable versioning
- List deleted versions - To use MFA delete, versioning must be enabled on the bucket
- Only the bucket owner (root account) can be enable/disable MFA delete
What are some features of S3 Access Logs?
- For audit purpose you may want to log all access to S3 buckets
- Any request made to S3, from any account, authorized or denied will be logged into another S3 bucket
- That data can be analyzed using data analysis tools
- The target logging bucket must be in the same AWS region
What are some warnings when it comes to access logs?
- DONT set your logging bucket to be the monitored bucket
- It will create a logging loop and your bucket will grow exponentially so don’t do it at home
What’s are some features of Pre-Signed URLs
- Generate pre signed URLs using the S3 console, AWS CLI or SDK
- URL expiration:
- S3 Console (1 mins up to 720 mins (12hrs))
- AWS CLI configure expiration with expires in parameters in seconds
- User given a pre signed URL inherit the permission of the user that generated the URL for GET/PUT