SlideShare une entreprise Scribd logo
1  sur  80
Télécharger pour lire hors ligne
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Cross-account encryption with AWS
KMS and Slack Enterprise Key
Management
Joe Norman
Partner Solutions Architect
AWS
S D D 3 5 3
Audrei Drummond
Staff Backend Engineer
Slack
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Defense in depth
KMS key
policy
KMS keyRole
IAM policy
Amazon S3
VPC endpoint
VPCe policy
Amazon S3 bucket
Bucket policy
Users Documents
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Encryption in AWS
Audit
Access controls
Encrypting services
Secondary
storage
Client
Corporate data
center
AWS Cloud
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Key Management Service (AWS KMS) custom key
store
Clients
AWS
services
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS KMS keyhierarchy
Two-tiered hierarchy for keys
• Data keys used to encrypt customer data
• Customer master keys (CMKs) protect data keys
• CMK policies control access to data
• All activity associated with CMKs is logged
Benefits
• Envelope encryption avoids managing data keys
• Encrypted data keys stored with encrypted objects
• Well suited to encrypting large data objects
• Enables local key caching for high I/O operations
Customer
master key
S3 bucket Amazon EBS
volume
Amazon
RDS
instance
CMK
Data key Data key Data key
AWS KMS
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Envelope encryption
Example: S3 server-side encryption
Plaintext
data
Encrypt process
Encrypted
data key
3
Data key
Data key
7
Data key
Encrypted
data key
6 Data key
Generate data key request
2
CMK
1
Amazon S3
Encrypt
Encrypted
data and
data key in
S3 bucket
4
Data key
Decrypt process
5
Encrypted
data and
data key in
S3 bucketData key
Decrypt
Amazon S3
Plaintext
data
8
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Key policies
Allow: Grants access
Deny: Revokes access
Which actors get this access
allowed or denied?
API actions allowed or denied
by the policy
Actions are taken against the
CMK this policy is attached to
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "Grant admin access to CMK",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::[myAccount#]:role/KMSAdmin"
]
},
"Action": [
"kms:*",
]
"Resource": "*",
}]
}
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Opening the floodgates
Client
Corporate data
center
AWS Cloud
VPC
Third-Party SaaS
Who controls the keys?
Customer
SaaS provider
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Diving into the SaaS side
AWS Cloud
AWS KMSCustomer
SaaS provider AWS account
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
How can the customer keep more control?
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
How can the customer keep more control?
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
How can the customer keep more control?
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
How can the customer keep more control?
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
How can the customer keep more control?
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
How can the customer keep more control?
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
How can the customer keep more control?
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
How can the customer keep more control?
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Cross-account key policies
Allow: Grants access
Deny: Revokes access
All users in 3rd party AWS
account.
Make data keys to encrypt new
data and decrypt existing data
keys to decrypt previously
encrypted data.
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "Third-party access",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111111111111:root",
"arn:aws:iam::222222222222:root"
]
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
]
"Resource": "*",
}]
}
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Key revocation
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "Third-party access",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::111111111111:root",
"arn:aws:iam::222222222222:root"
]
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
]
"Resource": "*",
},
{
"Sid": "Revoke home folder access",
"Effect": "Deny",
"Principal": {
"AWS": [
"arn:aws:iam::111111111111:root",
"arn:aws:iam::222222222222:root"
]
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:folder": "home"
}
}
}]}
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Keep an eye on key usage with AWS CloudTrail
"EventName":"DecryptResult", This KMS API action was called…
"EventTime":"2014-08-18T18:13:07Z", …at this time
"RequestParameters":
{"keyId":"2b42x363-1911-4e3a-8321-6b67329024ex"}, …in reference to this key
"EncryptionContext":"volumeid-12345", …with this context
"SourceIPAddress":" 203.0.113.113", …from this IP address
"UserIdentity":
{"arn":"arn:aws:iam:: 111122223333:user/User123"} …by this AWS user in this account
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Some challenges for consideration
• AWS KMS is a regional service
• Multiple regions = multiple CMKs
• Customer must trust that SaaS is deleting plaintext data keys
• Shared responsibility: Customer control over security increased
• Access control, key rotation, auditing
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack is the collaboration hub that moves work forward
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack Enterprise Grid
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
Bring your own keys
Slack EKM integrates with AWS KMS to give our most
security-conscious customers control over their encryption
keys.
Granular key access control
Admins can revoke key access granularly, so teams
experience minimal disruption. Slack keeps working as
usual, and so do they.
Peace of mind for the security-conscious
Helps customers manage the risk of relying on a vendor to
protect sensitive data and the risk of invisible disclosure
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design objectives
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design objectives
Maintain all of Slack’s features in their full and unhindered form
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design objectives
Maintain all of Slack’s features in their full and unhindered form
Inspire a high level of customer trust by:
• Providing a detailed, un-tamperable audit log of key accesses
• Augmenting that with a log generated by Slack
• Restricting employee access to customers’ key material
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design objectives
Maintain all of Slack’s features in their full and unhindered form
Inspire a high level of customer trust by:
• Providing a detailed, un-tamperable audit log of key accesses
• Augmenting that with a log generated by Slack
• Restricting employee access to customers’ key material
Preserve Slack’s engineers’ ability to deliver features and fixes
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Design objectives
Maintain all of Slack’s features in their full and unhindered form
Inspire a high level of customer trust by:
• Providing a detailed, un-tamperable audit log of key accesses
• Augmenting that with a log generated by Slack
• Restricting employee access to customers’ key material
Preserve Slack’s engineers’ ability to deliver features and fixes
Introduce minimal performance penalties
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM to end users
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM to end users
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM provides ...
Visibility into access to the keys that
can decrypt your messages and files
Control of key access by organization,
workspace, channel, and time
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM high-level design
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM high-level design
• Encrypt every message or file using the customer’s encryption keys
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM high-level design
• Encrypt every message or file using the customer’s encryption keys
• Decrypt every message or file using the same keys
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM high-level design
• Encrypt every message or file using the customer’s encryption keys
• Decrypt every message or file using the same keys
• Use many keys, each covering a small slice of messages or a single file
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM high-level design
• Encrypt every message or file using the customer’s encryption keys
• Decrypt every message or file using the same keys
• Use many keys, each covering a small slice of messages or a single file
• Give customers a log of all accesses to their keys
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM high-level design
• Encrypt every message or file using the customer’s encryption keys
• Decrypt every message or file using the same keys
• Use many keys, each covering a small slice of messages or a single file
• Give customers a log of all accesses to their keys
• Cache data keys for five minutes to preserve performance
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM high-level design
• Encrypt every message or file using the customer’s encryption keys
• Decrypt every message or file using the same keys
• Use many keys, each covering a small slice of messages or a single file
• Give customers a log of all accesses to their keys
• Cache data keys for five minutes to preserve performance
• Enable customers to control access to their keys via policies in AWS KMS
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
High-level design
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
Log AWS KMS usage and
key scope
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
Log AWS KMS usage and
key scope
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
Log AWS KMS usage and
key scope
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
Log AWS KMS usage and
key scope
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
Log AWS KMS usage and
key scope
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
Log AWS KMS usage and
key scope
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
Log AWS KMS usage and
key scope
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
Your AWS Account
Log AWS KMS usage and
key scope
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
encryption
Your AWS Account
Enforce Key
Policy
Log AWS KMS usage
and key scope
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Log AWS KMS usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Log AWS KMS usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Log AWS KMS usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Log AWS KMS usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Log AWS KMS usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Log AWS KMS usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Log AWS KMS usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Log AWS KMS usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Enforce Key Policy
Log AWS KMS
usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
decryption
Your AWS Account
Send Logs
Log AWS KMS usage and
parameters
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
EncryptionContext scopes data keys to data
• A message is encrypted with an encryption key that’s scoped to:
• The organization
• The workspace
• The channel
• The hour
• A file is encrypted with an encryption key that’s scoped to:
• The organization
• The file
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Granularly revoke key access
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Example policies: Baseline
{
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::152659312504:root"},
"Action": ["kms:Decrypt", "kms:GenerateDataKey"],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:O": "ED14RK2GJ"
}
}
}
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Example policies: Baseline lockdown
{
"Effect": "Deny",
"Principal": {"AWS": "arn:aws:iam::152659312504:root"},
"Action": ["kms:Decrypt", "kms:GenerateDataKey"],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:O": "ED14RK2GJ"
}
}
}
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM to end users
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Example policies: Lockdown for a channel
{
"Effect": "Deny",
"Principal": {"AWS": "arn:aws:iam::152659312504:root"},
"Action": ["kms:Decrypt", "kms:GenerateDataKey"],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:C": "CD11VKXL3",
"kms:EncryptionContext:O": "ED14RK2GJ"
}
}
}
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Example policies: Lockdown org for a single month
{
"Effect": "Deny",
"Principal": {"AWS": "arn:aws:iam::152659312504:root"},
"Action": ["kms:Decrypt", "kms:GenerateDataKey"],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:O": "ED14RK2GJ"
},
"StringLike": {
"kms:EncryptionContext:H": "2019-06-*"
}
}
}
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM to end users
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Example policies: Combining channel and time
{
"Effect": "Deny",
"Principal": {"AWS": "arn:aws:iam::152659312504:root"},
"Action": ["kms:Decrypt", "kms:GenerateDataKey"],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:C": "CD11VKXL3",
"kms:EncryptionContext:O": "ED14RK2GJ"
},
"StringLike": {
"kms:EncryptionContext:H": "2019-06-25T06"
}
}
}
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
Decryption
Your AWS Account
Send Logs
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Example logs
{
"eventName": "Decrypt",
"requestParameters": {
"encryptionContext":{
"C": "CD11VKXL3",
"T": "TD2FCEBLN",
"H": "2018-10-24T21",
"O": "ED14RK2GJ"
}
},
// ...
}
{
"Action": "Decrypt",
"KeyScope": {
"C": "CD11VKXL3",
"H": "2018-10-24T21",
"O": "ED14RK2GJ",
"T": "TD2FCEBLN"
},
"Reason": "history"
}
AWS CloudTrail Amazon CloudWatch Logs
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Slack EKM
Most importantly, when you’re enrolled in
EKM, Slack remains Slack
You gain control of and visibility into how your
encryption keys are being used
And AWS KMS makes it fast and highly
available
Thank you!
© 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
Joe Norman
Audrei Drummond

