IT人材をお探しの方は、まずはお電話ください。担当営業がすぐにご要望にマッチした人材をご提案いたします。
tel:03-6409-6766 お急ぎの方はお電話ください

ブログTOP > IT・技術関連 > SFTPとは?SFTPの基礎とAWSでSFTPを利用する方法を解説!

SFTPとは?SFTPの基礎とAWSでSFTPを利用する方法を解説!

IT・技術関連 更新日:2024.09.05
エンジニア採用
SFTPとは?SFTPの基礎とAWSでSFTPを利用する方法を解説!

SFTPの基礎 Amazon S3など、AWSにファイルを転送する際、安全に転送できるSFTPに対応したファイル転送アプリを利用します。 そしてAWSでは、AWS Transfer Familyにより、SFTPによるファイル転送が利用可能です。それではSFTPとは、どのような仕組みなのでしょうか。 ここでは、他のファイルを転送する仕組みと比較しながら、SFTPの特徴を紹介します。

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を利用する方法

先ほど解説したように、SFTPは安全にファイル転送するための仕組みです。また、AWSでは、AWS Transfer FamilyによりSFTPを利用できます。ただし、AWS Transfer Familyを利用するためには、手続きが必要です。 ここからは、AWS Transfer Familyを使用し、SFTPを使うための手続きについて紹介します。

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設定時の注意点

クラウドを利用する場合、SFTPが使えるサイトが多く、SFTPを使い慣れている方もいるでしょう。しかし、そういった方の中にも、AWS Transfer Familyの設定がうまくできないという方もいるのではないでしょうか。 AWS Transfer Familyには、Q&AをまとめたWebページも用意されていますが、それを読んでもよく解らない、という点もあるでしょう。 ここでは、AWS Transfer Family設定時の特に注意してほしい点について説明します。

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にアクセスできます。

まとめ

これまで説明したように、AWSのようなクラウド上にファイルを転送する場合は、暗号化されたSFTPを使うのが一般的です。そして、AWSでは、AWS Transfer Familyを利用することで、Amazon S3へのファイル転送にSFTPを利用できます。 なお、AWS Transfer FamilyでSFTPを使うには、SSHで暗号化して送信するために公開鍵をあらかじめ登録したり、接続に利用するユーザーのロールを設定する必要があるなど、少し手間がかかります。 しかしながら、1度設定してしまえば、使い慣れたFTPソフトなどで簡単に使えるので、ぜひAWS SFTPを利用してください。]]>

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニアAWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。

・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
ITエンジニアの派遣を利用したい企業様へ
ITエンジニアを派遣で採用したい企業様へ
  • 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
  • すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!

当社のITエンジニア派遣サービスは

  • 派遣スピードが速い!(最短即日)
  • 4,500名のエンジニアから貴社にマッチした人材を派遣
  • 正社員雇用も可能

こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。

無料相談のお申し込みはこちら
IT・技術関連の記事一覧へ

カテゴリから記事を探す

すべての記事一覧へ