times-kzm

life log

SFTP接続でS3にファイルをアップロードする

AWS Transfer Family というサービスを使用する。

下記の設定を行うことができ、接続用endpointが発行される。ざっくり、普段作成するS3接続用のIAMがSFTP接続ユーザーに変わり、SFTPプロトコルで操作できるというイメージ。

  • sftpログイン用のユーザーを作成
  • ssh pub key登録
  • role 登録
  • home directory (s3 backet) を設定

設定の方法はググればいくらでも出てくるので省略する。

今日はパスワードなしのssh keyに変更してほしいということだったので作業した。

ついでに作業内容をメモする

ssh keyを登録する

パスフレーズなしのssh key作成

下記コマンドを実行

ssh-keygen -t rsa -b 4096 -C 'hogehoge'
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hogehoge/.ssh/id_rsa): ./id_rsa_hogehoge
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./id_rsa_hogehoge.
Your public key has been saved in ./id_rsa_hogehoge.pub.
The key fingerprint is:
SHA256:hogehogexxxxx hogehoge
The key's randomart image is:
+---[RSA 4096]----+
xxxxxxxxxxxxxxxxxxxxxx
+----[SHA256]-----+

AWS Console から public keyを登録

下記の画面から Add SSH public key をクリックする

f:id:ariteku:20200621185914p:plain

public key をコピー

cat id_rsa_hogehoge.pub | pbcopy

画面にペースト f:id:ariteku:20200621190112p:plain

接続確認

$ sftp -i id_rsa_hogehoge hogehoge@xxxxxxxxxx.server.transfer.ap-northeast-1.amazonaws.com

Connected to xxxxxxxxxxx.server.transfer.ap-northeast-1.amazonaws.com.
sftp> ls
test_file

接続してファイルをlsできているので ok

備考

昔はこういうサービスがなくて、割とゴリッとした技を使う必要がある印象だったが色々便利なものが増えているなと思った。