Contenu connexe

Tendances

AWS Security Week: AWS Secrets Manager
AWS Security Week: AWS Secrets ManagerAWS Security Week: AWS Secrets Manager
AWS Security Week: AWS Secrets ManagerAmazon Web Services
 
Kubernetes on AWS with Amazon EKS - MAD301 - New York AWS Summit
Kubernetes on AWS with Amazon EKS - MAD301 - New York AWS SummitKubernetes on AWS with Amazon EKS - MAD301 - New York AWS Summit
Kubernetes on AWS with Amazon EKS - MAD301 - New York AWS SummitAmazon Web Services
 
Encryption and Key Management in AWS
Encryption and Key Management in AWSEncryption and Key Management in AWS
Encryption and Key Management in AWSAmazon Web Services
 
(SEC318) AWS CloudTrail Deep Dive
(SEC318) AWS CloudTrail Deep Dive(SEC318) AWS CloudTrail Deep Dive
(SEC318) AWS CloudTrail Deep DiveAmazon Web Services
 
Managing and governing multi-account AWS environments using AWS Organizations...
Managing and governing multi-account AWS environments using AWS Organizations...Managing and governing multi-account AWS environments using AWS Organizations...
Managing and governing multi-account AWS environments using AWS Organizations...Amazon Web Services
 
