Secure File Transfer Protocol (SFTP) とは
Secure File Transfer Protocol とは?
Secure File Transfer Protocol (SFTP) は、接続されたシステム間でファイルを安全に転送するための標準ネットワークプロトコルです。ネットワークプロトコルは、ネットワーク上のデバイスが使用する特定のハードウェアやソフトウェアに関係なく、共通の言語として機能する確立された一連のルールです。SFTP はファイル転送に認証と暗号化を追加することで、組織はファイルを安全に共有し、機密ファイルデータに関する規制コンプライアンス要件を満たすことができます。
Secure File Transfer Protocol はなぜ重要なのですか?
データのセキュリティと機密性は、企業のローカルエリアネットワーク (LAN) 内であれインターネット経由であれ、あらゆるネットワーク上でファイルを転送する際の基本的な要件です。Secure File Transfer Protocol は、HTTPS (Hypertext Transfer Protocol Secure) などの他の一般的なネットワークセキュリティプロトコルと一緒に使用され、ネットワークレベルでのファイルデータセキュリティを確保します。
SFTP は、従来のファイル転送方式である File Transfer Protocol (FTP) に代わるものとして開発されました。Git、VSCode、Ansible、WordPress、AWS Transfer Family など、世界で最も広く使用されている多くのアプリケーションで機密ファイルの転送に使用されています。
SFTP の S とは何ですか?
SFTP は、Secure Shell (SSH) 接続プロトコルを使用しているため、SSH File Transfer Protocol とも呼ばれます。S はセキュアとセキュアシェルの両方の略です。
SSH
SSH プロトコルは、ネットワーク通信用の認証ベースの暗号化接続プロトコルです。SSH は、TCP (伝送制御プロトコル) を介した安全なデータ転送、認証、および接続を処理します。TCP は主要なインターネット転送プロトコルの 1 つです。
SSH を使用すると、セッションが確立されると、ネットワーク上の 2 者間にあるリスナーが当事者間で共有される機密情報を解読できなくなります。たとえば、ネットワーク上のリスナーは、Secure Shell 暗号化を使用した接続で送信されたパスワードや個人を特定できる情報 (PII) を表示できません。
SSH は、クライアント (ユーザー) にリモートサーバー上で基本的なコマンドを実行する権限を与えますが、SSH にはファイルの転送と操作の機能がありません。ファイルの安全なデータ転送とファイル操作のために、SSH は SFTP と組み合わせた階層型アプローチを必要とします。
Secure File Transfer Protocol はどのように機能しますか?
SFTP を使用すると、ユーザーはサーバーのファイルやフォルダーを送信、受信、操作できるため、接続が危険にさらされて情報が漏洩するリスクが軽減されます。SFTP はすべてのファイルのコンテンツとコマンドを暗号化し、転送中に解読できないようにして、ファイル転送のコンプライアンスを保証します。
クライアントサーバーアーキテクチャ
SFTP プロトコルでは、通信に SSH クライアント/サーバーアーキテクチャモデルが使用されます。このアーキテクチャモデルでは、クライアントがセッションを開始した場合でも、サーバーが接続、リソース、およびセキュリティを制御できます。
パブリックキーとプライベートキーのインフラストラクチャ
SFTP は、パブリック SSH キーとプライベート SSH キーを使用して、クライアントとサーバー間のセッションを認証します。SSH キーインフラストラクチャを使用すると、SFTP クライアントと SFTP サーバのみが関与する、セキュリティ管理のオーバーヘッドを最小限に抑えることができます。
ポート 22 (デフォルト)
SFTP では、TCP 経由の SSH 接続で信頼性の高いデータ配信を行うために、デフォルトでポート 22 が使用されます。ただし、ポート 22 に既存の接続がある場合は、SFTP で別のポートに名前を付けることができます。
中断された転送の再開
SFTP を使用すると、セッションの中断により一時停止されていたファイル転送を再開できます。ファイル転送を再開すると、接続が不安定な場合でも生産性が向上します。
一般的な SFTP コマンドにはどのようなものがありますか?
ユーザーは、コマンドラインインターフェイス (CLI) を介して、または SFTP が組み込まれているアプリのクリックスルーワークフローに従って SFTP コマンドを実行できます。Windows、Mac、Linux のユーザーはすべて、シェルアプリを介して SFTP コマンドラインにアクセスできます。bash シェルを使った便利な SFTP コマンドをいくつか紹介します。
SFTP セッションの開始と終了
sftp user@hostname e.g. sftp dan@example.com
example.com サーバー上で新しい SFTP 接続を開きます。シェルのコマンドプロンプトが sftp> に変わり、セッションが開始されたことを示します。このコマンドには、次のようなさまざまなオプションを含めることができます。
- -ポート番号を指定するための P [番号]
- --秘密キーファイルを含めるための i [ファイル]
- -再帰的なディレクトリ転送を有効にするための r。
sftp exit は SFTP セッションを終了します。
ファイル転送
get server_path_and_filename local_path は、指定されたファイルをサーバーから指定されたディレクトリにコピーします。
例: get /projects/marketing/proposal.txt /newopportunities
put local_path_and_filename server_path は、指定されたサーバーディレクトリにローカルファイルを転送します。
例: put /finances/invoices/march.txt /projects/marketing/payments
同様に、reget コマンドと reput コマンドは中断された転送を再開します。
リモートファイル管理
- chown user path は、サーバー上の特定のパスにあるファイルまたはフォルダの所有権を指定されたユーザーに変更します。
- chmod number path は、サーバー上の指定されたパスにあるファイルまたはフォルダの権限を変更します。
- ls は、現在のサーバーディレクトリ内のファイルとフォルダのリストを表示します。
- cd path は、サーバー上の指定されたディレクトリに移動します。
- mkdir dir_name はサーバー上に新しいフォルダを作成します。
- rmdir dir_name は、サーバー上の特定のフォルダを削除します。
- rename old_file_name new_file_name renames a given file on the server.
- pwd はサーバー上の現在のディレクトリを表示します。
- lpwd は現在のローカルディレクトリを表示します。
SFTP は他のファイル転送プロトコルと比べてどうですか?
SFTP は、さまざまな標準ファイル転送プロトコルの 1 つです。
SFTP と FTPS
FTP Secure (FTPS) は、ファイル転送プロトコルの上に Transport Layer Security (TLS) プロトコルと Secure Socket Layer (SSL) プロトコルを使用して、安全なファイル転送を行います。FTPS による認証は、SSL 証明書の管理方法に依存しています。FTPS は主に非推奨と見なされます。
FTPS は FTP をベースにしていますが、SFTP は FTP をより安全なアーキテクチャに置き換えるために導入されました。SFTP は、そのシンプルさ、セキュリティ、クラウドサポートにより、今日の FTPS よりもはるかに広く使用されています。
SFTP と TFTP
Trivial File Transfer Protocol (TFTP) は、クライアント/サーバーアーキテクチャを利用したファイル転送用の軽量プロトコルです。TFTP にはセキュリティ対策が組み込まれていないため、通常の環境でファイルを転送するには、セキュリティプロトコルまたは保護手段を重ねて使用する必要があります。
SFTP はさまざまなアプリケーションで使用されますが、TFTP は通常、新しいハードウェア、ファームウェア、およびオペレーティングシステムをセットアップまたは起動するときに、ローカルの安全なネットワークでのみ直接使用されます。
SFTP を使用する際のベストプラクティスはどのようなものですか?
キーローテーションや SFTP サーバー上のセキュアなストレージなど、パブリック/プライベートのキー管理のベストプラクティスを使用します。SFTP サーバーがセキュリティアップデートとパッチで常に最新の状態に保たれ、AES などの強力な暗号化が使用されていることを確認します。異常の検出と対応のため、成功したファイル転送と失敗したアクセス試行を記録します。
SFTP はネットワークセキュリティの一部にすぎないことを忘れないでください。ファイアウォール、侵入検知システム、およびその他のセキュリティ対策は、特定のネットワークアーキテクチャに合わせて調整する必要があります。
AWS はファイルストレージ要件をどのようにサポートできますか?
Amazon では、さまざまな安全なファイルストレージと安全なファイル転送ソリューションを提供しています。
Amazon S3 は、任意の量のデータの保存と取得をどこからでも行えるように設計されたオブジェクトストレージです。これを使用すると、自動ファイル転送を含め、いつでもどこからでも、ファイルを含む任意の量のデータを保存および取得できます。
Amazon Elastic File System (EFS) は、サーバーレスで完全に伸縮自在なクラウドファイルストレージを提供し、これを使用して、Amazon Elastic Compute Cloud (EC2) インスタンスやその他の AWS クラウドサービスにアクセスできるファイルシステムを作成できます。また、強一貫性やファイルロックなどの完全なファイルシステムアクセスセマンティクスをサポートしています。ストレージ容量とパフォーマンスをプロビジョニングおよび管理することなくファイルデータを共有できます。
AWS Transfer Family は、SFTP、AS2、FTPS、FTP、およびウェブブラウザ経由で Amazon S3 または Amazon EFS との間で直接ファイルを安全に転送するためのフルマネージドサポートを提供しています。クライアント側の既存の認証、アクセス、ファイアウォールの設定を維持することで、File Transfer ワークフローをシームレスに移行、自動化、モニタリングできます。そのためお客様、パートナー、内部のチームやそのアプリケーションにとって、何も変更はありません。