SlideShare a Scribd company logo
1 of 28
1© Cloudera, Inc. All rights reserved.
Hadoop Distributed File System (HDFS)
Encryption with Navigator Key Trustee
Protecting Enterprise Data Hubs
Luke Hebert, Customer Operations Engineer, Security SME
2© Cloudera, Inc. All rights reserved.©2014 Cloudera, Inc. All rights reserved.
Data Security Requirements
Protect data while preserving
application choice
Better alignment with key
management policies
Integrate with existing HSMs as
part of KMI (optional)
Data
Protecting data in the
cluster from
unauthorized visibility
InfoSec Concept:
Compliance
Key Trustee KMS &
Key Trustee
3© Cloudera, Inc. All rights reserved.
“Virtual safe-deposit box” for managing encryption keys or other
Hadoop security artifact
Navigator Key Trustee
• Separates Keys from Encrypted Data
• Centralized Management
• Integration with HSMs from Thales,
and SafeNet
• Roadmap: Management of SSL
certificates, SSH keys, tokens,
passwords, Kerberos Keytab Files,
and more
© Cloudera, Inc. All rights reserved.
Key Trustee Key Management Server Proxy (KMS)
CDH Key Services
© Cloudera, Inc. All rights reserved.
• Acts as a broker between EDH and the backing Key Store.
• Is an extension used by the hadoop-kms component.
• Replaces the Java Key Store Key Provider with Key Trustee as the Key Store.
• Allows CDH components to retrieve Encryption Zone Keys as required.
• It has a single primary use case today.
• Data Encryption at Rest within HDFS
What is Key Trustee KMS ?
© Cloudera, Inc. All rights reserved.
• Implements a REST API which is utilized by components.
• Provides Key Caching.
• Provides a Key Pool to the NN.
• Modifies the behavior of several components.
• Handles retrieval of delegation tokens for jobs.
• Uses SPNEGO to facilitate authentication when Kerberos is
enabled.
• Implements ACLs which protect key accessibility.
• Allows for HA Communication with the Key Trustee Backing Key Store
and other KMS Proxies.
What does Key Trustee KMS Provide.
© Cloudera, Inc. All rights reserved.
Architecture
How does it work?
© Cloudera, Inc. All rights reserved.RESTRICTED -- DO NOT DISTRIBUTE © Cloudera, Inc. All rights reserved.
Key Trustee
Topology
© Cloudera, Inc. All rights reserved.
A Few Key Concepts.
• Encryption Zone Key (EZKEY)
• This key much like a mount key is associated
with an encryption zone in HDFS.
• Encrypted Data Encryption Key (EDEK)
• This is an encrypted copy of a Data
Encryption Key.
• Data Encryption Key (DEK)
• This is the real data encryption key used to
encrypt data stored within a file, zone, or
block device. This particular key concept is
used in both Navigator Encrypt and HDFS
Transparent Data Encryption (TDE).
© Cloudera, Inc. All rights reserved.
A Few Key Concepts.
© Cloudera, Inc. All rights reserved.
KMS Proxy Deployment considerations.
• KMS Proxy Servers
• Deployed as Service Role Instances within a Managed CDH cluster.
• Should be on isolated and protected Hardware.
• Should be installed on a clean Operating System.
• Same requirements as CDH Components for Install.
• Isolate from other services and avoid co-location. (Hardens Security)
• Requires the KEYTRUSTEE parcel be installed.
(As opposed to the KEYTRUSTEE_SERVER Parcel)
• Multiple KMS Proxies supported without LB.
• CDH Components internally enable the KMS client when configured.
© Cloudera, Inc. All rights reserved.
KMS Proxy Deployment considerations.
© Cloudera, Inc. All rights reserved.
KMS Proxy: High Level Overview
● Encryption occurs on the requesting client.
○ Data is encrypted before it lands on disk.
○ The KMS encrypts and decrypts specific key components.
○ The KMS does not encrypt content.
○ The KMS does not store keys.
© Cloudera, Inc. All rights reserved.
KMS Key Operation (Write)
● The EZ Key encrypts the data encryption keys (DEKs) that are used in turn to encrypt each file.
● DEKs are encrypted with the EZ key to form an encrypted data encryption key. (EDEK)
● The EDEK is stored on the NameNode via an extended attribute on the file.
● The EZ Key is stored on the backing Key Store (Key Trustee Server)
© Cloudera, Inc. All rights reserved. ‹#›© Cloudera, Inc. All rights reserved.
ACLs
Controlling Access to Keys
© Cloudera, Inc. All rights reserved.
• Hadoop has no concept of a Key Admin.
• Cloudera is creating a framework for Key Management based on roles.
• Creating this role allows for better compliance.
• Separating Key Management operations will ensure a separation of duties.
• In order to build this framework an administrator must lay down the correct ACLs.
• There are multiple classes of ACLs connected to the KMS.
• The ACLs are implemented in the upstream Hadoop Core KMS.
ACLs
© Cloudera, Inc. All rights reserved.
• There are 5 distinct ACL Classes available for use in the KMS.
• hadoop.kms.acl.<op>
• Controls permission to perform KMS level operations or access features.
• hadoop.kms.blacklist.<op>
• Controls permission to perform KMS level operations or access features.
• key.acl.<key-name>.<op>
• Controls permission to perform operations for a specific key.
• default.key.acl.<op>
• Controls permission to perform operations for keys that are not otherwise
specified by key.acl.<key-name>.<op>
• whitelist.key.acl.<op>
• Controls permission to perform key operations across all keys.
ACL Classes
© Cloudera, Inc. All rights reserved.
KMS ACL Flow
© Cloudera, Inc. All rights reserved.
© Cloudera, Inc. All rights reserved.
• Key Access
• In order to perform an operation, <OP>, on a key <KEY> a user
• Must be allowed by <hadoop.kms.acl.OP>
• Not disallowed by <hadoop.kms.blacklist.OP>
• and allowed by any of the 3 conditions below.
• <key.acl.KEY.OP>
• <whitelist.key.acl.OP>
• <default.key.acl.OP> if there is no <key.acl.KEY.OP> entry
Allowing user access
© Cloudera, Inc. All rights reserved.
Troubleshooting
How to get the information you need.
© Cloudera, Inc. All rights reserved.
• The KMS client cannot communicate with the server using the defined ports.
• Deposits and retrievals fail.
• The KMS or Key Trustee server is down or unable to handle incoming request.
• Deposits and retrievals fail.
• The HSM backing Key Trustee is unreachable or misconfigured.
• Deposits and retrievals fail.
• The server SSL certificates are invalid or expired.
• Communication Between KMS and Key Trustee Server will timeout.
• Low Entropy
• Key operations will be slow or hang indefinitely.
• Client registration will be slow or hang indefinitely.
• /var/lib/kms-keytrustee is out of sync when using multiple KMS Proxies.
• CDH component request for keys will result in random access to a subset of keys.
• Transparent Encryption may randomly fail for different components.
Common Issues
© Cloudera, Inc. All rights reserved.
Logs and places to look for errors.
• Attempt to replicate the operation and capture stdout/stderr
• Inspect messages.
• Ensure the right auth mechanism is set for all components. (Kerberos/Simple)
• Make sure zookeeper is working if you are in HA mode.
• Look for low level hardware problems.
• Logs on the kms client
• /var/log/kms-keytrustee
• /var/run/cloudera-scm-agent/process/<id>-keytrustee-KMS_KEYTRUSTEE
• Logs on Key Trustee
• /var/lib/keytrustee/logs/
• /var/run/cloudera-scm-agent/process/<id>-keytrustee_server-KEYTRUSTEE_ACTIVE_SERVER
(Managed)
• /var/run/cloudera-scm-agent/process/<id>-keytrustee_server-
KEYTRUSTEE_PASSIVE_SERVER (Managed)
© Cloudera, Inc. All rights reserved.
● The value returned.
○ An estimate of entropy available in the entropy pool.
● Low entropy.
○ Slow Key Operations
○ Key Generation Failures
○ Client Registration Failures
● Values below 500.
○ Considered a low entropy condition.
○ Requires injection of entropy from a source such as a DRNG, rngd, or haveged.
Checking Entropy Available
[root@server-1 ~]# cat /proc/sys/kernel/random/entropy_avail
3711
© Cloudera, Inc. All rights reserved.
Verifying server availability
[root@kms-01 ~]# curl -kv https://keytrustee-1.vpc.cloudera.dev:11371/?a=fingerprint
* About to connect() to keytrustee.cloudera.dev port 11371 (#0)
…
> GET /?a=fingerprint HTTP/1.1
…
* Closing connection #0
4096R/A71981C5F9E3F70C6484C5244BBC98C031F593DA
● Basic test of service availability from the client to the server.
○ A fingerprint return should indicate that the Key Database and Server are online.
● If the certificates are self-signed
○ You may need to use the -k flag in order to disable certificate validation.
● Operations are performed over HTTP you can increase the verbosity of curl.
○ When using -v you can inspect the server responses and headers.
© Cloudera, Inc. All rights reserved.
Verify KMS Fingerprint (gpg)
[root@kms-01 ~]# gpg --homedir /var/lib/kms-keytrustee/keytrustee/.keytrustee --fingerprint
gpg: WARNING: unsafe ownership on homedir `/var/lib/kms-keytrustee/keytrustee/.keytrustee'
/var/lib/kms-keytrustee/keytrustee/.keytrustee/pubring.gpg
----------------------------------------------------------
pub 4096R/31F593DA 2015-08-25
Key fingerprint = A719 81C5 F9E3 F70C 6484 C524 4BBC 98C0 31F5 93DA
uid keytrustee (keytrustee Server Key) <keytrustee@keytrustee-1.vpc.cloudera.com>
sub 4096R/D6017A05 2015-08-25
pub 4096R/E3D4EDD2 2015-08-25
Key fingerprint = 359B BCFF 965C FC18 2F5A A107 F15C 6514 E3D4 EDD2
uid keytrustee (client) <kms@kms-1.vpc.cloudera.com>
sub 4096R/193290BB 2015-08-25
[root@kms-01 ~]#
Note: GPG Keyring used for Message Authentication, Privacy, Message Encryption and Identity.
© Cloudera, Inc. All rights reserved.
● hadoop key list
○ Is the KMS Online.
○ Can hadoop access key material which is cached or otherwise.
○ Do you get a consistent list of keys returned from multiple attempts.
○ If you stop and start the KMS role can you still obtain key information.
Basic Key Ops
[root@server-1 ~]# hadoop key list
Listing keys for KeyProvider:
org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@5e026e6d
mykey
mykey2
[root@server-1 ~]#
RESTRICTED -- DO NOT DISTRIBUTE
© Cloudera, Inc. All rights reserved.
● hadoop key create mykey3
○ Is the KMS Online.
○ Can hadoop create key material.
○ Is the HSM responding to Key Deposit request.
○ Is Key Trustee online.
Basic Key Ops
[root@server-1 ~]# hadoop key create mykey3
mykey3 has been successfully created with options Options{cipher='AES/CTR/NoPadding',
bitLength=128, description='null', attributes=null}.
org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@5457487e has been updated.
RESTRICTED -- DO NOT DISTRIBUTE
© Cloudera, Inc. All rights reserved.
Thank you
Questions?
RESTRICTED -- DO NOT DISTRIBUTE

More Related Content

What's hot

What's hot (20)

Le Comptoir OCTO - Le Cloud souverain
Le Comptoir OCTO - Le Cloud souverainLe Comptoir OCTO - Le Cloud souverain
Le Comptoir OCTO - Le Cloud souverain
 
Cloud Adoption Framework Phase one-moving to the cloud
Cloud Adoption Framework Phase one-moving to the cloudCloud Adoption Framework Phase one-moving to the cloud
Cloud Adoption Framework Phase one-moving to the cloud
 
Stl meetup cloudera platform - january 2020
Stl meetup   cloudera platform  - january 2020Stl meetup   cloudera platform  - january 2020
Stl meetup cloudera platform - january 2020
 
Cloud Security Architecture.pptx
Cloud Security Architecture.pptxCloud Security Architecture.pptx
Cloud Security Architecture.pptx
 
Introduction to AWS KMS
Introduction to AWS KMSIntroduction to AWS KMS
Introduction to AWS KMS
 
Migrating Your Databases to AWS - Tools and Services.pdf
Migrating Your Databases to AWS -  Tools and Services.pdfMigrating Your Databases to AWS -  Tools and Services.pdf
Migrating Your Databases to AWS - Tools and Services.pdf
 
Cloud security and security architecture
Cloud security and security architectureCloud security and security architecture
Cloud security and security architecture
 
AWS Tagging Strategy
AWS Tagging StrategyAWS Tagging Strategy
AWS Tagging Strategy
 
Zero trust deck 2020
Zero trust deck 2020Zero trust deck 2020
Zero trust deck 2020
 
Introduction to AWS Organizations
Introduction to AWS OrganizationsIntroduction to AWS Organizations
Introduction to AWS Organizations
 
Microsoft: Multi-tenant SaaS with Azure
Microsoft: Multi-tenant SaaS with AzureMicrosoft: Multi-tenant SaaS with Azure
Microsoft: Multi-tenant SaaS with Azure
 
Serverless Analytics with Amazon Redshift Spectrum, AWS Glue, and Amazon Quic...
Serverless Analytics with Amazon Redshift Spectrum, AWS Glue, and Amazon Quic...Serverless Analytics with Amazon Redshift Spectrum, AWS Glue, and Amazon Quic...
Serverless Analytics with Amazon Redshift Spectrum, AWS Glue, and Amazon Quic...
 
Compliance in the Cloud Using “Security by Design” Principles
Compliance in the Cloud Using “Security by Design” PrinciplesCompliance in the Cloud Using “Security by Design” Principles
Compliance in the Cloud Using “Security by Design” Principles
 
Understanding AWS Secrets Manager - AWS Online Tech Talks
Understanding AWS Secrets Manager - AWS Online Tech TalksUnderstanding AWS Secrets Manager - AWS Online Tech Talks
Understanding AWS Secrets Manager - AWS Online Tech Talks
 
Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017
Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017
Introduction to Amazon CloudFront and AWS Lambda@Edge - CTD201 - re:Invent 2017
 
Data as a service
Data as a serviceData as a service
Data as a service
 
Azure Information Protection
Azure Information ProtectionAzure Information Protection
Azure Information Protection
 
Building your Datalake on AWS
Building your Datalake on AWSBuilding your Datalake on AWS
Building your Datalake on AWS
 
Amazon GuardDuty Threat Detection and Remediation
Amazon GuardDuty Threat Detection and RemediationAmazon GuardDuty Threat Detection and Remediation
Amazon GuardDuty Threat Detection and Remediation
 
AWS Secrets Manager
AWS Secrets ManagerAWS Secrets Manager
AWS Secrets Manager
 

Similar to Hadoop Distributed File System (HDFS) Encryption with Cloudera Navigator Key Trustee

Similar to Hadoop Distributed File System (HDFS) Encryption with Cloudera Navigator Key Trustee (20)

Risk Management for Data: Secured and Governed
Risk Management for Data: Secured and GovernedRisk Management for Data: Secured and Governed
Risk Management for Data: Secured and Governed
 
Transparent Encryption in HDFS
Transparent Encryption in HDFSTransparent Encryption in HDFS
Transparent Encryption in HDFS
 
Overview of HDFS Transparent Encryption
Overview of HDFS Transparent Encryption Overview of HDFS Transparent Encryption
Overview of HDFS Transparent Encryption
 
Managing your secrets in a cloud environment
Managing your secrets in a cloud environmentManaging your secrets in a cloud environment
Managing your secrets in a cloud environment
 
Project Rhino: Enhancing Data Protection for Hadoop
Project Rhino: Enhancing Data Protection for HadoopProject Rhino: Enhancing Data Protection for Hadoop
Project Rhino: Enhancing Data Protection for Hadoop
 
Hadoop security implementationon 20171003
Hadoop security implementationon 20171003Hadoop security implementationon 20171003
Hadoop security implementationon 20171003
 
Security implementation on hadoop
Security implementation on hadoopSecurity implementation on hadoop
Security implementation on hadoop
 
Cassandra and security
Cassandra and securityCassandra and security
Cassandra and security
 
Instaclustr: Securing Cassandra
Instaclustr: Securing CassandraInstaclustr: Securing Cassandra
Instaclustr: Securing Cassandra
 
Securing Cassandra
Securing CassandraSecuring Cassandra
Securing Cassandra
 
Securing Cassandra The Right Way
Securing Cassandra The Right WaySecuring Cassandra The Right Way
Securing Cassandra The Right Way
 
Hadoop security @ Philly Hadoop Meetup May 2015
Hadoop security @ Philly Hadoop Meetup May 2015Hadoop security @ Philly Hadoop Meetup May 2015
Hadoop security @ Philly Hadoop Meetup May 2015
 
(SEC301) Strategies for Protecting Data Using Encryption in AWS
(SEC301) Strategies for Protecting Data Using Encryption in AWS(SEC301) Strategies for Protecting Data Using Encryption in AWS
(SEC301) Strategies for Protecting Data Using Encryption in AWS
 
Deep Dive: AWS CloudHSM (Classic)
Deep Dive: AWS CloudHSM (Classic)Deep Dive: AWS CloudHSM (Classic)
Deep Dive: AWS CloudHSM (Classic)
 
Protecting Your Data in AWS
Protecting Your Data in AWS Protecting Your Data in AWS
Protecting Your Data in AWS
 
Application security meetup - cloud security best practices 24062021
Application security meetup - cloud security best practices 24062021Application security meetup - cloud security best practices 24062021
Application security meetup - cloud security best practices 24062021
 
Securing Sensitive Data with Azure Key Vault (Tom Kerkhove @ ITProceed)
Securing Sensitive Data with Azure Key Vault (Tom Kerkhove @ ITProceed)Securing Sensitive Data with Azure Key Vault (Tom Kerkhove @ ITProceed)
Securing Sensitive Data with Azure Key Vault (Tom Kerkhove @ ITProceed)
 
ITProceed 2015 - Securing Sensitive Data with Azure Key Vault
ITProceed 2015 - Securing Sensitive Data with Azure Key VaultITProceed 2015 - Securing Sensitive Data with Azure Key Vault
ITProceed 2015 - Securing Sensitive Data with Azure Key Vault
 
Toronto MuleSoft Meetup: Virtual Meetup #3
Toronto MuleSoft Meetup: Virtual Meetup #3Toronto MuleSoft Meetup: Virtual Meetup #3
Toronto MuleSoft Meetup: Virtual Meetup #3
 
Aws kms in 10 minutes
Aws kms in 10 minutesAws kms in 10 minutes
Aws kms in 10 minutes
 

More from Cloudera, Inc.

More from Cloudera, Inc. (20)

Partner Briefing_January 25 (FINAL).pptx
Partner Briefing_January 25 (FINAL).pptxPartner Briefing_January 25 (FINAL).pptx
Partner Briefing_January 25 (FINAL).pptx
 
Cloudera Data Impact Awards 2021 - Finalists
Cloudera Data Impact Awards 2021 - Finalists Cloudera Data Impact Awards 2021 - Finalists
Cloudera Data Impact Awards 2021 - Finalists
 
2020 Cloudera Data Impact Awards Finalists
2020 Cloudera Data Impact Awards Finalists2020 Cloudera Data Impact Awards Finalists
2020 Cloudera Data Impact Awards Finalists
 
Edc event vienna presentation 1 oct 2019
Edc event vienna presentation 1 oct 2019Edc event vienna presentation 1 oct 2019
Edc event vienna presentation 1 oct 2019
 
Machine Learning with Limited Labeled Data 4/3/19
Machine Learning with Limited Labeled Data 4/3/19Machine Learning with Limited Labeled Data 4/3/19
Machine Learning with Limited Labeled Data 4/3/19
 
Data Driven With the Cloudera Modern Data Warehouse 3.19.19
Data Driven With the Cloudera Modern Data Warehouse 3.19.19Data Driven With the Cloudera Modern Data Warehouse 3.19.19
Data Driven With the Cloudera Modern Data Warehouse 3.19.19
 
Introducing Cloudera DataFlow (CDF) 2.13.19
Introducing Cloudera DataFlow (CDF) 2.13.19Introducing Cloudera DataFlow (CDF) 2.13.19
Introducing Cloudera DataFlow (CDF) 2.13.19
 
Introducing Cloudera Data Science Workbench for HDP 2.12.19
Introducing Cloudera Data Science Workbench for HDP 2.12.19Introducing Cloudera Data Science Workbench for HDP 2.12.19
Introducing Cloudera Data Science Workbench for HDP 2.12.19
 
Shortening the Sales Cycle with a Modern Data Warehouse 1.30.19
Shortening the Sales Cycle with a Modern Data Warehouse 1.30.19Shortening the Sales Cycle with a Modern Data Warehouse 1.30.19
Shortening the Sales Cycle with a Modern Data Warehouse 1.30.19
 
Leveraging the cloud for analytics and machine learning 1.29.19
Leveraging the cloud for analytics and machine learning 1.29.19Leveraging the cloud for analytics and machine learning 1.29.19
Leveraging the cloud for analytics and machine learning 1.29.19
 
Modernizing the Legacy Data Warehouse – What, Why, and How 1.23.19
Modernizing the Legacy Data Warehouse – What, Why, and How 1.23.19Modernizing the Legacy Data Warehouse – What, Why, and How 1.23.19
Modernizing the Legacy Data Warehouse – What, Why, and How 1.23.19
 
Leveraging the Cloud for Big Data Analytics 12.11.18
Leveraging the Cloud for Big Data Analytics 12.11.18Leveraging the Cloud for Big Data Analytics 12.11.18
Leveraging the Cloud for Big Data Analytics 12.11.18
 
Modern Data Warehouse Fundamentals Part 3
Modern Data Warehouse Fundamentals Part 3Modern Data Warehouse Fundamentals Part 3
Modern Data Warehouse Fundamentals Part 3
 
Modern Data Warehouse Fundamentals Part 2
Modern Data Warehouse Fundamentals Part 2Modern Data Warehouse Fundamentals Part 2
Modern Data Warehouse Fundamentals Part 2
 
Modern Data Warehouse Fundamentals Part 1
Modern Data Warehouse Fundamentals Part 1Modern Data Warehouse Fundamentals Part 1
Modern Data Warehouse Fundamentals Part 1
 
Extending Cloudera SDX beyond the Platform
Extending Cloudera SDX beyond the PlatformExtending Cloudera SDX beyond the Platform
Extending Cloudera SDX beyond the Platform
 
Federated Learning: ML with Privacy on the Edge 11.15.18
Federated Learning: ML with Privacy on the Edge 11.15.18Federated Learning: ML with Privacy on the Edge 11.15.18
Federated Learning: ML with Privacy on the Edge 11.15.18
 
Analyst Webinar: Doing a 180 on Customer 360
Analyst Webinar: Doing a 180 on Customer 360Analyst Webinar: Doing a 180 on Customer 360
Analyst Webinar: Doing a 180 on Customer 360
 
Build a modern platform for anti-money laundering 9.19.18
Build a modern platform for anti-money laundering 9.19.18Build a modern platform for anti-money laundering 9.19.18
Build a modern platform for anti-money laundering 9.19.18
 
Introducing the data science sandbox as a service 8.30.18
Introducing the data science sandbox as a service 8.30.18Introducing the data science sandbox as a service 8.30.18
Introducing the data science sandbox as a service 8.30.18
 

Recently uploaded

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Recently uploaded (20)

MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

Hadoop Distributed File System (HDFS) Encryption with Cloudera Navigator Key Trustee

  • 1. 1© Cloudera, Inc. All rights reserved. Hadoop Distributed File System (HDFS) Encryption with Navigator Key Trustee Protecting Enterprise Data Hubs Luke Hebert, Customer Operations Engineer, Security SME
  • 2. 2© Cloudera, Inc. All rights reserved.©2014 Cloudera, Inc. All rights reserved. Data Security Requirements Protect data while preserving application choice Better alignment with key management policies Integrate with existing HSMs as part of KMI (optional) Data Protecting data in the cluster from unauthorized visibility InfoSec Concept: Compliance Key Trustee KMS & Key Trustee
  • 3. 3© Cloudera, Inc. All rights reserved. “Virtual safe-deposit box” for managing encryption keys or other Hadoop security artifact Navigator Key Trustee • Separates Keys from Encrypted Data • Centralized Management • Integration with HSMs from Thales, and SafeNet • Roadmap: Management of SSL certificates, SSH keys, tokens, passwords, Kerberos Keytab Files, and more
  • 4. © Cloudera, Inc. All rights reserved. Key Trustee Key Management Server Proxy (KMS) CDH Key Services
  • 5. © Cloudera, Inc. All rights reserved. • Acts as a broker between EDH and the backing Key Store. • Is an extension used by the hadoop-kms component. • Replaces the Java Key Store Key Provider with Key Trustee as the Key Store. • Allows CDH components to retrieve Encryption Zone Keys as required. • It has a single primary use case today. • Data Encryption at Rest within HDFS What is Key Trustee KMS ?
  • 6. © Cloudera, Inc. All rights reserved. • Implements a REST API which is utilized by components. • Provides Key Caching. • Provides a Key Pool to the NN. • Modifies the behavior of several components. • Handles retrieval of delegation tokens for jobs. • Uses SPNEGO to facilitate authentication when Kerberos is enabled. • Implements ACLs which protect key accessibility. • Allows for HA Communication with the Key Trustee Backing Key Store and other KMS Proxies. What does Key Trustee KMS Provide.
  • 7. © Cloudera, Inc. All rights reserved. Architecture How does it work?
  • 8. © Cloudera, Inc. All rights reserved.RESTRICTED -- DO NOT DISTRIBUTE © Cloudera, Inc. All rights reserved. Key Trustee Topology
  • 9. © Cloudera, Inc. All rights reserved. A Few Key Concepts. • Encryption Zone Key (EZKEY) • This key much like a mount key is associated with an encryption zone in HDFS. • Encrypted Data Encryption Key (EDEK) • This is an encrypted copy of a Data Encryption Key. • Data Encryption Key (DEK) • This is the real data encryption key used to encrypt data stored within a file, zone, or block device. This particular key concept is used in both Navigator Encrypt and HDFS Transparent Data Encryption (TDE).
  • 10. © Cloudera, Inc. All rights reserved. A Few Key Concepts.
  • 11. © Cloudera, Inc. All rights reserved. KMS Proxy Deployment considerations. • KMS Proxy Servers • Deployed as Service Role Instances within a Managed CDH cluster. • Should be on isolated and protected Hardware. • Should be installed on a clean Operating System. • Same requirements as CDH Components for Install. • Isolate from other services and avoid co-location. (Hardens Security) • Requires the KEYTRUSTEE parcel be installed. (As opposed to the KEYTRUSTEE_SERVER Parcel) • Multiple KMS Proxies supported without LB. • CDH Components internally enable the KMS client when configured.
  • 12. © Cloudera, Inc. All rights reserved. KMS Proxy Deployment considerations.
  • 13. © Cloudera, Inc. All rights reserved. KMS Proxy: High Level Overview ● Encryption occurs on the requesting client. ○ Data is encrypted before it lands on disk. ○ The KMS encrypts and decrypts specific key components. ○ The KMS does not encrypt content. ○ The KMS does not store keys.
  • 14. © Cloudera, Inc. All rights reserved. KMS Key Operation (Write) ● The EZ Key encrypts the data encryption keys (DEKs) that are used in turn to encrypt each file. ● DEKs are encrypted with the EZ key to form an encrypted data encryption key. (EDEK) ● The EDEK is stored on the NameNode via an extended attribute on the file. ● The EZ Key is stored on the backing Key Store (Key Trustee Server)
  • 15. © Cloudera, Inc. All rights reserved. ‹#›© Cloudera, Inc. All rights reserved. ACLs Controlling Access to Keys
  • 16. © Cloudera, Inc. All rights reserved. • Hadoop has no concept of a Key Admin. • Cloudera is creating a framework for Key Management based on roles. • Creating this role allows for better compliance. • Separating Key Management operations will ensure a separation of duties. • In order to build this framework an administrator must lay down the correct ACLs. • There are multiple classes of ACLs connected to the KMS. • The ACLs are implemented in the upstream Hadoop Core KMS. ACLs
  • 17. © Cloudera, Inc. All rights reserved. • There are 5 distinct ACL Classes available for use in the KMS. • hadoop.kms.acl.<op> • Controls permission to perform KMS level operations or access features. • hadoop.kms.blacklist.<op> • Controls permission to perform KMS level operations or access features. • key.acl.<key-name>.<op> • Controls permission to perform operations for a specific key. • default.key.acl.<op> • Controls permission to perform operations for keys that are not otherwise specified by key.acl.<key-name>.<op> • whitelist.key.acl.<op> • Controls permission to perform key operations across all keys. ACL Classes
  • 18. © Cloudera, Inc. All rights reserved. KMS ACL Flow © Cloudera, Inc. All rights reserved.
  • 19. © Cloudera, Inc. All rights reserved. • Key Access • In order to perform an operation, <OP>, on a key <KEY> a user • Must be allowed by <hadoop.kms.acl.OP> • Not disallowed by <hadoop.kms.blacklist.OP> • and allowed by any of the 3 conditions below. • <key.acl.KEY.OP> • <whitelist.key.acl.OP> • <default.key.acl.OP> if there is no <key.acl.KEY.OP> entry Allowing user access
  • 20. © Cloudera, Inc. All rights reserved. Troubleshooting How to get the information you need.
  • 21. © Cloudera, Inc. All rights reserved. • The KMS client cannot communicate with the server using the defined ports. • Deposits and retrievals fail. • The KMS or Key Trustee server is down or unable to handle incoming request. • Deposits and retrievals fail. • The HSM backing Key Trustee is unreachable or misconfigured. • Deposits and retrievals fail. • The server SSL certificates are invalid or expired. • Communication Between KMS and Key Trustee Server will timeout. • Low Entropy • Key operations will be slow or hang indefinitely. • Client registration will be slow or hang indefinitely. • /var/lib/kms-keytrustee is out of sync when using multiple KMS Proxies. • CDH component request for keys will result in random access to a subset of keys. • Transparent Encryption may randomly fail for different components. Common Issues
  • 22. © Cloudera, Inc. All rights reserved. Logs and places to look for errors. • Attempt to replicate the operation and capture stdout/stderr • Inspect messages. • Ensure the right auth mechanism is set for all components. (Kerberos/Simple) • Make sure zookeeper is working if you are in HA mode. • Look for low level hardware problems. • Logs on the kms client • /var/log/kms-keytrustee • /var/run/cloudera-scm-agent/process/<id>-keytrustee-KMS_KEYTRUSTEE • Logs on Key Trustee • /var/lib/keytrustee/logs/ • /var/run/cloudera-scm-agent/process/<id>-keytrustee_server-KEYTRUSTEE_ACTIVE_SERVER (Managed) • /var/run/cloudera-scm-agent/process/<id>-keytrustee_server- KEYTRUSTEE_PASSIVE_SERVER (Managed)
  • 23. © Cloudera, Inc. All rights reserved. ● The value returned. ○ An estimate of entropy available in the entropy pool. ● Low entropy. ○ Slow Key Operations ○ Key Generation Failures ○ Client Registration Failures ● Values below 500. ○ Considered a low entropy condition. ○ Requires injection of entropy from a source such as a DRNG, rngd, or haveged. Checking Entropy Available [root@server-1 ~]# cat /proc/sys/kernel/random/entropy_avail 3711
  • 24. © Cloudera, Inc. All rights reserved. Verifying server availability [root@kms-01 ~]# curl -kv https://keytrustee-1.vpc.cloudera.dev:11371/?a=fingerprint * About to connect() to keytrustee.cloudera.dev port 11371 (#0) … > GET /?a=fingerprint HTTP/1.1 … * Closing connection #0 4096R/A71981C5F9E3F70C6484C5244BBC98C031F593DA ● Basic test of service availability from the client to the server. ○ A fingerprint return should indicate that the Key Database and Server are online. ● If the certificates are self-signed ○ You may need to use the -k flag in order to disable certificate validation. ● Operations are performed over HTTP you can increase the verbosity of curl. ○ When using -v you can inspect the server responses and headers.
  • 25. © Cloudera, Inc. All rights reserved. Verify KMS Fingerprint (gpg) [root@kms-01 ~]# gpg --homedir /var/lib/kms-keytrustee/keytrustee/.keytrustee --fingerprint gpg: WARNING: unsafe ownership on homedir `/var/lib/kms-keytrustee/keytrustee/.keytrustee' /var/lib/kms-keytrustee/keytrustee/.keytrustee/pubring.gpg ---------------------------------------------------------- pub 4096R/31F593DA 2015-08-25 Key fingerprint = A719 81C5 F9E3 F70C 6484 C524 4BBC 98C0 31F5 93DA uid keytrustee (keytrustee Server Key) <keytrustee@keytrustee-1.vpc.cloudera.com> sub 4096R/D6017A05 2015-08-25 pub 4096R/E3D4EDD2 2015-08-25 Key fingerprint = 359B BCFF 965C FC18 2F5A A107 F15C 6514 E3D4 EDD2 uid keytrustee (client) <kms@kms-1.vpc.cloudera.com> sub 4096R/193290BB 2015-08-25 [root@kms-01 ~]# Note: GPG Keyring used for Message Authentication, Privacy, Message Encryption and Identity.
  • 26. © Cloudera, Inc. All rights reserved. ● hadoop key list ○ Is the KMS Online. ○ Can hadoop access key material which is cached or otherwise. ○ Do you get a consistent list of keys returned from multiple attempts. ○ If you stop and start the KMS role can you still obtain key information. Basic Key Ops [root@server-1 ~]# hadoop key list Listing keys for KeyProvider: org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@5e026e6d mykey mykey2 [root@server-1 ~]# RESTRICTED -- DO NOT DISTRIBUTE
  • 27. © Cloudera, Inc. All rights reserved. ● hadoop key create mykey3 ○ Is the KMS Online. ○ Can hadoop create key material. ○ Is the HSM responding to Key Deposit request. ○ Is Key Trustee online. Basic Key Ops [root@server-1 ~]# hadoop key create mykey3 mykey3 has been successfully created with options Options{cipher='AES/CTR/NoPadding', bitLength=128, description='null', attributes=null}. org.apache.hadoop.crypto.key.kms.LoadBalancingKMSClientProvider@5457487e has been updated. RESTRICTED -- DO NOT DISTRIBUTE
  • 28. © Cloudera, Inc. All rights reserved. Thank you Questions? RESTRICTED -- DO NOT DISTRIBUTE