Github user rconline commented on the issue:

    https://github.com/apache/zeppelin/pull/1315
  
    @jongyoul let me try to take a step back and try to explain.
    
    Zeppelin is going to be used for various use cases, some of which will 
involve HDFS - Hive/Spark/Phoenix/Hbase etc, some use cases will also need 
support for non-HDFS such as Postgres/Mysql etc. 
    
    **Problem** - all of these end systems may require users to store 
passwords. Currently in zeppelin there are two locations for storing these 
passwords - 1. shiro.ini for AD passwords and 2. interpreter.json for the rest 
of the data systems. These passwords are stored in clear text as of now. 
    
    **Solution** - Encrypt the password and store in a file that can be read 
only at runtime, by zeppelin process to connect successfully. Question is 
where? Either on the zeppelin host system or hdfs where big-data users are akin 
to storing passwords. JCEKS is a java supported concept and has worked well for 
most users, and therefore can be used. Creating a .jceks file is possible on a 
host, 
    `jceks://file/tmp/test.jceks`, whereas on HDFS the user may have to connect 
to hdfs and then create the file such as 
`jceks://[email protected]/my/path/test.jceks`, when the password is being 
stored on hdfs. 
    
    At this point in time we have solved the problem for not storing passwords 
in Shiro.ini, which can be stored at the zeppelin host itself. However we have 
to improve this solution and make it work for the rest of the use cases and 
that's where Credential API comes into play. 
    
    Credential API is a generic solution which allows users to create password 
files for both of the cases - on the host and hdfs. Needless to point out that 
this has been used across Knox, which is a good standard for security. 
    
    Please let me know if this makes sense, or if you have any more questions. 



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to