
【第152回】 Marketing Cloud SFTP ログインの公開鍵認証について
少し前に書きました「Marketing Cloud における ファイル転送時の暗号化/復号化」が大変好評頂けました。
そこで、今回は Marketing Cloud のセキュリティシリーズ第 2 弾として、SFTP ログインの公開鍵認証について、記事にまとめてみます。
ちなみに SFTP ログインにはこの公開鍵認証の他、パスワード認証があり、このパスワード認証の方がデフォルトとなっているので、通常はそちらを使用してログインされているものと思います。
公開鍵認証では SSH(セキュアシェル、Secure Shell)キーペア(公開鍵と秘密鍵)を使って、ログイン認証することになります。もう少し分かりやすく言うと、秘密鍵が保管(保持)されている端末でしか、FTP クライアントにアクセスできなくなります。
また、パスワードのように見知らぬ誰かに特定されにくいという面や、サーバー側には公開鍵しか登録しませんので、ログイン認証ための情報が流出するというリスクも低いです。これらの点から、よりセキュアなログイン認証方法であると言えます。
Salesforce Marketing Cloud の SFTP のログイン認証においては、以下の 4 つの認証オプションが選択できます。

それでは、早速 SSH キーペアの作成のところから手順を追ってみましょう。
■ PuTTYgen を使用した SSH キーペアの作成
Salesforce Marketing Cloud 公式では、ssh-keygen や PuTTYgen などのサードパーティーツールを使用して、SSH キーペア(公開鍵と秘密鍵)を作成してくださいと推奨されています。
ちなみに、Mac をお使いの場合は、SSH クライアントソフトが標準装備されていますので、ターミナルで簡単な作業をすればキーペアが完成します。以下を参考にして作成して下さい。
Marketing Cloud セットアップの「キー管理」に公開鍵を登録する場合、PEM 形式で登録する必要があります。上の方法でキーペアを生成した場合は、PUB 形式で公開鍵が生成されるので、以下のコマンドを使って PUB 形式から PEM 形式に変換してください。以下は「id_rsa.pub」を「ssh_key.pem」 に変換している例です。
ssh-keygen -e -f id_rsa.pub -m ssh2 > ssh_key.pem
今回の記事は、Windows PC で「PuTTYgen」を使った説明を行います。それでは、まず、PuTTYgen をインストールしましょう。以下のサイトでダウンロードできます。
下にスクロールすると、以下の「install the PuTTY」という文字がリンクになっているので、そちらをクリックします。

その後、インストールを開始して下さい。各種設定はデフォルトのまま進めてしまって問題ないです。





インストールが完了したら、PuTTY フォルダの中にある「PuTTYgen」を選択します。

このツールで設定する上で、以下の 2 つに注意して下さい。
① 4096 ビットの鍵長が推奨(最小 2048 ビットの鍵長)
② OpenSSH2 PEM 形式の RSA キーであること
まず、① の 4096 ビットの鍵長(かぎちょう)に関してですが、こちらは右下で設定ができます。「4096」と入力しましょう。

続いて、② の RSA のキータイプに関しては、すでにデフォルトで「RSA」が設定されていますので、ラジオボタンをそのまま「RSA」にしておいて下さい。

(参考)
現行のバージョン:PPK バージョン 3 が、古い FTP クライアントのバージョンに適用されず、「Unable to load key file "new.ppk" (PuTTY key format too new)」のようなエラーメッセージが出る場合があります。この場合、バージョン 2 でも作成できますので、必要があれば、以下の手順に従って下さい。FTP クライアント自体が最新のバージョンになっていれば、バージョン 3 のままで対応可能なはずです。


さて、ここまで設定できたら「Generate」をクリックします。

鍵の生成が始まりました。ここで注目頂きたいのが「PuTTY ツール上でマウスで適当に動かして下さい」という趣旨のことが書いてありますので、適当にマウスをツール上で動かして下さい。そうしないと生成が進みません。不思議な仕様ですね。

鍵の生成が完了し、画面が切り替わると FTP クライアントで秘密鍵による署名を実行する際のパスフレーズが入力できます。このパスフレーズは必須ではありません。設定するかどうかはお任せします。今回はパスフレーズ有りのパターンで設定します。
パスフレーズを設定すると、FTP クライアントでログインする度に、パスフレーズを手入力することが必要となります。

