この記事の目次
SFTPの基礎
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/35243f00-6773-4465-8ac2-7ac2bb3bf90c.jpg)
SFTPとは何か
SFTPは、SSH File Transfer Protocolの略で、昔からFTPとして知られているファイル転送の仕組みを、SSHを利用したセキュアな通信を利用するための仕組みです。 なお、SSHとは、Secure Shellの略で、通信データを暗号化することで、送信の途中でのぞき見されないようにする技術です。 そしてSFTPは、昔からよく使われているFTPと同じ手順で、しかもデータを暗号化し安全に送れる点が特徴になっています。FTPとSFTPの違い
昔からファイル転送にはFTPが使われていましたが、FTPではデータをそのまま送信していたので、アカウント名やパスワードを途中で読み取られる危険性がありました。 そのため、以前ならWebブラウザもFTPによるファイル転送をサポートしていたのですが、セキュアな送信でないことから、今では使えません。 その点、SFTPは、データが全て暗号化されるので、そのような危険がありません。また、FTPクライアントアプリのほとんどが対応しているので、使い慣れたアプリをそのまま利用できます。 なお、SFTPと同じように、データ通信をTLSまたはSSLで暗号化するFTPSという方法もあり、AWS Transfer Familyでは、この方法もサポートしています。 この方法も、ほとんどのFTPクライアントアプリが対応しているので、AWSではSFTPと同じように利用できます。scpとSFTPの違い
AWSへのファイル転送を実現するAWS Transfer Familyでは、SFTP、FTP、FTPSの3つの方法に対応しています。 この他に、オープンソースのSSHを利用したファイル転送コマンドscpがあり、多くのLinuxで利用できます。そして、SSHを利用していることから、送信データが暗号化されるので、途中で読まれる心配はありません。 ただし、scpには「通信が途切れた場合に、自動的に再接続して送り直す」といったFTPに備わるフェイルセーフ機能がありません。その観点からも、SFTPの利用をおすすめします。AWSでSFTPを利用する方法
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/356a192b7913b04c54574d18c28d46e6395428ab/1d7a1055-8af3-4756-9433-1e4826ebdb20.jpg)
Amazon S3バケットを作成する
AWSでSFTPを利用する場合、転送したファイルを格納する領域が必要です。そして、その受け皿となるAWSのストレージサービスが、Amazon S3です。 SFTPの設定を実施する前に、Amazon S3の領域を作っておきましょう。SFTP対応サーバーを作成する
AWS Transfer FamilyでSFTPを利用するには、SFTP対応サーバーを作成する必要があります。AWS Transfer Familyの専用ページにアクセスし、サーバーを作成してください。なお、サーバー作成時に、次の4つの項目が求められます (1) プロトコルの選択 SFTP、FTPS、FTPの3つから、選択します。ここで、SFTPを選んでください。 (2) IDプロバイダータイプを選択 利用する予定のIDプロバイダータイプを指定します。 (3) エンドポイントとホスト名の設定 エンドポイントとは、SFTPでアクセスするクライアント端末のことです。インターネットに公開するか、それともAmazon VPCの仮想ネットワークのどちらかを選択します。さらに、SFTPサーバーのホスト名もここで設定可能です。 (4) その他の設定 ログの設定や暗号化する際に使用するキーなど、必要に応じて設定します。ユーザーを作成する
先ほどの手順でサーバーができたら、続いてアクセスの際に使用するユーザーを作成してください。AWS Transfer Familyの管理コンソールのUserセクションから、簡単に作成できます。 この場合Amazon S3に用意したバケットに対する操作を許可するポリシーが必要です。また、SFTPでアクセスする際、パスワードを使わず、SSHの公開鍵で認証します。「SSH public keys」も必ず設定してください。 この手順によりユーザーが作成できたら、SFTPによるファイル転送が可能です。AWS Transfer Family設定時の注意点
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/9e08934fd24485c7d9e691a312f16a4ef7ff96eb/38bb5729-e3a0-4b63-804c-feb8204f9752.jpg)
SSH public keyの設定が必要
AWS Transfer FamilyによりSFTPで接続する際は、パスワードを使いません。ユーザー作成時に、SSH public keyを登録することで、SSHのパスワードを省略する手順と同じ手順で認証します。 そのため、あらかじめアクセスするFTPクライアント側でSSH public keyを生成し、それをユーザー作成時に登録する必要があります。 AWSの公式ドキュメントにOS毎の生成手順が解説されていますので、それを参考にして作成してください。ポリシーの設定に注意
AWS Transfer Familyでユーザーを作成する際、必ずポリシーを設定しなければなりません。 そのポリシーとして、AWS Transfer Familyを利用するためのポリシーとAmazon S3に接続するためのポリシーの2つが必要です。 もし、SFTPで接続できたのに、「権利が無い」といったメッセージが表示される場合は、SFTPの接続で利用したユーザーに割り当てたロールの信頼関係に、次のように2つ設定されているかチェックしてみてください。アクセスコントロールポリシードキュメントの例 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "transfer.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }この例では、「transfer.amazonaws.com」と「s3.amazonaws.com」の2つが設定されているので、SFTPを介してAmazon S3にアクセスできます。
まとめ
![](https://b-engineer-media-cms.s3.amazonaws.com/item/image/user/356a192b7913b04c54574d18c28d46e6395428ab/a2670136-fcff-43ae-bb03-6c1e4d8ae98c.jpg)
この記事の監修者・著者
![株式会社オープンアップITエンジニア](https://tenshoku-careerchange.jp/wp-content/uploads/2023/07/fzxADbr-_400x400-1-150x150.jpg)
-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に向いている人の性格・特徴ランキング【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職保安職(自衛官・警察・消防官など)に必要なスキルランキング&スキルアップの方法とは?【現役保安職(自衛官・警察・消防官など)36人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に向いている人の性格・特徴ランキング【現役クリエイター職(ライター・デザイナー・編集)64人が回答】
- 2024年3月26日キャリア・転職クリエイター職(ライター・デザイナー・編集)に必要なスキルランキング&スキルアップの方法とは?【現役クリエイター職(ライター・デザイナー・編集)64人が回答】