[ 
https://issues.apache.org/jira/browse/HADOOP-11862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14506581#comment-14506581
 ] 

Arun Suresh commented on HADOOP-11862:
--------------------------------------

[~dengxiumao], technically KMS is a proxy for an actual key provider, that, in 
addition to creating/storing/deleting the keys, generates EDEKs for keys and 
decrypts them to corresponding DEKs. It also caches the keys in memory. It 
delegates the Key store/retrieve/delete operations to a backing keyprovider 
specified by the *hadoop.kms.key.provider.uri* specified in the *kms-site.xml* 
conf file. The only concrete implementation (shipped with hadoop) of a 
KeyProvider is currently the {{JavaKeyStoreProvider}}.

Consider the following deployment scenario :
# *KMS1* configured with *hadoop.kms.key.provider.uri* as "jcek://file@...". 
and thus will delegate to a {{JavaKeyStoreProvider}}
# *KMS2* configured with *hadoop.kms.key.provider.uri*  as "kms://http@KMS1.." 
and thus will delegate Key create/store/rollover/delete operations to KMS1 but 
will provide generate/decrypt operations. It also caches the Keys for faster 
access
# *KMS3* ALSO configured with *hadoop.kms.key.provider.uri*  as 
"kms://http@KMS1.." and thus will, like KMS2 delegate Key 
create/store/rollover/delete operations to KMS1 but will provide 
generate/decrypt operations.

Now if we set the *hadoop.security.key.provider.path*  to the special 
loadbalancing url : "kms://http@KM1_HOST;KMS2_HOST:16000/kms", then all 
requests will be loadbalanced across KMS2 and KMS3 and keys will be shared.

> Add support key share across KMS instances for KMS HA
> -----------------------------------------------------
>
>                 Key: HADOOP-11862
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11862
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: kms
>    Affects Versions: 2.6.0
>            Reporter: dengxiumao
>              Labels: kms
>
> The patch [HADOOP-11620|https://issues.apache.org/jira/browse/HADOOP-11620] 
> only supports specification of multiple hostnames in the kms key provider 
> uri. it means that it support config as:
> {quote}
> <property>
>  <name>hadoop.security.key.provider.path</name>
>  <value>kms://http@[HOSTNAME1];[HOSTNAME2]:16000/kms</value>
> </property>
> {quote}
> but HA is still not available, keys can not share across KMS instances, if 
> one of KMS instances goes down, Encrypted files, which encrypted by the keys 
> in the KMS,  can not be read.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to