我们正在使用java开发一个hadoop应用程序,它将在aws emr上运行。应用程序将使用mongohadoop连接器连接到mongodb以检索输入数据集。处理完成后,结果将写回mongodb。
我们很难找到存储mongodb凭证的最佳解决方案,以便jar文件可以使用它们。
我们不能将db凭据直接存储在hadoop服务器上的属性文件中,因为我们正在使用aws emr,并且将按计划创建一个群集以运行作业,然后终止—我们的群集将不会全天候运行。另外,我们似乎不能创建hadoop ami的定制版本,然后让aws emr使用我们的定制ami来创建集群(请告诉我这是否可行?)
jar文件将位于s3上,因此我们不喜欢将密码存储在jar中嵌入的属性文件中。对s3 bucket的访问将受到iam角色的限制,但它仍然不是一种存储凭证的安全方法,jar只是放在s3上?
我们尝试将属性传递给java运行时,或者在bash脚本中设置应用程序变量,这些脚本在创建emr集群时作为引导操作运行,但是传递给引导操作的参数记录在emr控制台中,因此任何有权访问控制台的人都可以看到
有没有另一种方法我们没有考虑,或者我们必须接受,将jar文件存储在一个访问受限的bucket中是唯一可行的解决方案?
暂无答案!
目前还没有任何答案,快来回答吧!