0
0

AWS Transfer Family で SFTPサーバーを起動してコンソールから接続する例

Last updated at Posted at 2024-07-05

STEP 1. AWS S3 のバケットを作成しておく

SFTPサーバーのファイル保存先は選択できるが、デフォルトはS3なので、まずはバケットを作成しておく

この例ではバケット名を this-is-the-example-bucket とする

CleanShot 2024-07-05 at 13 32 10@2x

バケットのパブリックアクセスは全てブロックしたままで良い

STEP 2. SFTPサーバーを作成する

CleanShot 2024-07-05 at 13 22 33@2x

(途中にいくつかの画面が表示されるが、デフォルトのまま進む)

デフォルトのままS3を選択する

CleanShot 2024-07-05 at 13 23 52@2x

サーバー作成時にはまだ具体的なS3バケットは選択できない

STEP 3. ロールを作成する

SFTPユーザが利用するロールを作成する

ユースケースから選ぶと簡単だが、権限が広いので実利用の場合は注意が必要そう

CleanShot 2024-07-05 at 13 59 14@2x

ポリシーの選択

いろんなポリシーの候補が表示されるが、以下を選んでおく

ここではテストのため広い権限のポリシーを指定するが、実運用ではもっと権限を絞るべし

  • AmazonS3FullAccess
  • AWSTransferFullAccess

信頼関係

ユースケースからのロール作成では、以下の信頼関係も最初から設定されている

サービスに使用されるすべてのロールは、transfer.amazonaws.com を信頼する必要があります。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "transfer.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

STEP 4 . SFTPユーザーの作成

AWSユーザーとは全く別の、SFTPサーバーへの接続用ユーザを作成する

local でユーザ用の鍵を作成する

鍵の作成

ssh-keygen -f sftp_example -N ''

生成された公開鍵のファイル内容をコピーするなどして控えておく

cat sftp_example.pub

AWSでサーバーのユーザーを登録する

基本項目

  • ここでS3バケットを選ぶ項目がある
  • さっき作ったロールを指定する

CleanShot 2024-07-05 at 14 04 02@2x

公開鍵の登録

localで作った公開鍵の中身を入力する

CleanShot 2024-07-05 at 13 50 57@2x

STEP 5. SFTPサーバーに接続する

こんなコマンドで接続する

localで試しても良いし、sftpコマンドが実行できる環境であればどこからでも良い

sftp -v -i <作成した秘密鍵のパス> <SFTPユーザー名>@<SFTPサーバーのエンドポイント>
  • 「作成した秘密鍵のパス」は実行環境のlocalでのファイルパス
  • 「SFTPユーザー名」はさっき作成したユーザ名
  • 「SFTPサーバーのエンドポイント」はAWS上で確認できる

具体例

sftp -v  -i ./sftp_example example-sftp-user@*****.server.transfer.*********.amazonaws.com

SFTPコマンド

接続できたらSFTPコマンドを試してみる

カレントディレクトリを表示する

sftp> pwd
Remote working directory: /this-is-the-example-bucket/example-sftp-user

接続元 (local)のファイルをSFTPサーバーに転送する

sftp> put example.txt

転送されたファイルの確認をする

sftp> ls
a.txt

終了する

sftp>quit

エラー対策

「sftpサーバーに接続は出来るが、権限エラーでコマンドが実行できない」という場合はロールの権限、もしくは信頼関係の設定が抜けていると思われるため、上記の手順通りの設定にする

sftp>ls
remote readdir("/****"): Permission denied

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

プロフィール・経歴

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0