初めに
以前投稿したこちらの記事は、プロトコルは HTTPS でした。SFTP でやり取りしたかったので良いサービスがないか探してみたところ、Transfer for SFTP というサービスによって実現できることがわかりました。こちらのサーバー作成から接続手順について書きました。
Transfer for SFTP
-
AWS ストレージサービスとの間でファイルを転送するためのセキュアな転送サービス
-
以下の AWS ストレージサービスとの間でデータの転送をサポート
- S3
- EFS
-
次のプロトコルによるデータ転送をサポート
- SFTP
- FTPS
- FTP
サーバー作成手順
SFTP を選択します。
「サービスマネジメント」を選択します。
「パブリックアクセス可能」を選択します。
「Amazon S3」を選択します。
ログ記録用に「新しいロールの作成」を選択します。暗号化アルゴリズムはデフォルトのものを選択します。
「サーバーホストキー」は空のまま「次へ」を選択します。
以下のようにサーバーが立ち上がりました。
ユーザー作成手順
サーバーにユーザーを登録します。今立ち上げたサーバーを選択し「ユーザーを追加」を選択します。
次のような画面に遷移しますので、別タブでこのユーザーの IAM ロールを作成します。
ユースケースには「Transfer」を選択します。
ポリシーは 「AmazonS3FullAccess」を選択し、ロールを作成します。
先ほどのユーザー作成画面に戻り、任意のユーザー名を入力し、「ロール」には先ほど作成したロールを選択します。ユーザーに適用する「ポリシー」は「なし」を選択します。ログイン後のホームディレクトリは接続したい S3 バケットを選択します。オプションでログイン後のフォルダを選択することができます。今回は空のまま進めます。
SSH で接続するための公開鍵と秘密鍵を作成するために EC2 インスタンスを起動します。鍵が作成できればよいので、ローカルマシンでも構いません。以下のコマンドを実行します。
ssh-keygen -P "" -m PEM -f transfer_key
transfer_key
という秘密鍵と transfer_key.pub
という公開鍵がカレントディレクトリに作成されます。秘密鍵には pem
という拡張子を付けておき、ローカルフォルダに格納します。秘密鍵は作成したSFTP サーバーにログインする際に必要になります。
mv transfer_key transfer_key.pem
公開鍵の中身を丸ごとコピーします。
コピーした公開鍵の中身を「SSH パブリックキー」に貼り付けます。その後「追加」を選択するとユーザー作成完了です。
SSH 接続手順
サーバーのエンドポイントをコピーします。
winSCP を起動し、コピーしたエンドポイントを「ホスト名」に貼り付けます。「ユーザー名」には作成したユーザー名を入力します。パスワードは空のままにします。「設定」を選択します。
ローカルフォルダに保存した秘密鍵を選択します。鍵の変換には「OK」を選択します。
以下の確認ポップアップ画面が出ますが、「はい」を選択します。
以下の警告が出ますが、「はい」を選択します。
接続に成功しました。
参考記事