Introduction to AWS Secrets Manager
Introduction to AWS Secrets ManagerIntroduction to AWS Secrets Manager
Introduction to AWS Secrets ManagerAmazon Web Services
 
AWS Multi-Account Architecture and Best Practices
AWS Multi-Account Architecture and Best PracticesAWS Multi-Account Architecture and Best Practices
AWS Multi-Account Architecture and Best PracticesAmazon Web Services
 
Deploy and Govern at Scale with AWS Control Tower
Deploy and Govern at Scale with AWS Control TowerDeploy and Govern at Scale with AWS Control Tower
Deploy and Govern at Scale with AWS Control TowerAmazon Web Services
 
Amazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon Web Services
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsAmazon Web Services
 
Introduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesIntroduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesGary Silverman
 
AWS IAM and security
AWS IAM and securityAWS IAM and security
AWS IAM and securityErik Paulsson
 
IAM Introduction and Best Practices
IAM Introduction and Best PracticesIAM Introduction and Best Practices
IAM Introduction and Best PracticesAmazon Web Services
 
How to use IAM roles grant access to AWS
How to use IAM roles grant access to AWSHow to use IAM roles grant access to AWS
How to use IAM roles grant access to AWSAmazon Web Services
 

Tendances (20)

Setting Up a Landing Zone
Setting Up a Landing ZoneSetting Up a Landing Zone
Setting Up a Landing Zone
 
Become an AWS IAM Policy Ninja
Become an AWS IAM Policy NinjaBecome an AWS IAM Policy Ninja
Become an AWS IAM Policy Ninja
 
AWS Security Week: AWS Secrets Manager
AWS Security Week: AWS Secrets ManagerAWS Security Week: AWS Secrets Manager
AWS Security Week: AWS Secrets Manager
 
Introduction to AWS Security
Introduction to AWS SecurityIntroduction to AWS Security
Introduction to AWS Security
 
Kubernetes on AWS with Amazon EKS - MAD301 - New York AWS Summit
Kubernetes on AWS with Amazon EKS - MAD301 - New York AWS SummitKubernetes on AWS with Amazon EKS - MAD301 - New York AWS Summit
Kubernetes on AWS with Amazon EKS - MAD301 - New York AWS Summit
 
