結論
IAMの信頼関係が間違っている可能性が高いです。
IAMでAWS Transfer for SFTP 用に作ったRoleを確認して信頼されたエンティティがtransfer.amazonaws.comになっていることを確認しましょう。
EC2でRoleとか作ってしまうとここが違うので権限が割りてられなくてConnection Closedになります。
気づいた経緯
SGとか?
Publicで作っていれば、外部からアクセスできる。SGの設定はない。
(VPCの場合どうなるのかよくわかってないです)
社内のセキュリティツールが悪さをしている?
EC2インスタンスを立ててそこからsftpしてみたらConnection closedなので関係ない
SSH鍵がおかしい?
sftp -v -i ~/.ssh/id_rsa sftp-user@sftp-server
でセッションを追ってみたところ、
debug1: Authentication succeeded (publickey).
という記述があるので認証は成功している。
その後
Transferred: sent 2900, received 2924 bytes, in 2.3 seconds
Bytes per second: sent 1282.7, received 1293.3
debug1: Exit status 1
Connection closed
で異常終了しているので、ログイン後のAWSへのアクセスで問題がありそう。
IAMの権限がたりない?
Admin権限にしてみたが、やはりConnectionclosed
AWS Transfer for SFTP のログ
ログ自体が存在しない。。。
あれ?もしかしてまったくIAMの権限が渡ってない?
あ、もしかして、AWS Transfer for SFTP 用のサービスって存在する? した、、、すいません、、、EC2で作ってました、という落ちでした。我ながら恥ずかしい。
最後に
AWS Transfer for SFTP の良い略称知っている人がいれば教えて下さい。