このバージョンより、Embulk clientとserver間でTLSでの接続ができるようになりました。
設定方法 (クライアント)
まず、use_tls
オプションをtrueに設定してください。サーバ側が(クライアントにとって)既知のCA証明書でサインされた証明書を使っていれば、これだけでOKです*1。
exec: type: remoteserver hosts: ... use_tls: true
そうでない場合は、CA証明書をca_cert_path
に追加してください
exec: type: remoteserver hosts: ... use_tls: true ca_cert_path: path/to/ca.cert.pem
クライアント認証が必要な場合、クライアント証明書と秘密鍵がセットになったPKCS12ファイルのパスとパスワードをcert_p12_file
で指定してください。
exec: type: remoteserver hosts: ... use_tls: true cert_p12_file: path: path/to/cert/client.p12 password: xxxxx
設定方法 (サーバ)
EmbulkサーバをTLSの終端にする場合*2、以下の環境変数を設定してサーバを起動してください
USE_TLS=true
: TLS接続を有効にするREQUIRE_TLS_CLIENT_AUTH=true
: クライアント認証を有効にするCERT_P12_PATH
,CERT_P12_PASSWORD
: サーバ証明書と秘密鍵のペアのPKCS12ファイルパスとパスワードCA_CERT_PATH
: CA証明書のパス。クライアント証明書が(サーバにとって)未知のCA証明書でサインされてる場合に必要
例えばdocker-composeで設定する場合以下のようになるかと思います
version: '3' services: server: image: kamatama41/embulk-executor-remoteserver ports: - "30001:30001" volumes: - ./certs:/root/certs environment: USE_TLS: "true" REQUIRE_TLS_CLIENT_AUTH: "true" CERT_P12_PATH: /root/certs/embulk-server.local.p12 CERT_P12_PASSWORD: xxxxx CA_CERT_PATH: /root/certs/ca.cert.pem