Encryption and Key Management in AWS
Encryption and Key Management in AWSEncryption and Key Management in AWS
Encryption and Key Management in AWS
 
(SEC318) AWS CloudTrail Deep Dive
(SEC318) AWS CloudTrail Deep Dive(SEC318) AWS CloudTrail Deep Dive
(SEC318) AWS CloudTrail Deep Dive
 
Managing and governing multi-account AWS environments using AWS Organizations...
Managing and governing multi-account AWS environments using AWS Organizations...Managing and governing multi-account AWS environments using AWS Organizations...
Managing and governing multi-account AWS environments using AWS Organizations...
 
AWS Security Best Practices
AWS Security Best PracticesAWS Security Best Practices
AWS Security Best Practices
 
Introduction to AWS Secrets Manager
Introduction to AWS Secrets ManagerIntroduction to AWS Secrets Manager
Introduction to AWS Secrets Manager
 
AWS Multi-Account Architecture and Best Practices
AWS Multi-Account Architecture and Best PracticesAWS Multi-Account Architecture and Best Practices
AWS Multi-Account Architecture and Best Practices
 
Deploy and Govern at Scale with AWS Control Tower
Deploy and Govern at Scale with AWS Control TowerDeploy and Govern at Scale with AWS Control Tower
Deploy and Govern at Scale with AWS Control Tower
 
Amazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for KubernetesAmazon EKS - Elastic Container Service for Kubernetes
Amazon EKS - Elastic Container Service for Kubernetes
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 
Introduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best PracticesIntroduction to AWS VPC, Guidelines, and Best Practices
Introduction to AWS VPC, Guidelines, and Best Practices
 
Amazon EKS Deep Dive
Amazon EKS Deep DiveAmazon EKS Deep Dive
Amazon EKS Deep Dive
 
AWS IAM and security
AWS IAM and securityAWS IAM and security
AWS IAM and security
 
CloudFormation Best Practices
CloudFormation Best PracticesCloudFormation Best Practices
CloudFormation Best Practices
 
IAM Introduction and Best Practices
IAM Introduction and Best PracticesIAM Introduction and Best Practices
IAM Introduction and Best Practices
 
How to use IAM roles grant access to AWS
How to use IAM roles grant access to AWSHow to use IAM roles grant access to AWS
How to use IAM roles grant access to AWS
 

Similaire à Cross-account encryption with AWS KMS and Slack Enterprise Key Management - SDD353 - AWS re:Inforce 2019

Securing enterprise-grade serverless applications - SDD401 - AWS re:Inforce 2...
Securing enterprise-grade serverless applications - SDD401 - AWS re:Inforce 2...Securing enterprise-grade serverless applications - SDD401 - AWS re:Inforce 2...
Securing enterprise-grade serverless applications - SDD401 - AWS re:Inforce 2...Amazon Web Services
 
How encryption works in AWS: What assurances do you have that unauthorized us...
How encryption works in AWS: What assurances do you have that unauthorized us...How encryption works in AWS: What assurances do you have that unauthorized us...
How encryption works in AWS: What assurances do you have that unauthorized us...Amazon Web Services
 
The fundamentals of AWS cloud security - FND209-R - AWS re:Inforce 2019
The fundamentals of AWS cloud security - FND209-R - AWS re:Inforce 2019 The fundamentals of AWS cloud security - FND209-R - AWS re:Inforce 2019
The fundamentals of AWS cloud security - FND209-R - AWS re:Inforce 2019 Amazon Web Services
 
Security in Amazon Elasticsearch Service (ANT392) - AWS re:Invent 2018
Security in Amazon Elasticsearch Service (ANT392) - AWS re:Invent 2018Security in Amazon Elasticsearch Service (ANT392) - AWS re:Invent 2018
Security in Amazon Elasticsearch Service (ANT392) - AWS re:Invent 2018Amazon Web Services
 
Pitt Immersion Day Module 5 - security overview
Pitt Immersion Day Module 5 - security overviewPitt Immersion Day Module 5 - security overview
Pitt Immersion Day Module 5 - security overviewEagleDream Technologies
 
Data encryption concepts in AWS - FND302 - AWS re:Inforce 2019
Data encryption concepts in AWS - FND302 - AWS re:Inforce 2019 Data encryption concepts in AWS - FND302 - AWS re:Inforce 2019
Data encryption concepts in AWS - FND302 - AWS re:Inforce 2019 Amazon Web Services
 
AWS Identity Access Management
AWS Identity Access ManagementAWS Identity Access Management
AWS Identity Access ManagementRichard Harvey
 
