Ruby 如何管理停靠应用程序中的GPG密钥链?
我正在开发一个停靠的RubyonRails应用程序,该应用程序有一个工作人员,负责在将一系列文件加载到数据库之前对其进行解密 由于gpg密钥链不保证在部署之间包含私钥,因此工作人员必须下载私钥并每次导入Ruby 如何管理停靠应用程序中的GPG密钥链?,ruby,docker,keychain,gnupg,Ruby,Docker,Keychain,Gnupg,我正在开发一个停靠的RubyonRails应用程序,该应用程序有一个工作人员,负责在将一系列文件加载到数据库之前对其进行解密 由于gpg密钥链不保证在部署之间包含私钥,因此工作人员必须下载私钥并每次导入 require 'gpgme' def setup_gpg private_key = Tempfile.new(PRIVATE_KEY).binmode s3_client.get_object(bucket: config[:bucket],
require 'gpgme'
def setup_gpg
private_key = Tempfile.new(PRIVATE_KEY).binmode
s3_client.get_object(bucket: config[:bucket],
key: PRIVATE_KEY,
response_target: private_key)
GPGME::Key.import(private_key)
end
def decrypt_file(enc_file)
decrypted_filename = enc_file.path.sub('.gpg', '.csv')
File.open(enc_file) do |encrypted_file|
File.open(decrypted_filename, 'w+') do |decrypted_file|
crypto = GPGME::Crypto.new
crypto.decrypt(encrypted_file,
output: decrypted_file,
password: config[:passphrase])
return decrypted_file
end
end
end
我正在使用与ruby中的gpg二进制文件进行交互
这种方法的问题是:
- 私钥保存在S3存储桶中
- 每次作业运行时都必须下载并导入私钥