翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
事前定義されたステップを使用する
ワークフローを作成する場合、このトピックで説明した以下の定義済みステップのいずれかを追加することを選択できます。独自のカスタムファイル処理ステップを追加することもできます。詳細については、「カスタムのファイル処理ステップを使用してください。」を参照してください。
ファイルをコピーする
ファイルのコピーステップでは、アップロードされたファイルのコピーを新しい Amazon S3 ロケーションに作成します。現在、ファイルコピーステップは Amazon S3 でのみ使用できます。
次のファイルコピーステップでは、ファイルをfile-test
宛先バケットのtest
フォルダにコピーします。
ファイルのコピーステップがワークフローの最初のステップでない場合は、[ファイルロケーション] を指定できます。ファイルの場所を指定することで、前のステップで使用したファイルまたはアップロードされた元のファイルのいずれかをコピーできます。この機能を使用すると、ファイルのアーカイブや記録の保持のためにソースファイルをそのまま保持したまま、元のファイルの複数のコピーを作成できます。例については、タグ付けと削除のワークフローの例を参照してください。
バケットとキーの詳細を提供する
ファイルのコピーステップのバケット名とキーを指定する必要があります。キーには、パス名またはファイル名を指定できます。キーがパス名またはファイル名のどちらとして扱われるかは、キーの末尾にスラッシュ (/
) を付けるかどうかで決まります。
最後の文字が「/
」の場合、ファイルはフォルダにコピーされ、その名前は変わりません。最後の文字が英数字の場合、アップロードしたファイルの名前が path 値に変更されます。その名前のファイルがすでに存在する場合、動作は[既存を上書き] フィールドの設定によって異なります。
-
[既存を上書き] を選択した場合、既存のファイルは処理中のファイルに置き換えられます。
-
[既存を上書き] が選択されていない場合は何も起こらず、ワークフロー処理は停止します。
ヒント
同じファイルパスで同時書き込みを実行すると、ファイルの上書き時に予期しない動作が発生する可能性があります。
たとえば、キー値が test/
であれば、アップロードされたファイルは test
フォルダにコピーされます。キーの値が test/today
で、「Overwrite existing」が選択されている場合、アップロードしたファイルはすべて test
フォルダー内の today
という名前のファイルにコピーされ、後続のファイルはそれぞれ前のファイルが上書きされます。
注記
Amazon S3 ではバケットとオブジェクトをサポートしており、階層はありません。しかし、オブジェクトキーの名前に接頭辞や区切り文字を使うことで、フォルダに似た方法で階層を暗示し、データを整理することができます。
ファイルのコピーステップでは名前付き変数を使用します。
ファイルのコピーステップでは、変数を使用してファイルをユーザー固有のフォルダーに動的にコピーできます。現在、${transfer:UserName}
または${transfer:UploadDate}
を変数として使用して、ファイルをアップロードしている特定のユーザーの宛先に、または現在の日付に基づいてファイルをコピーできます。
次の例では、ユーザーrichard-roe
がファイルをアップロードすると、そのファイルはfile-test2/richard-roe/processed/
フォルダーにコピーされます。ユーザーmary-major
がファイルをアップロードすると、そのファイルはfile-test2/mary-major/processed/
フォルダーにコピーされます。
同様に、${transfer:UploadDate}
を変数として使って、現在の日付にちなんだ名前のコピー先にファイルをコピーすることができます。次の例では、コピー先を 2022 年 2 月 1 日の${transfer:UploadDate}/processed
に設定すると、アップロードされたファイルはfile-test2/2022-02-01/processed/
フォルダーにコピーされます。
これらの変数は両方を組み合わせて使用することもできます。例:
-
「宛先キープレフィックス」を
folder/${transfer:UserName}/${transfer:UploadDate}/
に設定すると、folder/marymajor/2023-01-05/
のように、ネストされたフォルダが作成されます。 -
「宛先キープレフィックス」を
folder/${transfer:UserName}-${transfer:UploadDate}/
に設定すると、folder/marymajor-2023-01-05/
のように、2 つの変数を連結できます。
コピーステップの IAM 権限
コピーステップを成功させるには、ワークフローの実行ロールに次の権限が含まれていることを確認してください。
{ "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::
destination-bucket-name
" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name
/*" }
注記
s3:ListBucket
権限は、[既存を上書き] を選択しない場合にのみ必要です。この権限は、バケットをチェックして、同じ名前のファイルがすでに存在するかどうかを確認します。[既存を上書き] を選択した場合、ワークフローはファイルを確認する必要はなく、書き込むだけで済みます。
Amazon S3 ファイルにタグがある場合は、IAM ポリシーに 1 つまたは 2 つのアクセス許可を追加する必要があります。
-
バージョン管理されていない Amazon S3 ファイルに
s3:GetObjectTagging
を追加します。 -
バージョン管理されている Amazon S3 ファイルに
s3:GetObjectVersionTagging
を追加します。
ファイルを復号化します。
AWS ストレージブログには、Transfer Family Managed ワークフロー、PGP と を使用したファイルの暗号化と復号化を使用してコードを記述せずにファイルを復号する方法 AWS Transfer Family
PGP 復号化をワークフローで使用してください。
Transfer Family には完璧なプライバシー (PGP) 復号のサポートが組み込まれています。SFTP、FTPS、またはFTP経由でAmazon Simple Storage Service(Amazon S3)またはAmazon Elastic File System(Amazon EFS)にアップロードされたファイルでPGP復号を使用できます。
PGP 復号化を使用するには、ファイルの復号に使用する PGP プライベートキーを作成して保存する必要があります。ユーザーは、Transfer Familyサーバーにファイルをアップロードする前に、対応するPGP暗号鍵を使用してファイルを暗号化することができます。暗号化されたファイルを受信したら、ワークフローでそれらのファイルを復号化できます。詳細なチュートリアルについては、「ファイルを復号するためのマネージドワークフローの設定」を参照してください。
PGP 復号化をワークフローで使用するには
-
ワークフローをホストする Transfer Family サーバーを特定するか、新しいサーバーを作成します。PGP キーを正しいシークレット名 AWS Secrets Manager で に保存する前に、サーバー ID が必要です。
-
PGP キーを必要なシークレット名 AWS Secrets Manager で に保存します。詳細については、「キーペアを管理する」を参照してください。ワークフローは、Secrets Manager のシークレット名に基づいて、復号に使用する正しいPGPキーを自動的に見つけることができます。
注記
Secrets Manager にシークレットを保存すると、 AWS アカウント に料金が発生します。料金については、「AWS Secrets Manager 料金表
」を参照してください。 -
PGP キーペアを使用してファイルを暗号化します。(対応クライアントのリストは サポートされている PGP クライアント を参照のこと)。コマンドラインを使用している場合は、以下のコマンドを実行します。このコマンドを使用するには、
をPGPキー・ペアの作成に使用した電子メール・アドレスに置き換えます。username@example.com
を暗号化したいファイル名に置き換えます。testfile.txt
gpg -e -r
username@example.com
testfile.txt
-
暗号化されたファイルを Transfer Family サーバーにアップロードします。
-
ワークフローで復号化ステップを設定します。詳細については、「復号ステップを追加する」を参照してください。
復号ステップを追加する
復号化ステップでは、ワークフローの一部として Amazon S3 または Amazon EFS にアップロードされた暗号化されたファイルを復号化します。復号化の設定の詳細については、PGP 復号化をワークフローで使用してください。 を参照してください。
ワークフローの復号化ステップを作成するときは、復号化されたファイルの保存先を指定する必要があります。また、宛先にファイルがすでに存在する場合、既存のファイルを上書きするかどうかも選択する必要があります。Amazon CloudWatch Logs を使用すると、復号ワークフローの結果をモニタリングし、各ファイルの監査ログをリアルタイムで取得できます。
ステップの [Decrypt ファイル] タイプを選択すると、[パラメータの設定] ページが表示されます。「PGP 復号化パラメーターの設定」セクションに値を入力します。
利用可能なオプションは以下の通りである:
-
ステップ名 — ステップの説明的な名前を入力します。
-
ファイルロケーション — ファイルの場所を指定することで、前のステップで使用したファイルまたはアップロードされた元のファイルのいずれかを復号できます。
注記
このパラメータは、このステップがワークフローの最初のステップである場合は使用できません。
-
復号されたファイルの宛先 — 復号されたファイルの宛先として Amazon S3 バケットまたは Amazon EFS ファイルシステムを選択します。
-
Amazon S3 を選択した場合、宛先バケット名と宛先キープレフィックスを指定する必要があります。宛先キープレフィックスをユーザー名でパラメータ化するには、「宛先キープレフィックス」に
${transfer:UserName}
と入力します。同様に、アップロード日ごとに宛先キープレフィックスをパラメータ化するには、「宛先キープレフィックス」に${Transfer:UploadDate}
と入力します。 -
Amazon EFS を選択する場合は、デスティネーションファイルシステムとパスを指定する必要があります。
注記
ここで選択するストレージオプションは、このワークフローが関連する Transfer Family サーバが使用するストレージシステムと一致する必要があります。作成されていない場合は、このワークフローを実行しようとしたときにエラーが発生します。
-
-
既存の上書き — ファイルをアップロードし、同じファイル名のファイルが宛先にすでに存在する場合、動作はこのパラメーターの設定によって異なります。
-
[既存を上書き] を選択した場合、既存のファイルは処理中のファイルに置き換えられます。
-
[既存を上書き] が選択されていない場合は何も起こらず、ワークフロー処理は停止します。
ヒント
同じファイルパスで同時書き込みを実行すると、ファイルの上書き時に予期しない動作が発生する可能性があります。
-
次のスクリーンショットは、ファイルの復号化ステップで選択できるオプションの例を示しています。
復号化ステップの IAM 権限
復号化ステップを成功させるには、ワークフローの実行ロールに次の権限が含まれていることを確認してください。
{ "Sid": "ListBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::
destination-bucket-name
" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::destination-bucket-name
/*" }, { "Sid": "Decrypt", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": "arn:aws:secretsmanager:region
:account-id
:secret:aws/transfer/*" }
注記
s3:ListBucket
権限は、[既存を上書き] を選択しない場合にのみ必要です。この権限は、バケットをチェックして、同じ名前のファイルがすでに存在するかどうかを確認します。[既存を上書き] を選択した場合、ワークフローはファイルを確認する必要はなく、書き込むだけで済みます。
Amazon S3 ファイルにタグがある場合は、IAM ポリシーに 1 つまたは 2 つのアクセス許可を追加する必要があります。
-
バージョン管理されていない Amazon S3 ファイルに
s3:GetObjectTagging
を追加します。 -
バージョン管理されている Amazon S3 ファイルに
s3:GetObjectVersionTagging
を追加します。
タグファイル
受信ファイルにタグを付けてさらに下流処理を行うには、タグステップを使用します。受信ファイルに割り当てるタグの値を入力します。現在、タグオペレーションは Transfer Family サーバーストレージに Amazon S3 を使用している場合にのみサポートされます。
次のタグステップ例では、scan_outcome
とclean
をそれぞれタグキーと値として割り当てます。
タグステップを成功させるには、ワークフローの実行ロールに次の権限が含まれていることを確認してください。
{ "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }
注記
ワークフローに、コピーまたは復号ステップの前に実行されるタグステップが含まれている場合は、IAM ポリシーに 1 つまたは 2 つのアクセス許可を追加する必要があります。
-
バージョン管理されていない Amazon S3 ファイルに
s3:GetObjectTagging
を追加します。 -
バージョン管理されている Amazon S3 ファイルに
s3:GetObjectVersionTagging
を追加します。
ファイルを削除する
処理済みのファイルを前のワークフローステップから削除したり、最初にアップロードしたファイルを削除したりするには、ファイル削除ステップを使用します。
削除ステップを正常に実行するには、ワークフローの実行ロールに次の権限が含まれていることを確認してください。
{ "Sid": "Delete", "Effect": "Allow", "Action": [ "s3:DeleteObjectVersion", "s3:DeleteObject" ], "Resource": "arn:aws:secretsmanager:
region
:account-ID
:secret:aws/transfer/*" }
ワークフローの名前付き変数
コピーと復号化のステップでは、変数を使用してアクションを動的に実行できます。現在、 は次の名前付き変数 AWS Transfer Family をサポートしています。
-
${transfer:UserName}
を使用して、ファイルをアップロードしているユーザーに基づいて、ファイルを宛先にコピーまたは復号します。 -
${transfer:UploadDate}
を使用して、現在の日付に基づいて、ファイルを宛先にロケーションにコピーまたは復号します。
タグ付けと削除のワークフローの例
次の例は、データ分析プラットフォームなどのダウンストリームアプリケーションで処理する必要がある受信ファイルにタグを付けるワークフローを示しています。受信ファイルにタグを付けた後、ワークフローはストレージコストを節約するために最初にアップロードされたファイルを削除します。