Protecting Your Data with Encryption on AWS

65
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Dave Walker, Specialist Solution Architect Security and Compliance 07/07/16 Protecting your Data with Encryption on AWS

Transcript of Protecting Your Data with Encryption on AWS

Page 1: Protecting Your Data with Encryption on AWS

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Dave Walker, Specialist Solution ArchitectSecurity and Compliance

07/07/16

Protecting your Data with Encryption on AWS

Page 2: Protecting Your Data with Encryption on AWS

What to expect from this session

• Understand your options for protecting your data with encryption in AWS

• Securing access to data on Amazon S3 using policies• Database platform security• Automatically validate and audit your data protection policies

• …and some myth-busting and a Case Study courtesy of Al Davidson at the Ministry of Justice

Page 3: Protecting Your Data with Encryption on AWS

More Detail:• UK Security Roadshow Crypto Options Slides:

http://www.slideshare.net/AmazonWebServices/crypto-options-in-aws-59677556

• Video: https://youtu.be/9bn7p2tdym0• Whitepapers:

• Encrypting Data at Rest: https://d0.awsstatic.com/whitepapers/AWS_Securing_Data_at_Rest_with_Encryption.pdf

• AWS Key Management Service Cryptographic Details: https://d0.awsstatic.com/whitepapers/KMS-Cryptographic-Details.pdf

Page 4: Protecting Your Data with Encryption on AWS

Encryption in Transit

Page 5: Protecting Your Data with Encryption on AWS

Authenticating AWS to you and protecting confidentiality using TLS

• TLS is used with every AWS API to protect data upload/download and configuration change

• You can provide your own certificates to be presented to your customers when using:

• Amazon Elastic Load Balancing• Amazon CloudFront (content distribution network)

Page 6: Protecting Your Data with Encryption on AWS

AWS Certificate Manager (ACM)

• Provision trusted TLS certificates from AWS for use with AWS resources:• Elastic Load Balancing • Amazon CloudFront distributions

• AWS handles the drudgery • Key pair and CSR generation• Managed renewal and deployment

• Domain validation (DV) through email• Available through AWS Management Console, AWS

Command Line Interface (AWS CLI), or API

Page 7: Protecting Your Data with Encryption on AWS

ACM-provided certificatesDomain names

• Single domain name: www.example.com• Wildcard domain names: *.example.com• Combination of wildcard and non-wildcard names• Multiple domain names in the same certificate (up to 10)

ACM-provided certificates are managed• Private keys are generated, protected, and managed• ACM-provided certificates cannot be used on Amazon EC2 instances or on-premises

servers

Algorithms• RSA 2048 and SHA-256

Free

Page 8: Protecting Your Data with Encryption on AWS

Making TLS work better in your apps

• “signal to noise”• A TLS library designed by AWS to help your developers

implement transport security • Avoids implementing rarely-used TLS options and

extensions; ~6,000 lines of code

https://github.com/awslabs/s2n

Page 9: Protecting Your Data with Encryption on AWS

Encryption at Rest

Page 10: Protecting Your Data with Encryption on AWS

Plaintextdata

Hardware/software

Encrypteddata

Encrypteddata in storage

Encrypted data key

Symmetricdata key

Master keySymmetricdata key

? Key hierarchy

?

Data at rest encryption primer

Page 11: Protecting Your Data with Encryption on AWS

Where are keys stored?• Hardware you own?• Hardware the cloud provider owns?

Where are keys used?• Client software you control?• Server software the cloud provider controls?

Who can use the keys?• Users and applications that have permissions?• Cloud provider applications you give permissions?

What assurances are there for proper security around keys?

“Key” questions to consider with any solution

Page 12: Protecting Your Data with Encryption on AWS

Client-side encryption• You encrypt your data before data submitted to service• You supply encryption keys OR use keys in your AWS account• Available clients:

• Amazon S3, Amazon EMR File System (EMRFS), Amazon DynamoDB

Server-side encryption• AWS encrypts data on your behalf after data is received by service • Integrated services:

