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
をクリックする
public key をコピー
cat id_rsa_hogehoge.pub | pbcopy
画面にペースト
接続確認
$ 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
備考
昔はこういうサービスがなくて、割とゴリッとした技を使う必要がある印象だったが色々便利なものが増えているなと思った。