Identity and Access Management and Directory Services
Identity and Access Management and Directory ServicesIdentity and Access Management and Directory Services
Identity and Access Management and Directory ServicesAmazon Web Services
 
Best practices for choosing identity solutions for applications + workloads -...
Best practices for choosing identity solutions for applications + workloads -...Best practices for choosing identity solutions for applications + workloads -...
Best practices for choosing identity solutions for applications + workloads -...Amazon Web Services
 
Evolving perimeters with guardrails, not gates: Improving developer agility -...
Evolving perimeters with guardrails, not gates: Improving developer agility -...Evolving perimeters with guardrails, not gates: Improving developer agility -...
Evolving perimeters with guardrails, not gates: Improving developer agility -...Amazon Web Services
 
Your first compliance-as-code - GRC305-R - AWS re:Inforce 2019
 Your first compliance-as-code - GRC305-R - AWS re:Inforce 2019  Your first compliance-as-code - GRC305-R - AWS re:Inforce 2019
Your first compliance-as-code - GRC305-R - AWS re:Inforce 2019 Amazon Web Services
 
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep DiveAmazon Web Services Japan
 
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on awsAWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on awsAWS Riyadh User Group
 
Getting Started with AWS Security
Getting Started with AWS SecurityGetting Started with AWS Security
Getting Started with AWS SecurityAmazon Web Services
 
A security-first approach to delivering end-user computing services - FND327 ...
A security-first approach to delivering end-user computing services - FND327 ...A security-first approach to delivering end-user computing services - FND327 ...
A security-first approach to delivering end-user computing services - FND327 ...Amazon Web Services
 
Security at the speed of cloud: How to think about it & how you can do it now...
Security at the speed of cloud: How to think about it & how you can do it now...Security at the speed of cloud: How to think about it & how you can do it now...
Security at the speed of cloud: How to think about it & how you can do it now...Amazon Web Services
 
Securing Data in Serverless Applications and Messaging Services (API317-R2) -...
Securing Data in Serverless Applications and Messaging Services (API317-R2) -...Securing Data in Serverless Applications and Messaging Services (API317-R2) -...
Securing Data in Serverless Applications and Messaging Services (API317-R2) -...Amazon Web Services
 
Achieving security goals with AWS CloudHSM - SDD333 - AWS re:Inforce 2019
Achieving security goals with AWS CloudHSM - SDD333 - AWS re:Inforce 2019 Achieving security goals with AWS CloudHSM - SDD333 - AWS re:Inforce 2019
Achieving security goals with AWS CloudHSM - SDD333 - AWS re:Inforce 2019 Amazon Web Services
 

Similaire à Cross-account encryption with AWS KMS and Slack Enterprise Key Management - SDD353 - AWS re:Inforce 2019 (20)

Securing enterprise-grade serverless applications - SDD401 - AWS re:Inforce 2...
Securing enterprise-grade serverless applications - SDD401 - AWS re:Inforce 2...Securing enterprise-grade serverless applications - SDD401 - AWS re:Inforce 2...
Securing enterprise-grade serverless applications - SDD401 - AWS re:Inforce 2...
 
How encryption works in AWS: What assurances do you have that unauthorized us...
How encryption works in AWS: What assurances do you have that unauthorized us...How encryption works in AWS: What assurances do you have that unauthorized us...
How encryption works in AWS: What assurances do you have that unauthorized us...
 
The fundamentals of AWS cloud security - FND209-R - AWS re:Inforce 2019
The fundamentals of AWS cloud security - FND209-R - AWS re:Inforce 2019 The fundamentals of AWS cloud security - FND209-R - AWS re:Inforce 2019
The fundamentals of AWS cloud security - FND209-R - AWS re:Inforce 2019
 
Security in Amazon Elasticsearch Service (ANT392) - AWS re:Invent 2018
Security in Amazon Elasticsearch Service (ANT392) - AWS re:Invent 2018Security in Amazon Elasticsearch Service (ANT392) - AWS re:Invent 2018
Security in Amazon Elasticsearch Service (ANT392) - AWS re:Invent 2018
 
Pitt Immersion Day Module 5 - security overview
Pitt Immersion Day Module 5 - security overviewPitt Immersion Day Module 5 - security overview
Pitt Immersion Day Module 5 - security overview
 
Data encryption concepts in AWS - FND302 - AWS re:Inforce 2019
Data encryption concepts in AWS - FND302 - AWS re:Inforce 2019 Data encryption concepts in AWS - FND302 - AWS re:Inforce 2019
Data encryption concepts in AWS - FND302 - AWS re:Inforce 2019
 
AWS Identity Access Management
AWS Identity Access ManagementAWS Identity Access Management
AWS Identity Access Management
 
