加密/解密集群上提交的java作业的服务帐户的密码

3zwtqj6y  于 2021-05-24  发布在  Spark
关注(0)|答案(0)|浏览(314)

我必须使用yarn cluster提交一个java应用程序,该应用程序使用apache beam和beam sql for business rules在这个作业中目前我正在使用openssl命令在linux机器上创建一个加密文件,我正在执行javajar。

openssl enc -aes-256-cbc -salt -in s3_nonprod.txt -out s3_nonprod.txt.enc

下面是我在属性文件中使用的解密命令的一些代码片段,以及我用来解密已经加密的密码文件的方法。


**command used in properties file --**  

S3_ENCRYPTION_PASSWORD=echo -n \"password\" | openssl enc -aes-256-cbc -d -in /home/encryption/s3_nonprod.txt.enc -pass stdin 2>/dev/null

**Method to decrypt password from the encrypted password file --**

public  String decrypteOpenSSLPassword(String decryptedCommand) throws IOException, InterruptedException  {

        ProcessBuilder processBuilder = new ProcessBuilder("bash", "-c", decryptedCommand);

        String password="";
        Process process = processBuilder.start();
                process.waitFor();
                 if (process.exitValue() == 0) {
                BufferedReader  bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
                password = bufferedReader.readLine();               

                 } else {

                        throw new StarBeamException("Error during decoding password! please verify the command");
                    }
                 return password;
    }

如果我不必使用yarn cluster来提交jar,那么上面的方法就像宝石一样工作,但是根据组织中的新规范,我需要使用spark yarn cluster(它部署在我们没有访问权限的中央linux机器上)来提交我的代码。
所以问题是,由于我无法访问部署了yarn的服务器,我没有地方放置加密文件,根据我当前的实现,我需要一种方法,这样我就不必管理该加密文件。
我需要你的帮助来解决这个问题,我怎样才能在jar中加密和解密密码,或者用任何其他的方法。
请询问是否以上没有很好的解释或任何更多的信息是必需的。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题