最後に生成された公開鍵と秘密鍵を保存します。公開鍵を保存する場合は以下をクリックして下さい。

今回は「ssh_key_public」と名付けました。保存しても拡張子は付きませんが拡張子は不要です。

続いて、秘密鍵を保存します。以下をクリックして下さい。

今回は「ssh_key_secret」と名付けました。こちらは自動的に拡張子「.ppk」が付きます。

SSH キーペア(公開鍵と秘密鍵)の作成手順は以上になります。
■「キー管理」の登録方法
続いて、Marketing Cloud セットアップで「キー管理」へ移動します。新規作成で、キータイプで「SSH」を選択します。

続いて、「名前」を決めたら「キー」の箇所で、先ほど作成した「公開鍵」を選択します。拡張子は付いていないままで問題ありません。この名前は後ほど、どの鍵を使うかを選択する際に表示されますので、分かりやすい名前に設定して下さい。

最後に「Public Key」にチェックマークを入れたら「保存」します。

キーを保存する際に Object Reference Not Set to an Instance of an Object というエラーが発生した場合は、以下のヘルプより解決して下さい。
■ FTP ユーザーの設定について
続いて、FTP ユーザーの設定を行います。
今回は、すでに作成済みの FTP ユーザーに登録する流れで説明します。新規作成の場合も、新規作成のフロー中に同様の設定画面が表示されますので、同じように作業して下さい。
Marketing Cloud セットアップで「FTP アカウント」へ移動します。該当の FTP ユーザーの右端のプルダウンを選択し、「Manage SSH Keys」を選びます。

続いて、前述した通り、4 つの認証オプションが選択できますのでお好きなものを選択します。今回は「SSH Key のみ」に変更します。そして右側の検索ボックスを選択すると、先ほど登録した公開鍵が呼び出されますので、選択して保存して下さい。

保存を押すと登録が開始されますので、更新ボタンを押して下さい。

下記のような状態になれば、登録完了です。こちら、直ぐに完了します。

■ FTP クライアントでのログイン方法について
最後に、FTP クライアントにおけるログイン方法についてです。今回は FileZilla における説明を行います。
もし、ご利用の FTP クライアントが WinSCP の場合、Google などで検索すれば簡単に見つかると思いますので検索してみて下さい。一応、参考になりそうなページを貼っておきます。
FileZilla を開いたら、左上のファイルから「サイトマネージャー」を選択します。
今後は、ログインする度にこの「サイトマネージャー」からログインすることになります。

新しいサイトをクリックしたら、名前を入力します。今回はデモ環境なので「Demo」と入力しました。

続いて、プロトコルを「FTP」から「SFTP」に変更し、ログオンタイプを「通常」から「鍵ファイル」に変更します。

あとは、ホスト、ポート(22)、ユーザー、鍵ファイルをそれぞれ入力して下さい。この「鍵ファイル」で先ほど作成した「秘密鍵」の方を参照します。入力後、「接続」ボタンを押します。
<注意点>
秘密鍵を選択した際に秘密鍵が置いてあるローカルの場所をパスで指定していることになります。ここで指定した場所に常に保管しておく必要があり、場所を変えるとアクセスが出来なくなりますので、事前に保管場所を決めておき、その場所を参照するようにして下さい。

すると、最後にパスコードの入力を求められます。(キー生成時にパスフレーズを設定していた場合のみ表示されます。)ここではキーペアを作成した時に入力した「パスフレーズ」を入力します。入力したら OK を押します。

すると、いつもの Marketing Cloud のディレクトリへアクセスすることができましたね。成功です。

いかがでしたでしょうか?
この SFTP の公開鍵認証の設定を行うのとセットで「データエクステンションのブラウザエクスポートの制限機能」(エクスポートメール許可リスト)を設定することで、よりセキュアになります。そちらは、また別のセキュリティシリーズの記事として書いてみたいと思います。
今回は以上です。
次の記事はこちら
前回の記事はこちら
私の note のトップページはこちら