【第149回】 Marketing Cloud における ファイル転送時の暗号化/復号化
Salesforce Marketing Cloud では、安全なデータエクスポートに備えて(👈️ これが主たる目的です)Automation Studio のファイル転送時に「公開鍵」(DE → FTP で使用)と「秘密鍵」(FTP → DE で使用)を使った「暗号化」と「復号化」を実現することができます。
Salesforce Marketing Cloud で RSA キーペアを使用するには「符号なし 4096 ビット RSA キーペアを .ASC ファイル形式」で作成する必要があります。
■ RSA キーペアの作成方法
それでは、以下で Windows PC を使っての RSA キーペアの作成方法を紹介します。これを実現するには、いくつかのソフトウェアがあると思いますが、今回は、Gpg4win / Kleopatra ソフトウェアを使用します。
私が紹介すると言っても、Gpg4win / Kleopatra ソフトウェアの設定の手順は、以下のリンクが大変参考になります。このリンクを参考に、ツールをインストールして、証明書を作成するところまで進めて下さい。
・・・ 数分後 ・・・・
いかがでしたでしょうか?
下記のような画面まで来れましたでしょうか?
途中出てきたパスフレーズ(任意のパスワード)は Marketing Cloud の「キー管理」に登録する際も使用しますので、保管しておいて下さい。
ここまで設定ができたら、証明書(表示されている行)をクリックすると、「エクスポート」のボタンが押せるようになるので、エクスポートを実行してください。ここで、ローカルに保存されるファイルが「公開鍵」(暗号化用)です。ファイル名に「public」が入っていると思います。
続いて、証明書を右クリックして「Backup Secret Keys」をクリックします。ここで保存されるファイルが「秘密鍵」(復号化用)です。ファイル名に「secret」が入っていると思います。
これらの RSA キーペアが用意できたら、Marketing Cloud のセットアップの「キー管理」へ移動して下さい。
■「キー管理」への登録方法
セットアップの「キー管理」で 2 種の鍵の「作成」(登録)を行います。
① 公開鍵の登録(DE → FTP で使用)
キータイプで「非対称」を選択します。キーの箇所に「公開鍵」(拡張子:asc)を登録します。Private Key のチェックは不要です。設定が完了したら
保存して下さい。
② 秘密鍵の登録(FTP → DE で使用)
① と同様、キータイプは「非対称」を選択します。キーの箇所に「秘密鍵」(拡張子:asc)を登録します。今回は Private Key にチェックを入れます。すると、パスフレーズ(パスワード)を登録する窓が現れますので、Gpg4win / Kleopatra で作成したパスフレーズを入力して保存して下さい。
■ ファイルの暗号化の手順
それでは最後に、Automation Studio のファイル転送アクティビティを使って、暗号化と復号化を試してみます。まずは、暗号化です。
以下のようなデータエクステンションを作成します。
同時に、後のインポート用に、これと同じ構成の空のバージョンも上記のデータエクステンションをコピーして作成しておきます。
それでは、Automation Studio でデータ抽出アクティビティとファイル転送アクティビティでデータを SFTP へ移動します。
データ抽出アクティビティは通常のデータエクステンション抽出と同じように、以下のような形になるかと思います。ファイルの命名パターンには、必ず .csv を付けて下さい。
続いて、ファイル転送アクティビティですが、こちらも 1 ページ目は通常通り、「Safehouse からファイルを移動」を選択します。
続いて、2 ページ目ではファイルの命名パターンはデータ抽出アクティビティのまま「DataExtension.csv」と命名します。ここでは「.pgp」などの拡張子は追加しないように注意して下さい。転送の設定の箇所では「ファイルの暗号化」にチェックを入れて、今回は、ラジオボタンで「PGP」を選択します。カスタム公開キーのプルダウンでは、先ほど作成した公開鍵の名前が表示されますので、そちらを選択します。
以上の設定ができたら、オートメーションを 1 回実行してみます。
すると、SFTP のインポートディレクトリに「DataExtension.csv.pgp」というファイルが置かれました。暗号化の成功です。
■ ファイルの暗号化の手順
それでは、上記の暗号化されたファイルを復号化します。復号化をするには、再びファイル転送アクティビティを構成します。今回は、ファイルの管理側を選択します。
ここで 1 点、注意点を記載します。
上の図はデータの流れになりますが、復号化する際の「ファイルの管理」選択後のファイルの出力先が「SFTP のインポートディレクトリ」になっている場合があります。(画面上でどちらになっているかは確認できません。)
この場合は、テクニカルサポートにケースを上げて、上記の図のように、デフォルトの「ファイルの管理」の出力先を「Safehouse ディレクトリ」に変更した方が良いです。(👈️「重要」と書いてある部分に記載があります。)
なぜなら、結果的に SFTP 上に CSV ファイルが置かれてしまうからですね。よりセキュアな Safehouse でファイルが出力されるように設定しましょう。
続いて、2 ページ目では、ファイルの命名パターンを記入します。ここでは「.csv」の後ろに「.pgp」を記載して下さい。そして、ファイルの暗号化解除にチェックを入れて、カスタマープライベートキーのプルダウンに先ほど設定した「秘密鍵」が表示されるので設定します。
この設定が終わりましたら、一度、この復号化のファイル転送アクティビティを実行します。すると、前述した通り、私の環境では Safehouse ではなく、SFTP インポートディレクトリに出力されてきました。一旦、成功です。
あとは、こちらを一番最初で作成した空のデータエクステンションにインポートして、データが同じものになるか確認してみます。
インポートアクティビティでは、以下のように、ファイルの場所として「SFTP インポートディレクトリ」を選択します。
構成後、このインポートアクティビティを一回実行します。データのインポート先は、先ほどコピーで作成した空の「DataExtension_PGP」です。
すると、上記の通り、データが復号化されてインポートされてきました。成功です。全体の 4 つのアクティビティも通して実行できるか、念の為チェックして下さい。
ちなみに Marketing Cloud では、PGP(Pretty Good Privacy)の他に、GPG(GNU Privacy Guard)での暗号化と復号化にも対応できます。
これは単純に暗号化するときに、GPG のラジオボタンを選択すれば「gpg」の拡張子でインポートディレクトリ上にファイルが生成されてきますので、復号化する際のファイル命名パターンで「DataExtension.csv.gpg」と記載してあげて下さい。PGP の場合と流れは全く同じで、GPG 専用の鍵が必要とかではなく、PGP の時に登録したキーペアで PGP も GPG も処理できます。
PGP と GPG の違いに関しての詳しいことは、私も素人で理解していませんので、下記のリンクをご確認下さい。
今回は以上です。