LoginSignup
2
2

More than 5 years have passed since last update.

embulk-encoder-pgp_encryption: 出力ファイルをPGPで暗号化するEncoder Plugin

Posted at

はじめに

Embulk は「(IN)データ→変換→(OUT)データ」なバッチ処理を簡単に実現するbulk data loaderです。

ファイルを暗号化して欲しいと言われたので暗号化Zipを使ったら、
鍵の漏洩リスクを減らしたいので gpg のような仕組みで暗号化鍵と復号化鍵を別々にしたいと言われることがあります。 orz

いまいち PGP とか GPG とかしっかりと理解していないのですが、公開鍵のみを用いてファイルを暗号化するencoder pluginを作りました(この表現が正しいのかも少し自信がない...)。
※ ちなみに署名とかしていないからかdecryptしたときに警告が出ます。微妙だ。

Version

  • Embulk: 0.7.4, 0.8.6

で動作確認しています。

Code

使い方

install

embulk gem install embulk-encoder-pgp_encryption

設定例

encoder plugin なので、 out の配下に設定を書きます。

config.yml
out:
  encoders:
    - type: pgp_encryption
      public_key_ring: ./sample/pubring.gpg
      key_name: mokemokechicken@example.com
  type: file
  path_prefix: ./path/to/output/data
  file_ext: gpg
  formatter:
    type: csv
  • public_key_ring: GPGなどの key ringファイルのPathを指定します
  • key_name: key ringの中のどの鍵を使うか指定します(省略時には最初にみつかった鍵を指定します)。この指定は完全一致ではなく、部分一致です。見つかった最初の鍵を使います。

メモ

public_key_ring の値

gpg --list-keys を実行したときに出てくるファイルへのPATHを指定します。 下記で言うと /Users/k_morishita/.gnupg/pubring.gpg になります。

% gpg --list-keys
/Users/k_morishita/.gnupg/pubring.gpg
-------------------------------------
pub   2048R/59E5A4C4 2016-03-08
uid                  Yamada Taro (test user) <mokemokechicken@example.com>
sub   2048R/3623FEBE 2016-03-08

decrypt

出力されたファイルは 下記のコマンドで decryptできる形式になります。

% gpg -d sample/result000.00.csv.gpg

次のユーザーの秘密鍵のロックを解除するには
パスフレーズがいります:“Yamada Taro (test user) <mokemokechicken@example.com>”
2048ビットRSA鍵, ID 59E5A4C4作成日付は2016-03-08

gpg: 2048-ビットRSA鍵, ID 59E5A4C4, 日付2016-03-08に暗号化されました
      “Yamada Taro (test user) <mokemokechicken@example.com>”
id,account,time,purchase,comment
1,32864,2015-01-27 19:23:49.000000 +0000,2015-01-27 00:00:00.000000 +0000,embulk
2,14824,2015-01-27 19:01:23.000000 +0000,2015-01-27 00:00:00.000000 +0000,embulk jruby
3,27559,2015-01-28 02:20:02.000000 +0000,2015-01-28 00:00:00.000000 +0000,"Embulk ""csv"" parser plugin"
4,11270,2015-01-29 11:54:36.000000 +0000,2015-01-29 00:00:00.000000 +0000,NULL
gpg: 警告: メッセージの完全性は保護されていません

gpg: 警告: メッセージの完全性は保護されていません と出力されるのが微妙な感じです。

さいごに

GPGとか懐かしい名前を久しぶりに聞いたなぁ・・・

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2