• S3, Amazon Elastic Block Store (Amazon EBS), Amazon RDS, Amazon Redshift, Amazon WorkMail, Amazon WorkSpaces, AWS CloudTrail, Amazon Simple Email Service (Amazon SES), Amazon Elastic Transcoder, AWS Import/Export Snowball, Amazon Kinesis Firehose

Options for using encryption in AWS

Page 13: Protecting Your Data with Encryption on AWS

Your applications in your data

center

Your key management

infrastructure in EC2

Your encryptionclient application

Your key management infrastructure Your application

in EC2

Your encrypted data in select AWS services

Client-side encryption in AWSS3/EMRFS and DynamoDB encryption clients in AWS SDKs

Page 14: Protecting Your Data with Encryption on AWS

Amazon S3 Web Server

HTTPSCustomer

Data

Amazon S3 Storage Fleet

Key is used at S3 web server, and then deleted.

Customer must provide same key when downloading to allow S3 to decrypt data.

Customer-provided key

Server-side encryption in AWSS3 server-side encryption with customer-provided encryption keys (SSE-C)

PlaintextData

EncryptedData

Customer-provided key

Page 15: Protecting Your Data with Encryption on AWS

AWS Key Management Service (AWS KMS)

• Managed service that simplifies creation, control, rotation, deletion, and use of AES256 encryption keys in your applications

• Integrated with AWS server-side encryption• S3, EBS, RDS, Amazon Aurora, Amazon Redshift, Amazon

WorkMail, Amazon WorkSpaces, AWS CloudTrail, and Amazon Elastic Transcoder

• Integrated with AWS client-side encryption• AWS SDKs, S3 encryption client, EMRFS client, and DynamoDB

encryption client• Integrated with CloudTrail to provide auditable logs of key usage for

regulatory and compliance activities• Available in all commercial regions except China

Page 16: Protecting Your Data with Encryption on AWS

AWS KMSIntegrated with AWS Identity and Access Management (IAM) console

Page 17: Protecting Your Data with Encryption on AWS

KMS integration with AWS services

• Storage: EBS, S3, Snowball• Database: All RDS engines• Data Analytics: Amazon Redshift, EMR, Amazon

Kinesis Firehose• Enterprise Apps: WorkMail, WorkSpaces• Developer Tools: AWS CodeCommit• Management: CloudTrail• App Svcs: Elastic Transcoder, Simple Email Service

Page 18: Protecting Your Data with Encryption on AWS

How clients and AWS services typically integrate with KMS

Two-tiered key hierarchy using envelope encryption

• Unique data key encrypts customer data• KMS master keys encrypt data keys

Benefits• Limits risk of compromised data key• Better performance for encrypting large

data• Easier to manage small number of

master keys than millions of data keys• Centralized access and audit of key

activity

Customer masterkeys

Data key 1

S3 object EBS volume

Amazon Redshift cluster

Data key 2 Data key 3 Data key 4

Customapplication

KMS

Page 19: Protecting Your Data with Encryption on AWS

Your application or AWS service

+Data key Encrypted data key

Encrypteddata

Master keys in customer’s account

KMS

How AWS services use your KMS keys

1. Client calls kms:GenerateDataKey by passing the ID of the KMS master key in your account.

2. Client request is authenticated based on permissions set on both the user and the key.3. A unique data encryption key is created and encrypted under the KMS master key.4. The plaintext and encrypted data key is returned to the client. 5. The plaintext data key is used to encrypt data and is then deleted when practical.6. The encrypted data key is stored; it’s sent back to KMS when needed for data decryption.

Page 20: Protecting Your Data with Encryption on AWS

create-volume [--dry-run | --no-dry-run] [--size <value>] [--snapshot-id <value>] --availability-zone <value> [--volume-type <value>] [--iops <value>] [--encrypted | --no-encrypted] [--kms-key-id <value>] [--cli-input-json <value>] [--generate-cli-skeleton]

Console

AWS CLI/SDK

Interfaces to select KMS keys in AWS services

Page 21: Protecting Your Data with Encryption on AWS

You control how and when your KMS keys can be used and by whomSample permissions on a key:• Can only be used for encryption and decryption by <these users and

