PircDef commented on pull request #1968:
URL: https://github.com/apache/accumulo/pull/1968#issuecomment-806080969


   > With both of these, the main point is that there is only ever a single 
crypto service for the system. However, the functionality of that service is 
capable of providing crypto services for multiple tables and/or the WAL. Your 
change just relocates the implementation into inner classes, but they are still 
effectively separate classes that are configured separately, meaning separate 
authorities for managing the file-based crypto.
   
   One of the goals for the crypto service in 2.0 was to make it more modular. 
Admins should be able to replace crypto services as necessary. Any new service 
needs to be capable of decrypting existing data. This means it needs to be able 
to decrypt any data encrypted by all prior services. As it stands now, all 
decrypters from all prior services would need to be part of the current crypto 
service. These changes remedy that by allowing prior crypto services to 
continue to provide their own decrypters. 
   
   There is a case to be made for table specific crypto services. Allowing for 
table-level configuration enables data owners to control the crypto for their 
data in their table. Consider a case where someone wants to bulk import 
existing RFiles into a new table in another Accumulo instance. Lets assume they 
use a custom crypto service. With table-level crypto services, they would need 
to provide their RFiles and crypto service in order to read the data without 
requiring any changes to existing crypto services.
   
   I think it is a good idea to explicitly specify the default crypto service 
used by Accumulo if a table is not specifically configured. This could allow 
for a single authority when appropriate. Would another option such as:
   
       instance.allow.table.crypto=false
   
   be a reasonable compromise? This would allow admins to explicitly enable or 
disable table-level crypto services. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to