こんにちは。CData Software Japan の色川です。
データをファイルとして交換する形のデータ連携は従来から様々な場面や構成で利用されていますが、業種・業界、構成や内容に依っては「ファイルの保護」と「通信経路の保護」を必要とする場面も多いかと思います。それぞれの保護について様々な方法や技術を選択する事ができますが、「ファイルの保護としてPGP で暗号化」を施し「通信経路の保護としてSFTP やFTPS の暗号化可能な通信プロトコルを利用」するのは、人気の高い構成の1つです。それぞれオープンスタンダードとして規格化されており、業種・業界を問わず、利用されている構成です。SaaS とのファイル連携を検討されているお客様から「PGP + SFTP を含めたファイル連携の一連の流れを自動化したい」と言うご相談は良く頂きます。
そこで、この記事では「CData Arc で、ファイルのPGP 暗号化とSFTP での連携を自動化する」方法をご紹介します。
CData Arc
CData Arc は、CData 製品の中で「自動化/Automate」を担うデータ連携ツールです。「B2B 連携をもっとシンプルに」をコンセプトに、ファイル連携 & DB 連携 & API 連携といったB2B 連携に必要なすべてをノーコード・ローコードでつなぐことができるプラットフォームです。
Arc のOpenPGP コネクタ
OpenPGP は公開鍵暗号を利用してデータを認証および暗号化するためのオープンスタンダードな技術規格(標準)です。Arc のOpenPGP コネクタはOpenPGP 規格に準拠したコネクタで、暗号化(エンコーディング)・復号化(デコーディング)、署名および検証をサポートします。OpenPGP コネクタは、Arc のMFT コネクタ(MFT Connectors)の1つです。
Arc のOpenPGP コネクタでは、利用するPGP 鍵の作成や、外部で作成・管理されているPGP 鍵のインポートもサポートしています。組織やサービスに依っては、セキュリティを高く保つための施策の1つとして、一定時限でのPGP 鍵の交換(ローテーション)を推奨しているケースもあるかと思いますが、これらの機能はそう言った場面でも便利です。
Arc のSFTP コネクタ
SFTP(SSH File Transfer Protocol / Secure File Transfer Protocol)は、暗号化プロトコルであるSSH を利用した信頼性の高い経路上でファイルの転送や管理を行うための通信プロトコルです。業種・業界を問わず、広く利用されています。
Arc のSFTP コネクタは、SFTP を利用したファイル連携におけるClient 側に必要な機能を提供するコネクタです。SFTP Server との間でのアップロードやダウンロード、カスタムコマンドの実行など、豊富な機能を提供しています。Arc では各プロトコルの中で利用できる暗号化アルゴリズムなどについても適切な構成が選択できるよう継続してアップデートされています。SFTP コネクタは、Arc のMFT コネクタ(MFT Connectors)の1つです。今回のシナリオでは利用しませんが、もちろんArc ではSFTP Server 側として必要な機能も提供しています。SFTP Server としての機能に関心のある方はこちらをご参照ください。
SFTP プロトコルでは認証方式としてパスワード認証や公開鍵認証など幾つかの認証方式がサポートされていますが、企業間やサービスでのファイル連携においては公開鍵認証の利用を必須と定めているケースも多いかと思います。Arc のSFTP コネクタではパスワード認証や公開鍵認証、パスワードと公開鍵での多要素認証やKeyboard Intateractive 認証(KBI)など、様々な認証方式をサポートしています。
Arc には、SFTP(や他のセキュリティ機構)で利用できる公開鍵(を含む証明書)の作成や管理、外部で作成・管理されている鍵(や証明書)のインポートもサポートしています。
なお、FTPS(File Transfer Protocol over SSL/TLS)は、FTP コネクタおよびFTP Server コネクタでサポートされています。
この記事のシナリオ
この記事では「外部から取得したファイルを、PGP で暗号化して、SFTP で送信(アップロード)するシナリオ」をご紹介します。より具体的には「外部(ローカルファイルシステム上)に用意したCSV ファイルを取得」して「OpenPGP コネクタで暗号化(エンコーディング)」して「SFTP コネクタで送信(アップロード)」する一連の流れを自動化します。
なお、この記事では「外部への送信対象データを用意する」部分を「File コネクタからの取得」としてシンプルに構成していますが、例えば、Salesforce やkintone にある任意のデータを取得して、指定されたフォーマットに編集・変換した後に、PGP + SFTP で送信する、と言ったシナリオの自動化も、Arc ならとてもシンプルに実現する事ができます。
連携フローの作成
このシナリオで作成する連携フローは以下のような流れになっています。
# |
コネクタ |
内容 |
1 |
File |
連携先のSFTP Server に送信(アップロード)するCSV ファイルを取得 |
2 |
OpenPGP |
1 で取得したファイルをOpenPGP 標準で暗号化(エンコーディング) |
3 |
SFTP |
2 で暗号化したファイルをSFTP Server に送信(アップロード) |
このシナリオではFTP Server に送信(アップロード)するCSV ファイルを以下のように準備しました。
それではArc のフローデザイナーで連携フローを作成していきます。
File コネクタ
最初に「連携先のSFTP Server に送信(アップロード)するCSV ファイルを取得」するFile コネクタを設定します。この連携フローのはじまり(起点)となるコネクタです。「受信」アクションで構成します。
CSV ファイルが取得できるように「パス」と「ファイルマスク」を指定します。
アウトプットタブの「受信」で、期待通りに受信(ファイルの取得)ができることを確認しておきます。
OpenPGP コネクタ
次に「File コネクタ取得したファイルをOpenPGP 標準で暗号化(エンコーディング)」するOpenPGP コネクタを設定します。
PGP では圧縮と暗号化を組み合わせて対象のメッセージ(ファイル)を保護することができます。この記事ではデフォルトの構成で指定しました。
この記事で、暗号化や署名に利用する鍵はArc の「キーをインポート」や「PGP キーを作成」機能で用意しました。それぞれの連携先との間で使用する鍵をArc から利用できるよう構成してください。
「変更を保存」すると、指定した鍵の情報(フィンガープリントや発行日、有効期限など)が表示され、誤設定の抑止をサポートします。
ここまでの流れで「File コネクタのアウトプットタブで受信」を実行すると「OpenPGP コネクタのアウトプット」では暗号化された状態になっていることが確認できます。
SFTP コネクタ
最後に「OpenPGP コネクタで暗号化したファイルをSFTP Server に送信(アップロード)」するSFTP コネクタを設定します。
連携先のSFTP Server にあわせて、リモートホストやポート、認証の方式や、アップロードパスなどを指定します。
これで「外部から取得したファイルを、PGP で暗号化して、SFTP で送信(アップロード)するシナリオ」のフローが完成しました。
連携フローの実行
作成したフローを実行して確認してみましょう。トリガー開始から「手動で受信」を実行します。起点となるFile コネクタのアウトプットタブから「受信」を実行することと同等です。
「詳細を表示」から表示できるメッセージビューアで、作成したフローの一連の実行状況を確認します。無事に一連の流れが成功していることが確認できます。
SFTP Server 側を確認すると、PGP で暗号化されたファイルが期待通りにアップロードされていることが確認できます。
まとめ
この記事では「CData Arc で、ファイルのPGP 暗号化とSFTP での連携を自動化する」方法をご紹介しました。
Arc を利用すれば「ファイルの保護」「通信経路の保護」を必要とするファイル連携部分のみでなく、連携対象のサービスやシステムからのデータ取得や編集・変換といった部分を含めた一連の流れを自動化することが可能です。一連の流れを自動化することにより、プロセスのなかで意図しないオペレーションミスが発生する機会も減り、運用面も含めたトータルでのセキュリティの向上に寄与します。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで270を超えるアプリケーションへの連携を実現できます。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
CData Arc - セキュアなデータ連携とマネージドファイル転送(MFT)
製品を試していただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
CData Software Japan - Support Form
この記事では CData Arc™ 2024 - 24.2.9013.0 を利用しています。
関連コンテンツ