Identity and Access Management and Directory Services
Identity and Access Management and Directory ServicesIdentity and Access Management and Directory Services
Identity and Access Management and Directory Services
 
AWS Security Deep Dive
AWS Security Deep DiveAWS Security Deep Dive
AWS Security Deep Dive
 
Best practices for choosing identity solutions for applications + workloads -...
Best practices for choosing identity solutions for applications + workloads -...Best practices for choosing identity solutions for applications + workloads -...
Best practices for choosing identity solutions for applications + workloads -...
 
Evolving perimeters with guardrails, not gates: Improving developer agility -...
Evolving perimeters with guardrails, not gates: Improving developer agility -...Evolving perimeters with guardrails, not gates: Improving developer agility -...
Evolving perimeters with guardrails, not gates: Improving developer agility -...
 
Your first compliance-as-code - GRC305-R - AWS re:Inforce 2019
 Your first compliance-as-code - GRC305-R - AWS re:Inforce 2019  Your first compliance-as-code - GRC305-R - AWS re:Inforce 2019
Your first compliance-as-code - GRC305-R - AWS re:Inforce 2019
 
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive20190731 Black Belt Online Seminar Amazon ECS Deep Dive
20190731 Black Belt Online Seminar Amazon ECS Deep Dive
 
AWS Security Deep Dive
AWS Security Deep DiveAWS Security Deep Dive
AWS Security Deep Dive
 
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on awsAWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
AWS Technical Day Riyadh Nov 2019 - The art of mastering data protection on aws
 
Getting Started with AWS Security
Getting Started with AWS SecurityGetting Started with AWS Security
Getting Started with AWS Security
 
A security-first approach to delivering end-user computing services - FND327 ...
A security-first approach to delivering end-user computing services - FND327 ...A security-first approach to delivering end-user computing services - FND327 ...
A security-first approach to delivering end-user computing services - FND327 ...
 
Security at the speed of cloud: How to think about it & how you can do it now...
Security at the speed of cloud: How to think about it & how you can do it now...Security at the speed of cloud: How to think about it & how you can do it now...
Security at the speed of cloud: How to think about it & how you can do it now...
 
Securing Data in Serverless Applications and Messaging Services (API317-R2) -...
Securing Data in Serverless Applications and Messaging Services (API317-R2) -...Securing Data in Serverless Applications and Messaging Services (API317-R2) -...
Securing Data in Serverless Applications and Messaging Services (API317-R2) -...
 
Achieving security goals with AWS CloudHSM - SDD333 - AWS re:Inforce 2019
Achieving security goals with AWS CloudHSM - SDD333 - AWS re:Inforce 2019 Achieving security goals with AWS CloudHSM - SDD333 - AWS re:Inforce 2019
Achieving security goals with AWS CloudHSM - SDD333 - AWS re:Inforce 2019
 

