Hi Arun, FileEncryptionInfo has both a getKeyName and a getKeyVersionName. What distinguishes the concept of keyname and key version. It appears to me that the keyname is closer to key alias than a key version. What is key version? Thanks much. Sitaraman
On Sun, Jun 14, 2015 at 2:07 PM, Sitaraman Vilayannur < vrsitaramanietfli...@gmail.com> wrote: > Hi Arun, > Thanks for your patience. I have a related question In my application i > need to encrypt/decrypt files > from the map reduce phase and i need to support key rotation. Can i > access the KMS from the map/reduce > phase to retrieve the key material from the key alias which i retrieve > from the FileEncryptionInfo class stored in the > extended attribute of the file(for decryption)? > Any pointers to how i can plug in various key providers such as java > keystore would be appreciated. > Is the toString method used to store the FileEncryptionInfo into the > extended attribute if so how is the > FileEncryptionInfo object retrieved back from the String. > Thanks again for your help. > Sitaraman > > On Sun, Jun 14, 2015 at 12:53 PM, Arun Suresh <asur...@apache.org> wrote: > >> Apologize if I wasn't clear >> >> > Is the EZ key version same as an alias for the key? >> yup >> >> > the EDEK along with the EZ key version is stored in the FIleInfo >> FileInfo contains both EDEK and EZ key version. The FileInfo (you can look >> at the *org.apache.hadoop.fs.FileEncryptionInfo* class for more info) >> object is stored as the value of the extended attribute of that file. >> >> > How is the KeyMaterial derived from the KeyAlias and where is the >> mapping between >> the two stored? Is it in the KMS? >> Yup. KMS extends the *org.apache.hadoop.crypto.key.KeyProvider* class. You >> can take a look at it or a concrete implementation such as >> JavaKeyStoreProvider for more information. >> >> Also, you should probably direct questions related to HDFS encryption to >> hdfs-dev@hadoop.apache.org >> >> Cheers >> -Arun >> >> >> >> On Sun, Jun 14, 2015 at 12:11 AM, Sitaraman Vilayannur < >> vrsitaramanietfli...@gmail.com> wrote: >> >> > Hi Arun, >> > Thanks for your response. >> > Could you explain this a bit further for me.... >> > Is the EZ key version same as an alias for the key? >> > The EDEK is stored in the extended attributes of the file and the EZkey >> > Version is stored >> > in the FileInfo why is the EZKey Version not stored in the extended >> > attributes too. >> > Where is the FileInfo object persisted? Is it in the NameNode? >> > How is the KeyMaterial derived from the KeyAlias and where is the >> mapping >> > between the two stored? Is it in the KMS? >> > Thanks much for your help in this. >> > Sitaraman >> > >> > On Sun, Jun 14, 2015 at 12:14 PM, Arun Suresh <asur...@cloudera.com> >> > wrote: >> > >> > > Hello Sitaraman, >> > > >> > > It is the EZ key "version" that is used to generate the EDEK (and >> which >> > is >> > > ultimately stored in the encrypted file's extended attributes >> > > '*raw.hdfs.crypto.encryption.info >> > > <http://raw.hdfs.crypto.encryption.info>*'), not really the the EZ >> key >> > > itself (which is stored in the directory's extended attribute ‘ >> > > *raw.hdfs.crypto.encryption.zone*’). >> > > >> > > Essentially, each file in a directory has a unique EDEK.. and an EDEK >> is >> > is >> > > generated with the current version of the directory EZ key. The EDEK >> > along >> > > with the EZ key version is stored in the FIleInfo. While decrypting, >> both >> > > these are passed on to the KMS which provides the client with the DEK >> > which >> > > can be used to decrypt the file. >> > > >> > > Hope this clarifies things. >> > > >> > > Cheers >> > > -Arun >> > > >> > > On Sat, Jun 13, 2015 at 9:51 PM, Sitaraman Vilayannur < >> > > vrsitaramanietfli...@gmail.com> wrote: >> > > >> > > > HDFSDataatRestEncryption.pdf says the following about key >> > > rotation..(please >> > > > see appended below at the end of the mail) >> > > > If the existing files do not have their EDEKs reencrypted using the >> new >> > > > ezkeyid, how would the existing files be decrypted? That is where is >> > the >> > > > mapping between files and its EZKey (for after key rotation >> different >> > > files >> > > > have different EZKeys)ids stored and how is it retrieved? >> > > > Thanks >> > > > Sitaraman >> > > > >> > > > Key Rotation >> > > > When the administrator causes a key rotation of the EZkey >> > > > in the KMS, the encryption zone’s EZkey >> > > > (stored in the encryption zone directory’s >> > > raw.hdfs.crypto.encryption.zone >> > > > extended attribute) gets the new keyid and version (only the version >> > > > changes). Any new files >> > > > created in the encryption zone have their DEKs encrypted using the >> new >> > > key >> > > > version. Existing >> > > > files do not have their EDEKs reencrypted using the new ezkeyid/ >> > > > version, but this will be considered as a future enhancement. Note >> > that a >> > > > key rotation only needs to causes a reencryption of the DEK, not a >> > > > reencryption of the underlying file. >> > > > >> > > >> > >> > >