翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クライアントを使用してサーバーエンドポイント経由でファイルを転送する
クライアント内で転送オペレーションを指定して AWS Transfer Family サービス経由でファイルを転送します。AWS Transfer Family は次のクライアントをサポートします。
-
SFTP プロトコルのバージョン 3 をサポートしています。
-
OpenSSH (macOS および Linux)
注記
このクライアントは、Secure Shell (SSH) File Transfer Protocol (SFTP) が有効なサーバーとの組み合わせでのみ機能します。
-
WinSCP (Microsoft Windows のみ)
-
Cyberduck (Windows、macOS、および Linux)
-
FileZilla (Windows、macOS、Linux)
どのクライアントにも以下の制限が適用されます。
-
1 接続あたりの、同時、多重化された SFTP セッションの最大数は 10 です。
-
Amazon S3 と Amazon EFS (NFSv4 プロトコルのため) では、ファイル名は UTF-8 エンコーディングである必要があります。異なるエンコーディングを使用すると、予期しない結果になることがあります。Amazon S3 については、「オブジェクトキーの命名ガイドライン」を参照してください。
-
File Transfer Protocol over SSL (FTPS) については、明示モードのみがサポートされます。暗黙モードはサポートされません。
-
FTP および FTPS では、パッシブモードのみがサポートされます。
-
FTP および FTPS では、STREAM モードのみがサポートされます。
-
FTP および FTPS では、イメージ/バイナリモードのみがサポートされます。
-
FTP および FTPS の場合、データ接続の TLS-PROT C (非保護) TLS がデフォルトですが、PROT C は AWS Transfer Family プロトコルでサポートされません。つまり、FTPS の場合は、PROT P を発行してデータ操作を受け付ける必要があります。
-
サーバーのストレージに Amazon S3 を使用していて、1 回の転送に複数の接続を使用するオプションがクライアントに含まれている場合は、必ずそのオプションを無効にしてください。そうしないと、大容量ファイルのアップロードが失敗して予測外の状況になる可能性があります。Amazon EFS をストレージバックエンドとして使用している場合、EFS は 1 回の転送で複数の接続をサポート「する」ことに注意してください。
以下に示すのは、FTP および FTPS で使用できるコマンドの一覧です。
使用できるコマンド | |||||
---|---|---|---|---|---|
ABOR |
FEAT |
MLST |
PASS |
RETR |
STOR |
AUTH |
LANG |
MKD |
PASV |
RMD |
STOU |
CDUP |
LIST |
MODE |
PBSZ |
RNFR |
STRU |
CWD |
MDTM |
NLST |
PROT |
RNTO |
SYST |
DELE |
MFMT |
NOOP |
PWD |
SIZE |
TYPE |
EPSV |
MLSD |
OPTS |
QUIT |
STAT |
USER |
注記
APPE はサポートされません。
SFTP については、Amazon Elastic File System (Amazon EFS) を使用しているサーバーで論理ホームディレクトリを使用するユーザーの場合、現時点で以下のオペレーションはサポートされていません。
サポートされない SFTP コマンド | |||
---|---|---|---|
SSH_FXP_READLINK |
SSH_FXP_SYMLINK |
リクエストされたファイルがシンボリックリンクの場合、SSH_FXP_STAT |
リクエストされたパスにシンボリックリンクコンポーネントが含まれている場合、SSH_FXP_REALPATH |
パブリックキーとプライベートキーのペアを生成する
ファイルを転送する前に、パブリックキーとプライベートキーのキーペアを用意する必要があります。以前にキーペアを生成していない場合、「サービス管理ユーザーの SSH キーの生成」を参照してください。
トピック
使用可能な SFTP/FTPS/FTP コマンド
次の表は、AWS Transfer Family、SFTP、FTPS、および FTP プロトコルで使用可能なコマンドを示します。
注記
この表には、バケットとオブジェクトのみをサポートする Amazon S3 の「ファイル」と「ディレクトリ」が記載されています。階層はありません。ただし、オブジェクトキー名にプレフィックスを使って階層を示したり、フォルダのようにデータを整理したりすることはできます。この動作については、「Amazon Simple Storage Service ユーザーガイド」の「オブジェクトメタデータの処理」で説明されています。
SFTP/FTPS/FTP コマンド | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Command | Amazon S3 | Amazon EFS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cd |
サポート | サポート | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chgrp |
非サポート | 対応(root または owner のみ) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chmod |
非サポート | サポート (root のみ) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chmtime |
サポート外 | サポート | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chown |
非サポート | サポート (root のみ) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
get |
サポート | サポート (シンボリックリンクの解決を含む) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ln -s |
サポート外 | サポート対象 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ls/dir |
サポート対象 | サポート対象 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
mkdir |
サポート対象 | サポート対象 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
put |
サポート対象 | サポート対象 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pwd |
サポート対象 | サポート | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rename |
ファイルでのみサポートされます |
サポート 注記既存のファイルやディレクトリを上書きするような名前変更はサポートされていません。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rm |
サポート | サポート | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rmdir |
サポート (空のディレクトリのみ) | サポート | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
version |
サポート対象 | サポート |
Amazon VPC エンドポイントを検索する
Transfer FamilyサーバーのエンドポイントタイプがVPC の場合、ファイルの転送に使用するエンドポイントを特定するのは簡単ではありません。この場合、次の手順を使用して、Amazon VPC エンドポイントを検索します。
Amazon VPC エンドポイントを検索する
-
サーバーの詳細ページに移動します。
-
「エンドポイントの詳細」ペインで、「VPC」を選択します。
Amazon VPC ダッシュボードで「VPC エンドポイント ID」を選択します。
-
「DNS 名」のリストでは、サーバーエンドポイントが最初に表示されます。
setstat
エラーを回避する
SFTP ファイル転送クライアントの中には、ファイルをアップロードする 際に SETSTAT などのコマンドを使用して、タイムスタンプやパーミッションな ど、リモートファイルの属性を変更しようとするものがあります。ただし、これらのコマンドは Amazon S3 などのオブジェクトストレージシステムと互換性がありません。この非互換性が原因で、これらのクライアントからファイルをアップロードする際に、ファイルが正常にアップロードされた場合でもエラーが発生する可能性があります。
-
CreateServer
またはUpdateServer
API を呼び出すときに、ProtocolDetails
オプションSetStatOption
を使用して、クライアントが S3 バケットにアップロードするファイルに SETSTAT を使用しようとしたときに生成されるエラーを無視します。 -
Transfer Family サーバーが SETSTAT コマンドを無視するように値を
ENABLE_NO_OP
に設定し、SFTP クライアントに変更を加えることなくファイルをアップロードできます。 -
SetStatOption
ENABLE_NO_OP
設定ではエラーは無視されますが、 CloudWatch Logs にログエントリが生成されるため、クライアントがいつ SETSTAT 呼び出しを行っているかを判断できます。
このオプションの API の詳細については、「」を参照してくださいProtocolDetails。
OpenSSH を使用する
次の手順に従って、OpenSSH を使用してコマンドラインからファイルを転送します。
注記
このクライアントは SFTP 対応サーバーでのみ動作します。
OpenSSH コマンドラインユーティリティを使用して AWS Transfer Family 経由でファイルを転送するには
-
Linux、macOS、Windows では、コマンドターミナルを開きます。
-
プロンプトで、次のコマンドを入力します。
sftp -i
transfer-key
sftp_user
@service_endpoint
前述のコマンドでは、
がユーザー名、sftp_user
が SSH プライベートキーです。ここでは、選択したサーバーのtransfer-key
コンソールに示されるとおり、AWS Transfer Family がサーバーのエンドポイントです。service_endpoint
注記
このコマンドは、デフォルトの
ssh_config
ファイルにある設定を使用します。以前にこのファイルを編集していない限り、SFTP はポート 22 を使用します。次のように コマンドに-P
フラグを追加することで、別のポート (2222 など) を指定できます。sftp -P 2222 -i
transfer-key
sftp_user
@service_endpoint
または、ポート 2222 を常に使用する場合は、
ssh_config
ファイル内のデフォルトポートを更新できます。sftp
プロンプトが表示されます。 -
(オプション) ユーザーのホームディレクトリを表示するには、
sftp
プロンプトで次のコマントを入力します。pwd
-
ご使用のファイルシステムから Transfer Family サーバーにファイルをアップロードするには、
put
コマンドを使用します。たとえば、hello.txt
をアップロードするには (ファイルがファイルシステム上のカレントディレクトリにあると仮定して)、sftp
プロンプトで次のコマンドを実行します。put hello.txt
ファイル転送が進行中か完了したことを示す次のようなメッセージが表示されます。
Uploading hello.txt to /my-bucket/home/sftp_user/hello.txt
hello.txt 100% 127 0.1KB/s 00:00
注記
サーバーの作成後、お使いの環境の DNS サービスによってサーバーエンドポイントのホスト名が解決可能になるまでに数分かかることがあります。
WinSCP を使用する
次の手順に従って、WinSCP を使用してコマンドラインからファイルを転送します。
注記
WinSCP 5.19 を使用する場合、AWS 認証情報で Amazon S3 に直接接続してファイルのアップロード/ダウンロードが可能です。詳細については、「Amazon S3 サービスに接続する
WinSCP を使用して AWS Transfer Family でファイルを転送するには
-
WinSCP クライアントを開きます。
-
[Login] (ログイン) ダイアログボックスで [File protocol] (ファイルプロトコル) として SFTP または FTP を選択します。
[FTP] を選択した場合、[Encryption] (暗号化) で次のいずれかを選択します。
-
FTP の場合、暗号化なし
-
FTPS の場合、TLS/SSL 明示的な暗号化
-
-
[Host name] (ホスト名) にサーバーエンドポイントを入力します。サーバーエンドポイントは、[Server details] (サーバーの詳細) ページにあります 。詳細については、「SFTP、FTPS、FTP サーバーの詳細を表示する」を参照してください。
注記
サーバーが VPC エンドポイントを使用している場合は、Amazon VPC エンドポイントを検索するを参照してください。
-
[Port number] (ポート番号) に次の値を入力します。
-
SFTP の場合、
22
-
FTP/FTPS の場合、
21
-
-
「ユーザー名」には、特定の ID プロバイダー用に作成したユーザーの名前を入力します。
注記
ユーザー名は、ID プロバイダー用に作成または設定したユーザーの 1 人でなければなりません。AWS Transfer Familyは、次のアイデンティティプロバイダーを提供します。
-
[Advanced] (アドバンスト) を選択して、[Advanced Site Settings] (サイトのアドバンスト設定) ダイアログボックスを開きます。[SSH] セクションで [Authentication] (認証) を選択します。
-
[Private key file] (プライベートキーファイル) でファイルシステムから SSH プライベートキーを参照して選択します。
注記
WinSCP から SSH プライベートキーを PPK 形式に変換するオプションが表示されたら [OK] を選択します。
-
[OK] を選択して [Login] (ログイン) ダイアログボックスに戻り、[Save] (保存) を選択します。
-
[Save session as site] (セッションをサイトとして保存) ダイアログボックスで [OK] を選択して接続セットアップを完了します。
-
[Login] (ログイン) ダイアログボックスで [Tools] (ツール) を選択してから[Preferences] (設定) を選択します。
-
[Preferences] (設定) ダイアログボックスの [Transfer] (転送) で [Endurance] (耐久性) を選択します。
[Enable transfer resume/transfer to temporary filename for] オプションについて [Disable] (無効にする) を選択します。
注記
このオプションを有効にしたままにすると、アップロードコストが増加し、アップロードのパフォーマンスが大幅に低下します。大容量ファイルのアップロードが失敗する可能性もあります。
-
[Transfer] (転送) で [Background] (バックグラウンド) を選択し、[Use multiple connections for single transfer] (単一の転送に複数の接続を使用する) チェックボックスをオフにします。
注記
このオプションを選択したままにすると、大容量ファイルのアップロードが失敗して予測外の状況になる可能性があります。たとえば、孤立マルチパートアップロードが生成されて Amazon S3 の料金が発生する可能性があります。サイレントデータ破損が発生することもあります。
-
ファイル転送を実行します。
drag-and-drop メソッドを使用して、ターゲットウィンドウとソースウィンドウ間でファイルをコピーできます。ツールバーアイコンを使用して、WinSCP にあるファイルのプロパティをアップロード/ダウンロード、削除、編集、または変更できます。
注記
Amazon EFS をストレージに使用している場合、この注意事項は適用されません。
タイムスタンプを含むリモートファイルの属性を変更しようとするコマンドは Amazon S3 などのオブジェクトストレージシステムと互換性がありません。そのため、Amazon S3 をストレージとして使用している場合は、ファイル転送を実行する前に、WinSCP タイムスタンプ設定を必ず無効にしてください (または、setstatエラーを回避するでで説明したようにSetStatOption
を使う)。そのためには、WinSCP Transfer settings (WinSCP 転送設定) ダイアログボックスで [Set permissions] (パーミッションの設定) オプションと [Preserve timestamp] (タイムスタンプを保持) オプションを無効にします。
Cyberduck を使用する
次の手順に従って、Cyberduck を使用してコマンドラインからファイルを転送します。
Cyberduck を使用して AWS Transfer Family でファイルを転送するには
-
Cyberduck
クライアントを開きます。 -
[Open connection] (接続を開く) を選択します。
-
[Open Connection] (接続を開く) ダイアログボックスでプロトコルとして SFTP (SSH File Transfer Protocol)、FTP-SSL (Explicit AUTH TLS)、または FTP (File Transfer Protocol) を選択します。
-
[Servers] (サーバー) にサーバーのエンドポイントを入力します。サーバーエンドポイントは、[Server details] (サーバーの詳細) ページにあります 。詳細については、「SFTP、FTPS、FTP サーバーの詳細を表示する」を参照してください。
注記
サーバーが VPC エンドポイントを使用している場合は、Amazon VPC エンドポイントを検索するを参照してください。
-
[Port number] (ポート番号) に次の値を入力します。
-
SFTP の場合、
22
-
FTP/FTPS の場合、
21
-
-
[Username] (ユーザー名) に サーバーエンドポイントのユーザーの管理 で作成したユーザーの名前を入力します。
-
SFTP を選択した場合、[SSH Private Key] (SSH プライベートキー) で SSH プライベートキー] を選択するか入力します。
-
[Connect] (接続) を選択します。
-
ファイル転送を実行します。
ファイルの場所に応じて、次のいずれかの操作をします。
-
ローカルディレクトリ (転送元) で転送したいファイルを選択して Amazon S3 ディレクトリ (転送先) にドラッグアンドドロップします。
-
Amazon S3 ディレクトリ (転送元) で転送したいファイルを選択してローカルディレクトリ (転送先) にドラッグアンドドロップします。
-
の使用 FileZilla
次の手順に従って、 を使用してファイルを転送します FileZilla。
ファイル転送 FileZilla を設定するには
-
FileZilla クライアントを開きます。
-
[File] (ファイル) を選択してから [Site Manager] を選択します。
-
[Site Manager] ダイアログボックスで [New site] (新しいサイト) を選択します。
-
[General] (全般) タブの [Protocol] (プロトコル) で SFTP または FTP のプロトコルを選択します。
[FTP] を選択した場合、[Encryption] (暗号化) で次のいずれかを選択します。
-
平文 FTP のみを使用する (安全でない) — FTP の場合
-
TLS 経由の明示的な FTP を (可能であれば) 使用する — FTPS の場合
-
-
[Host name] (ホスト名) には、使用するプロトコルを入力し、その後にサーバーエンドポイントを続けます。サーバーエンドポイントは、[Server details] (サーバーの詳細) ページにあります 。詳細については、「SFTP、FTPS、FTP サーバーの詳細を表示する」を参照してください。
注記
サーバーが VPC エンドポイントを使用している場合は、Amazon VPC エンドポイントを検索するを参照してください。
-
SFTP を使用する場合、
sftp://
を入力します。hostname
-
FTPS を使用する場合、
ftps://
を入力します。hostname
hostname
を実際のサーバーエンドポイントに確実に置き換えてください。 -
-
[Port number] (ポート番号) に次の値を入力します。
-
SFTP の場合、
22
-
FTP/FTPS の場合、
21
-
-
[SFTP] を選択した場合、[Logon type] (ログオンの種類) で [Key file] (キーファイル) を選択します。
[Key file] (キーファイル) で SSH プライベートキーを選択するか入力します。
-
[Username] (ユーザー名) に、サーバーエンドポイントのユーザーの管理 で作成したユーザーの名前を入力します。
-
[Connect] (接続) を選択します。
-
ファイル転送を実行します。
注記
進行中のファイル転送を中断した場合、AWS Transfer Family が Amazon S3 バケットにオブジェクトの一部を書き込む場合があります。アップロードを中断する場合、続行する前に Amazon S3 バケットのファイルサイズがソースオブジェクトのファイルサイズと一致することを確認してください。
Perl クライアントを使用する
perl クライアントを使用する場合は NET::SFTP::Foreign、 queue_size
を に設定する必要があります1
。例:
my $sftp =
Net::SFTP::Foreign->new('
user
@s-12345
.server.transfer.us-east-2
.amazonaws.com',
queue_size => 1);
注記
この回避策は、1.92.02Net::SFTP::Foreign
のリビジョンに必要です。
アップロード後の処理
Amazon S3 オブジェクトのメタデータやイベント通知など、アップロード後の処理情報を表示できます。
Amazon S3 オブジェクトメタデータ
オブジェクトのメタデータの一部として、値が AWSTransfer
である x-amz-meta-user-agent
と値が username@server-id
である x-amz-meta-user-agent-id
というキーが見えます。username
はファイルをアップロードしたTransfer Family ユーザー、server-id
はアップロードに使用したサーバーです。この情報は、Lambda 関数内の S3 オブジェクトに対する HeadObjectオペレーションを使用してアクセスできます。
Amazon S3 イベント通知
Transfer Family を使用してオブジェクトを S3 バケットにアップロードすると、S3 イベント通知構造で RoleSessionName
が [Requester] (リクエスタ) フィールドに [AWS:Role Unique
Identifier]/username.sessionid@server-id
として含まれます。たとえば、次に示すのは S3 バケットにコピーされたファイルの S3 アクセスログから得たサンプル [Requester] (リクエスタ) フィールドのコンテンツです。
arn:aws:sts::AWS-Account-ID:assumed-role/IamRoleName/username.sessionid@server-id
上記の [Requester] (リクエスタ) フィールドには、IamRoleName
と呼ばれる IAM ロールが表示されます。S3 イベント通知を設定する方法の詳細については、Amazon Simple Storage Service デベロッパーガイドの「Amazon S3 イベント通知の設定」を参照してください。AWS Identity and Access Management (IAM) ロールの一意の識別子の詳細については、AWS Identity and Access Management ユーザーガイドの「一意の識別子」を参照してください。