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

加密/解密群集上提交的Java作业的服务帐户密码,java,apache-spark,encryption,yarn,Java,Apache Spark,Encryption,Yarn,我必须使用Thread cluster提交一个Java应用程序,该应用程序在本作业中使用apache beam和beam sql作为业务规则。目前,我正在使用OpenSSL命令在执行Java jar的Linux机器上创建一个加密文件 openssl enc -aes-256-cbc -salt -in s3_nonprod.txt -out s3_nonprod.txt.enc 下面是我在属性文件中使用的解密命令的一些代码片段,以及我解密已加密密码文件时使用的方法 **command used

我必须使用Thread cluster提交一个Java应用程序,该应用程序在本作业中使用apache beam和beam sql作为业务规则。目前,我正在使用OpenSSL命令在执行Java jar的Linux机器上创建一个加密文件

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;
    }
如果我不必使用纱线集群来提交JAR,那么上述方法就像宝石一样工作,但是根据组织中的新规范,我需要使用SPARK纱线集群(,它部署在我们没有访问权限的中央Linux机器上)来提交我的代码

所以问题是,由于我无法访问部署了Thread的服务器,我没有地方放置加密文件,根据我当前的实现,我需要一种方式,这样我就不必管理该加密文件

我需要你们的帮助来解决这个问题,我怎样才能在JAR中加密和解密密码,或者用任何其他方法

请询问上述内容是否解释得不清楚或是否需要更多信息