roles> in <this account>• Can only be used by application A to encrypt data, but only used by

application B to decrypt data• Can only be used to decrypt data if the service resource is active and

additional parameters about the resource are passed in the call• Can be managed only by this set of administrator users or roles

Fully integrated with AWS Identity and Access Management

Page 22: Protecting Your Data with Encryption on AWS

Rotating master keys in KMS

What key rotation means:• A new version of a master key is created, but mapped to the same

key ID or alias• All new encryption requests use the new version• All previous versions of keys are kept to perform decryption on

older ciphertextsThere is nothing users or applications need to do after a rotation—the same key ID or alias just works

AWS CLIenable-key-rotation --key-id <value>

Console (Key Summary Page)

Page 23: Protecting Your Data with Encryption on AWS

Auditability of KMS key usage through AWS CloudTrail"EventName":"DecryptResult", ThisKMSAPIactionwascalled…

"EventTiime":"2014-08-18T18:13:07Z", ….atthistime

"RequestParameters":"{\"keyId\":\"2b42x363-1911-4e3a-8321-6b67329025ex”}”, …inreferencetothiskey

“EncryptionContext":"volumeid-12345", …toprotectthisAWS resource

"SourceIPAddress":" 203.0.113.113", …fromthisIPaddress

"UserIdentity":“{\"arn\":\"arn:aws:iam:: 111122223333:user/User123“} …bythisAWSuserinthisaccount

Page 24: Protecting Your Data with Encryption on AWS

KMS APIs to build your own applications

Example management API actions• CreateKey, CreateAlias• DisableKey• EnableKeyRotation• PutKeyPolicy• ListKeys, DescribeKey

Example data API actions• Encrypt• Decrypt• ReEncrypt• GenerateDataKey

26 API actions and growing

http://docs.aws.amazon.com/kms/latest/APIReference/Welcome.html

Page 25: Protecting Your Data with Encryption on AWS

KMS assurancesWhy should you trust AWS with your keys?

• Your plaintext keys are never stored in nonvolatile memory• There are no tools in place to access your physical key material• You control who has permissions to use your keys• There is separation of duties between systems that use master keys

and ones that use data keys with multiparty controls• You can find evidence of every KMS API call in CloudTrail for you to

monitor• Also, there is third-party evidence of these controls:

• Service Organization Control (SOC 1)• PCI-DSS• In process for FIPS 140-2• See AWS Compliance packages for details

Page 26: Protecting Your Data with Encryption on AWS

Ubiquitous encryption

AWS CloudTrail

IAMEBS

RDS

Amazon Redshift

S3

AmazonGlacier

Encrypted in transit

and at rest

Fully auditable

Fully managedkeys in KMS

Restricted access

Page 27: Protecting Your Data with Encryption on AWS

Pricing for KMS

$1/key version/month

$0.03 per 10,000 API requests ($0.04 per 10,000 API requests in AWS GovCloud)

• 20,000 free requests per month

Page 28: Protecting Your Data with Encryption on AWS

Alternatives to KMSIn order to have different controls over the security of your keys

1. AWS CloudHSM

2. AWS Partner solutions

3. Do it yourself

Page 29: Protecting Your Data with Encryption on AWS

AWS CloudHSM

• You receive dedicated access to HSM appliances

• HSMs located in AWS data centers• Managed and monitored by AWS• Only you have access to your keys and

operations on the keys• HSMs are inside your Amazon VPC—

isolated from the rest of the network• Uses SafeNet Luna SA 7000 HSM

appliances

CloudHSM

AWS administrator—Manages the appliance

You—Control keys and crypto operations

Amazon VPC

Page 30: Protecting Your Data with Encryption on AWS

AWS CloudHSM

Available in eight regions worldwide• US East (N. Virginia), US West (Oregon), AWS GovCloud (US), EU

(Ireland), EU (Frankfurt), Asia Pacific (Sydney), Asia Pacific (Singapore) and Asia Pacific (Tokyo)

Compliance• Included in AWS PCI DSS and SOC-1 compliance packages• FIPS 140-2 level 2 (maintained by Gemalto/SafeNet)

Typical use cases• Use with Amazon Redshift and RDS for Oracle• Integrate with third-party software (Oracle – including Oracle EE in

RDS, Microsoft SQL Server, Apache, SafeNet)• Build your own custom applications

Page 31: Protecting Your Data with Encryption on AWS

SafeNet ProtectV manager and Virtual KeySecure

in EC2

EBS volume encryption with CloudHSM and SafeNet SoftwareSafeNet ProtectV with Virtual KeySecure

CloudHSM stores the master key

SafeNet ProtectV

client

CloudHSM

Your encrypted datain EBS

Your applications in EC2

ProtectV client• Encrypts I/O from

EC2 instances to EBS volumes

• Includes prebootauthentication

Page 32: Protecting Your Data with Encryption on AWS

Pricing for CloudHSM

• HSM provisioned in any region has a $5,000 one-time charge

• Starting at $1.88/hour metered charge after setup• Hourly rate varies by region

• As low as $21,500 in year one; $16,500 in subsequent years

• Requests not billed; limited only by the device capacity• Varies depending on algorithm and key size

Page 33: Protecting Your Data with Encryption on AWS

Comparing CloudHSM with KMS

CloudHSM• Dedicated access to one or more HSM

devices that comply with government standards (FIPS 140-2, Common Criteria)

• Broad range of symmetric and asymmetric algorithms

• Generate or import keys• You control all access to your keys and

the application software that uses them• Supported applications:

• Your custom software• Third-party software• AWS services: Amazon Redshift, RDS for Oracle

KMS• Highly available and durable key storage,

management, and auditable service• AWS-managed root of trust• AES256-GCM and configurable key rotation• Generate keys in-service• Easily encrypt your data across AWS

services and within your own applications based on policies you define; full CloudTrailintegration

• Supported applications:• Your custom software built with AWS SDKs/CLI• AWS services (S3, EBS, RDS, Amazon Aurora,

Amazon Redshift, WorkMail, WorkSpaces, CloudTrail, Elastic Transcoder)

Page 34: Protecting Your Data with Encryption on AWS

Partner solutions in AWS Marketplace

• Browse, test, and buy encryption and key management solutions• Pay by the hour, monthly, or annually• Software fees added to AWS bill• Bring Your Own License

Page 35: Protecting Your Data with Encryption on AWS

Your encryptionclient application

Your key management infrastructure

Your applications in your data

center

Your application in EC2

Your key management

infrastructure in EC2

Your encrypted data in AWS services

DIY key management in AWSEncrypt data client-side and send ciphertext to AWS storage services

Page 36: Protecting Your Data with Encryption on AWS

Comparison of key management options

KMS CloudHSM AWS MarketplacePartner Solutions DIY

Where keys are generated and stored

AWS In AWS, on an HSM that you control

Your network or inAWS

Your network or inAWS

Where keys are used AWS services or your applications

AWS or your applications

Your network or your EC2 instance

Your network or your EC2 instance

How to control key use Policy you define; enforced by AWS

Customer code + SafeNet APIs

Vendor-specific management

Config files, vendor-specific management

Responsibility for performance/scale

AWS You You You

Integration with AWS services?

Yes Limited Limited Limited

Pricing model Per key/usage Per hour Per hour/per year Variable

Page 37: Protecting Your Data with Encryption on AWS

AWS database services and encryption at restServer-side encryption with KMS

RDS MySQLRDS PostgreSQLRDS SQL ServerRDS OracleRDS MariaDBAmazon AuroraAmazon Redshift

Server-side encryption with CloudHSMAmazon RedshiftRDS Oracle—TDEMicrosoft SQL TDE (outside RDS)

Client-side encryptionDynamoDB encryption client

Page 38: Protecting Your Data with Encryption on AWS

38MOJ Digital / @justice_digital 38

Government’s Journey To The Cloud

Alistair DavidsonTechnical Architecture Lead, Ministry of Justice

@drsnooks

Page 39: Protecting Your Data with Encryption on AWS

39MOJ Digital / @justice_digital 39Al Davidson / @drsnooks

Why Cloud?

● Government service load can be very spiky

● When Government services go down, real impact on people’s lives

● Government efforts should be focussed on building great public services - not datacenters

Page 40: Protecting Your Data with Encryption on AWS

40MOJ Digital / @justice_digital 40Al Davidson / @drsnooks

Huge savings to be made

Projecting 750k / yr just from moving one set of productsMonthly bill down from ~64k to ~2k when finished97% saving

Page 41: Protecting Your Data with Encryption on AWS

41MOJ Digital / @justice_digital 41Al Davidson / @drsnooks

Can we put Government data on the cloud?YES…..but it’s not a simple lift-and-shift

Thinking needed to change on:DataSecurityArchitectureProcurementContracts

etc etc

Page 42: Protecting Your Data with Encryption on AWS

42MOJ Digital / @justice_digital 42Al Davidson / @drsnooks

Main barriers are not technical

ProceduralContractualEducationalOrganisational / Cultural

Made great progress, but still hear FUD about security

Page 43: Protecting Your Data with Encryption on AWS

43MOJ Digital / @justice_digital 43Al Davidson / @drsnooks

People Problems

...are nearly always incentive problems

Incentives are skewed towards old behaviours

You say “savings” they hear “budget cuts”Vendor lock-in becomes self-reinforcingHeavyweight procurement leads to longer contractsDigital expertise centralised => outsourcing is easier option

Page 44: Protecting Your Data with Encryption on AWS

44MOJ Digital / @justice_digital 44Al Davidson / @drsnooks

Mythbusting

“you can't put Gov. data in the cloud AT ALL”

“you can't store Gov. data offshore”

Page 45: Protecting Your Data with Encryption on AWS

45MOJ Digital / @justice_digital 45Al Davidson / @drsnooks

WRONG on both counts

This is hosted in AWS EU-WEST-1

So are 30+ morejust within MoJ

Page 46: Protecting Your Data with Encryption on AWS

46MOJ Digital / @justice_digital 46Al Davidson / @drsnooks

There is NO BLANKET REASON why Government data should not be on the

public cloud

(Chief SIRO “broad approval” for OFFICIAL)

Page 47: Protecting Your Data with Encryption on AWS

47MOJ Digital / @justice_digital 47Al Davidson / @drsnooks

What does “Government data” mean?

Traditional Impact Levels - IL0 - IL6 • no longer applied to technology

Classifications simplified to 3 • OFFICIAL, SECRET, TOP SECRET

Most info involved in public-facing services is OFFICIAL• SECRET is a BIG step up from OFFICIAL

AWS considered acceptable for OFFICIAL

Page 48: Protecting Your Data with Encryption on AWS

48MOJ Digital / @justice_digital 48Al Davidson / @drsnooks

Traditional security approach

If ANY part is sensitive, the whole thing must be locked-down

“What’s the highest level of security we need?”Over-emphasis on strong perimeter

Page 49: Protecting Your Data with Encryption on AWS

49MOJ Digital / @justice_digital 49Al Davidson / @drsnooks

Modern security thinking

What’s the minimum we need to ask the user for?What’s the smallest part we absolutely need to lock-

down?What’s the lowest level of procedure we absolutely can’t

do without?

Page 50: Protecting Your Data with Encryption on AWS

50MOJ Digital / @justice_digital 50Al Davidson / @drsnooks

It's not about how much you can lock-down

but how much you can OPEN

Page 51: Protecting Your Data with Encryption on AWS

51MOJ Digital / @justice_digital 51Al Davidson / @drsnooks

“Security must be proportionate and justified”GDS Service Design Manual - https://www.gov.uk/service-manual/technology/security-as-enabler.html

“User experience should be fantastic -security should be good enough”

CESG Principles of effective cyber security risk managementhttps://www.cesg.gov.uk/guidance/principles-effective-cyber-security-risk-management#user-experience

Page 52: Protecting Your Data with Encryption on AWS

52MOJ Digital / @justice_digital 52Al Davidson / @drsnooks

Software that can’t be changed is not an assetIt’s a liability

...and the same is true for infrastructure

Page 53: Protecting Your Data with Encryption on AWS

53MOJ Digital / @justice_digital 53Al Davidson / @drsnooks

AWS Philosophy:Everything Fails, All Of The Time

Applied to security:Everything Is (or Could Be) Vulnerable, All Of The Time

Page 54: Protecting Your Data with Encryption on AWS

54MOJ Digital / @justice_digital 54Al Davidson / @drsnooks

A new 0-day vulnerability Is discovered every week

(source: Symantec)

Page 55: Protecting Your Data with Encryption on AWS

55MOJ Digital / @justice_digital 55Al Davidson / @drsnooks

“Secure”does not mean “unchangeable”

it means the exact opposite -changeable rapidly in response to threats

Page 56: Protecting Your Data with Encryption on AWS

56MOJ Digital / @justice_digital 56Al Davidson / @drsnooks

How not to do itOne particular legacy system:

●Change-controlled - multiple sign-offs required●Locked-down private network●Physical hardware designed for predicted future peak

capacity●Testing is fully-manual

○ ‘5 or 6 people, 3 or 4 weeks’ ○ Significant costs just to run tests

=> Hasn’t been released since Feb 2015CVE lists 78 vulnerabilities JUST IN JAVA since then

Page 57: Protecting Your Data with Encryption on AWS

57MOJ Digital / @justice_digital 57Al Davidson / @drsnooks

How we do it now

“Cloud Platform”Rapid deployment & stack creationTemplated best-practiceContinuous deliveryLegacy migration next...

Page 58: Protecting Your Data with Encryption on AWS

58MOJ Digital / @justice_digital 58Al Davidson / @drsnooks

Traditional Pen. Testing

Once before go-live• maybe once every 6 months after that• system locked-down after testing

c. 8-10k per test

Always external• “because they’re the experts”

Page 59: Protecting Your Data with Encryption on AWS

59MOJ Digital / @justice_digital 59Al Davidson / @drsnooks

Big bang pen tests are not enoughin an environment of constant change

They’re often templatized & one-size-fits-all

Can only find vulnerabilities known at time of test

Page 60: Protecting Your Data with Encryption on AWS

60MOJ Digital / @justice_digital 60Al Davidson / @drsnooks

Agile Security

In-house ethical hacker, risk assessment & IA team

Continuous engagement & dialogue with dev teams

On-going consultation for risk-impacting changes

On-going health checks

Page 61: Protecting Your Data with Encryption on AWS

61MOJ Digital / @justice_digital 61Al Davidson / @drsnooks

Public cloud is easier to secure

A public cloud solution can be more secure than physical hardware if done rightDisposable, automatable, rapidly-changeableinfrastructureOut-of-the-box tooling for every app to have it’s own

- Sub-account & VPC- Users, roles & permissions- Rapidly-revokable secrets, keys, certificates- Firewall rules- Audit trail of API calls

Page 62: Protecting Your Data with Encryption on AWS

62MOJ Digital / @justice_digital 62Al Davidson / @drsnooks

We Not Only Can Use The Cloud, We Should

Cabinet Office (GDS) Tech Code of Practice (2013) says:“...evaluate potential public cloud solutions first –

before you consider any other option”

CESG Cloud Security Principles (2014) available at https://www.cesg.gov.uk/cloud-security-collection

Page 63: Protecting Your Data with Encryption on AWS

63MOJ Digital / @justice_digital 63Al Davidson / @drsnooks

We’re Hiring!

Developers, back-end & front-endTechnical ArchitectsSecurity EngineersWeb operations

User Researchers

Designers

Content Specialists

Head of Development

Come and help us Make Stuff That [email protected] / mojdigital.blog.gov.uk/working-at-moj-ds

Page 64: Protecting Your Data with Encryption on AWS

64MOJ Digital / @justice_digital 64Al Davidson / @drsnooks

Contacts

MoJ Digital@Justice_Digitalmojdigital.blog.gov.ukOur codegithub.com/ministryofjustice

Me@[email protected]

At [email protected]

Page 65: Protecting Your Data with Encryption on AWS

Please remember to rate this session under My Agenda on

awssummit.london