Plus de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Plus de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Cross-account encryption with AWS KMS and Slack Enterprise Key Management - SDD353 - AWS re:Inforce 2019

  • 1. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Cross-account encryption with AWS KMS and Slack Enterprise Key Management Joe Norman Partner Solutions Architect AWS S D D 3 5 3 Audrei Drummond Staff Backend Engineer Slack
  • 2. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Defense in depth KMS key policy KMS keyRole IAM policy Amazon S3 VPC endpoint VPCe policy Amazon S3 bucket Bucket policy Users Documents
  • 3. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Encryption in AWS Audit Access controls Encrypting services Secondary storage Client Corporate data center AWS Cloud
  • 4. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS Key Management Service (AWS KMS) custom key store Clients AWS services
  • 5. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS KMS keyhierarchy Two-tiered hierarchy for keys • Data keys used to encrypt customer data • Customer master keys (CMKs) protect data keys • CMK policies control access to data • All activity associated with CMKs is logged Benefits • Envelope encryption avoids managing data keys • Encrypted data keys stored with encrypted objects • Well suited to encrypting large data objects • Enables local key caching for high I/O operations Customer master key S3 bucket Amazon EBS volume Amazon RDS instance CMK Data key Data key Data key AWS KMS
  • 6. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Envelope encryption Example: S3 server-side encryption Plaintext data Encrypt process Encrypted data key 3 Data key Data key 7 Data key Encrypted data key 6 Data key Generate data key request 2 CMK 1 Amazon S3 Encrypt Encrypted data and data key in S3 bucket 4 Data key Decrypt process 5 Encrypted data and data key in S3 bucketData key Decrypt Amazon S3 Plaintext data 8
  • 7. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Key policies Allow: Grants access Deny: Revokes access Which actors get this access allowed or denied? API actions allowed or denied by the policy Actions are taken against the CMK this policy is attached to { "Version": "2012-10-17", "Statement": [{ "Sid": "Grant admin access to CMK", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::[myAccount#]:role/KMSAdmin" ] }, "Action": [ "kms:*", ] "Resource": "*", }] }
  • 8. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Opening the floodgates Client Corporate data center AWS Cloud VPC Third-Party SaaS Who controls the keys? Customer SaaS provider
  • 9. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Diving into the SaaS side AWS Cloud AWS KMSCustomer SaaS provider AWS account
  • 10. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. How can the customer keep more control?
  • 11. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. How can the customer keep more control?
  • 12. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. How can the customer keep more control?
  • 13. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. How can the customer keep more control?
  • 14. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. How can the customer keep more control?
  • 15. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. How can the customer keep more control?
  • 16. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. How can the customer keep more control?
  • 17. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. How can the customer keep more control?
  • 18. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Cross-account key policies Allow: Grants access Deny: Revokes access All users in 3rd party AWS account. Make data keys to encrypt new data and decrypt existing data keys to decrypt previously encrypted data. { "Version": "2012-10-17", "Statement": [{ "Sid": "Third-party access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111111111111:root", "arn:aws:iam::222222222222:root" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ] "Resource": "*", }] }
  • 19. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Key revocation { "Version": "2012-10-17", "Statement": [{ "Sid": "Third-party access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111111111111:root", "arn:aws:iam::222222222222:root" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ] "Resource": "*", }, { "Sid": "Revoke home folder access", "Effect": "Deny", "Principal": { "AWS": [ "arn:aws:iam::111111111111:root", "arn:aws:iam::222222222222:root" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:folder": "home" } } }]}
  • 20. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Keep an eye on key usage with AWS CloudTrail "EventName":"DecryptResult", This KMS API action was called… "EventTime":"2014-08-18T18:13:07Z", …at this time "RequestParameters": {"keyId":"2b42x363-1911-4e3a-8321-6b67329024ex"}, …in reference to this key "EncryptionContext":"volumeid-12345", …with this context "SourceIPAddress":" 203.0.113.113", …from this IP address "UserIdentity": {"arn":"arn:aws:iam:: 111122223333:user/User123"} …by this AWS user in this account
  • 21. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Some challenges for consideration • AWS KMS is a regional service • Multiple regions = multiple CMKs • Customer must trust that SaaS is deleting plaintext data keys • Shared responsibility: Customer control over security increased • Access control, key rotation, auditing
  • 22. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 23. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 24. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack is the collaboration hub that moves work forward
  • 25. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack Enterprise Grid
  • 26. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 27. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM Bring your own keys Slack EKM integrates with AWS KMS to give our most security-conscious customers control over their encryption keys. Granular key access control Admins can revoke key access granularly, so teams experience minimal disruption. Slack keeps working as usual, and so do they. Peace of mind for the security-conscious Helps customers manage the risk of relying on a vendor to protect sensitive data and the risk of invisible disclosure
  • 28. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Design objectives
  • 29. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Design objectives Maintain all of Slack’s features in their full and unhindered form
  • 30. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Design objectives Maintain all of Slack’s features in their full and unhindered form Inspire a high level of customer trust by: • Providing a detailed, un-tamperable audit log of key accesses • Augmenting that with a log generated by Slack • Restricting employee access to customers’ key material
  • 31. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Design objectives Maintain all of Slack’s features in their full and unhindered form Inspire a high level of customer trust by: • Providing a detailed, un-tamperable audit log of key accesses • Augmenting that with a log generated by Slack • Restricting employee access to customers’ key material Preserve Slack’s engineers’ ability to deliver features and fixes
  • 32. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Design objectives Maintain all of Slack’s features in their full and unhindered form Inspire a high level of customer trust by: • Providing a detailed, un-tamperable audit log of key accesses • Augmenting that with a log generated by Slack • Restricting employee access to customers’ key material Preserve Slack’s engineers’ ability to deliver features and fixes Introduce minimal performance penalties
  • 33. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 34. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM to end users
  • 35. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM to end users
  • 36. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM provides ... Visibility into access to the keys that can decrypt your messages and files Control of key access by organization, workspace, channel, and time
  • 37. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 38. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM high-level design
  • 39. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM high-level design • Encrypt every message or file using the customer’s encryption keys
  • 40. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM high-level design • Encrypt every message or file using the customer’s encryption keys • Decrypt every message or file using the same keys
  • 41. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM high-level design • Encrypt every message or file using the customer’s encryption keys • Decrypt every message or file using the same keys • Use many keys, each covering a small slice of messages or a single file
  • 42. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM high-level design • Encrypt every message or file using the customer’s encryption keys • Decrypt every message or file using the same keys • Use many keys, each covering a small slice of messages or a single file • Give customers a log of all accesses to their keys
  • 43. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM high-level design • Encrypt every message or file using the customer’s encryption keys • Decrypt every message or file using the same keys • Use many keys, each covering a small slice of messages or a single file • Give customers a log of all accesses to their keys • Cache data keys for five minutes to preserve performance
  • 44. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM high-level design • Encrypt every message or file using the customer’s encryption keys • Decrypt every message or file using the same keys • Use many keys, each covering a small slice of messages or a single file • Give customers a log of all accesses to their keys • Cache data keys for five minutes to preserve performance • Enable customers to control access to their keys via policies in AWS KMS
  • 45. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. High-level design
  • 46. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption Log AWS KMS usage and key scope
  • 47. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption Log AWS KMS usage and key scope
  • 48. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption
  • 49. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption Log AWS KMS usage and key scope
  • 50. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption Log AWS KMS usage and key scope
  • 51. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption Log AWS KMS usage and key scope
  • 52. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption Log AWS KMS usage and key scope
  • 53. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption Log AWS KMS usage and key scope
  • 54. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption Your AWS Account Log AWS KMS usage and key scope
  • 55. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM encryption Your AWS Account Enforce Key Policy Log AWS KMS usage and key scope
  • 56. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Log AWS KMS usage and parameters
  • 57. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Log AWS KMS usage and parameters
  • 58. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Log AWS KMS usage and parameters
  • 59. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Log AWS KMS usage and parameters
  • 60. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Log AWS KMS usage and parameters
  • 61. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Log AWS KMS usage and parameters
  • 62. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Log AWS KMS usage and parameters
  • 63. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Log AWS KMS usage and parameters
  • 64. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Enforce Key Policy Log AWS KMS usage and parameters
  • 65. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM decryption Your AWS Account Send Logs Log AWS KMS usage and parameters
  • 66. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 67. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. EncryptionContext scopes data keys to data • A message is encrypted with an encryption key that’s scoped to: • The organization • The workspace • The channel • The hour • A file is encrypted with an encryption key that’s scoped to: • The organization • The file
  • 68. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Granularly revoke key access
  • 69. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Example policies: Baseline { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::152659312504:root"}, "Action": ["kms:Decrypt", "kms:GenerateDataKey"], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:O": "ED14RK2GJ" } } }
  • 70. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Example policies: Baseline lockdown { "Effect": "Deny", "Principal": {"AWS": "arn:aws:iam::152659312504:root"}, "Action": ["kms:Decrypt", "kms:GenerateDataKey"], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:O": "ED14RK2GJ" } } }
  • 71. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM to end users
  • 72. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Example policies: Lockdown for a channel { "Effect": "Deny", "Principal": {"AWS": "arn:aws:iam::152659312504:root"}, "Action": ["kms:Decrypt", "kms:GenerateDataKey"], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:C": "CD11VKXL3", "kms:EncryptionContext:O": "ED14RK2GJ" } } }
  • 73. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Example policies: Lockdown org for a single month { "Effect": "Deny", "Principal": {"AWS": "arn:aws:iam::152659312504:root"}, "Action": ["kms:Decrypt", "kms:GenerateDataKey"], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:O": "ED14RK2GJ" }, "StringLike": { "kms:EncryptionContext:H": "2019-06-*" } } }
  • 74. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM to end users
  • 75. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Example policies: Combining channel and time { "Effect": "Deny", "Principal": {"AWS": "arn:aws:iam::152659312504:root"}, "Action": ["kms:Decrypt", "kms:GenerateDataKey"], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:C": "CD11VKXL3", "kms:EncryptionContext:O": "ED14RK2GJ" }, "StringLike": { "kms:EncryptionContext:H": "2019-06-25T06" } } }
  • 76. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 77. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM Decryption Your AWS Account Send Logs
  • 78. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Example logs { "eventName": "Decrypt", "requestParameters": { "encryptionContext":{ "C": "CD11VKXL3", "T": "TD2FCEBLN", "H": "2018-10-24T21", "O": "ED14RK2GJ" } }, // ... } { "Action": "Decrypt", "KeyScope": { "C": "CD11VKXL3", "H": "2018-10-24T21", "O": "ED14RK2GJ", "T": "TD2FCEBLN" }, "Reason": "history" } AWS CloudTrail Amazon CloudWatch Logs
  • 79. © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Slack EKM Most importantly, when you’re enrolled in EKM, Slack remains Slack You gain control of and visibility into how your encryption keys are being used And AWS KMS makes it fast and highly available
  • 80. Thank you! © 2019,Amazon Web Services, Inc. or its affiliates. All rights reserved. Joe Norman Audrei Drummond