目次
概要
AWSのAWS Transfer FamilyでSFTPサーバーを作成しS3にファイルをアップロードします。
事前にどこにも紐づいていないEIP(Elastic IPaddress)を取得しておきます。
SFTPを作成する
1.検索入力欄で「SFTP」と入力し、表示された「AWS Transfer Family」をクリックします。
※画面右上のリージョンを確認します。例:東京 ap-northeast-1
2.画面左の「サーバー」をクリックします。
3.画面右にある「サーバを作成」をクリックします。
4.有効にするプロトコルは、SFTPにチェックを入れ次へをクリックします。
5.IDプロパイダーのタイプは、サービスマネージドにチェックを入れ次へをクリックします。
5.エンドポイントのタイプは、VPCでホストにチェックを入れます。
6.VPC、public sunetのサブネットIDを選択し、IPアドレスは取得したEIPを選択します。
7.セキュリティグループは、ポート22が空いているセキュリティグループを指定します。
(ポート番号の22は、SSHとSFTPのポート番号です)
次へを押します。
8.ドメインは、Amazon S3を選択し、次へをクリックします。
9.ロググループは、新しいロググループを作成のままで、次へをクリックします。
確認の画面が表示され、「サーバーを作成」をクリックすると作成されます。
10.作成が完了すると一覧に表示されます。
SFTPユーザを作成
1.IAMでロールを作成します。
ロール名:sftpuser
ユースケースは、Transfer
ポリシーはAmazon S3 FullAccess
2.SFTPサーバーの一覧でサーバのリンクをクリックし、「ユーザーを追加」をクリックします。
3.ユーザ名を入力し、ロールを選択します。
4.ポリシーは無しで、ホームディレクトリはテスト用に作成していたものを指定し、test-sftp1は入力しました。
5.SSHパブリックキーを入力します。公開鍵と秘密鍵を作成し公開鍵を貼り付ける必要があります。Windowsですが、gitで作成しました。追加ボタンをクリックするとユーザが作成されます。
6.SFTPの一覧では以下のようにユーザが表示されます。
SFTPを使用してS3にファイルをアップロード
sftp -i 秘密鍵 ユーザー名@IPaddress |
1.Windowsのコマンドプロンプトを立ち上げます。
2.sftpのコマンドを入力してファイルをアップロードします。
d:\Test\aws-test>sftp -i test-sftp.key test-sftp1@IPアドレス
The authenticity of host 'IPアドレス' can't be established.
RSA key fingerprint is SHA256:ELOWCL6i8EzafmAoXqOYmp7MU3X481TNx+PmDlbNnRY.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Warning: Permanently added 'IPアドレス' (RSA) to the list of known hosts.
Enter passphrase for key 'test-sftp.key':
Connected to IPアドレス.
sftp> put testfile1.txt
Uploading testfile1.txt to /test-s3-data-1122/test-sftp1/testfile1.txt
testfile1.txt 100% 12 0.7KB/s 00:00
sftp> ls
testfile1.txt
sftp> get testfile1.txt
Fetching /test-s3-data-1122/test-sftp1/testfile1.txt to testfile1.txt
/test-s3-data-1122/test-sftp1/testfile1.txt
sftp>exit
8行目のputは、ローカルのファイルをS3にアップロードしています。
11行目のlsは、ファイルの一覧を表示しています。
13行目のgetは、ファイルをダウンロードします。
3.S3にファイルがアップロードされました。
関連の記事