翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
このチュートリアルでは、復号化ステップを含む管理ワークフローを設定する方法を示します。このチュートリアルでは、暗号化されたファイルを Amazon S3 バケットにアップロードし、同じバケット内の復号されたファイルを表示する方法も示しています。
注記
AWS ストレージブログには、ファイルの暗号化と復号化、ファイルの暗号化と復号化を PGPと で AWS Transfer Family
トピック
ステップ 1:実行ロールを設定する
Transfer Family がワークフローの起動に使用できる AWS Identity and Access Management (IAM) 実行ロールを作成します。実行ロールを作成するプロセスについては、IAM ワークフローの ポリシーで説明しています。
注記
実行ロールを作成する際、信頼関係を確立するにはで説明されているように、実行ロールと Transfer Family の間に信頼関係を確立してください。
以下の実行ロールポリシーには、このチュートリアルで作成するワークフローを正常に実行するために必要なすべての権限が含まれています。このポリシーの例を実行するには、
をユーザー自身の情報に置き換えます。user input
placeholders
を暗号化ファイルをアップロードするAmazon S3バケット名に置き換えます。DOC-EXAMPLE-BUCKET
注記
すべてのワークフローに、この例に記載されているすべての権限が必要なわけではありません。特定のワークフローのステップの種類に基づいて権限を制限できます。定義済みの各ステップタイプに必要な権限については、事前定義されたステップを使用するで説明しています。カスタムステップに必要な権限については、IAM カスタムステップのアクセス許可で説明しています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "WorkflowsS3Permissions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging", "s3:GetObjectVersion", "s3:PutObject", "s3:PutObjectTagging", "s3:ListBucket", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:DeleteObjectVersion", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::
DOC-EXAMPLE-BUCKET
/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET
"] "Condition": { "StringEquals": { "s3:RequestObjectTag/Archive": "yes" } } }, { "Sid": "DecryptSecret", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region
:account-id
:secret:aws/transfer/*" } ] }
ステップ 2: マネージドワークフローを作成する
次に、復号化ステップを含むワークフローを作成する必要があります。
復号化ステップを含むワークフローを作成するには
-
で AWS Transfer Family コンソールを開きますhttps://console.aws.amazon.com/transfer/
。 -
左のナビゲーションペインで「ワークフロー」を選択し、「ワークフローの作成」を選択します。
-
次の詳細情報を入力します。
-
Decrypt workflow example
などの説明を入力します。 -
[ノミナルステップ] セクションで [ステップを追加] を選択します。
-
-
[ステップタイプを選択] で [ファイルを復号] を選択し、[次へ] を選択します。
-
[パラメータの設定] ダイアログボックスで、以下を指定します。
-
decrypt-step
など、わかりやすいステップ名を入力します。ステップ名にはスペースを使用できません。 -
[復号されたファイルの宛先] には、Amazon S3 を選択します。
-
送信先バケット名 で、ステップ 1 で作成したIAMポリシー
で として指定したのと同じ Amazon S3 バケットを選択します。DOC-EXAMPLE-BUCKET
-
[宛先キープレフィクス] には、復号したファイルを保存するプレフィックス(フォルダ)の名前を、保存先バケットに入力します(例:
decrypted-files/
)。注記
プレフィックスの末尾には必ずスラッシュ (
/
) を追加してください。 -
このチュートリアルでは、[既存を上書き] はオフのままにしておきます。この設定をクリアすると、既存のファイルと同じ名前のファイルを復号しようとしても、ワークフロー処理は停止し、新しいファイルは処理されません。
「次へ」を選択して、次の画面に移動します。
-
-
ステップの詳細を確認します。すべてが正しい場合は、[ステップを作成] を選択します。
-
ワークフローに必要な復号化ステップは 1 つだけなので、追加のステップを設定する必要はありません。[ワークフローの作成] を選択して新しいワークフローを作成します。
新しいワークフローのワークフロー ID を書き留めます。この ID は次のステップで必要となります。このチュートリアルでは、
をワークフロー ID の例として使用します。w-1234abcd5678efghi
ステップ 3: サーバーにワークフローを追加してユーザーを作成する
復号化ステップを含むワークフローができたので、そのワークフローを Transfer Family サーバーに関連付ける必要があります。このチュートリアルでは、ワークフローを既存のTransfer Family サーバーに接続する方法を示します。または、ワークフローで使用する新しいサーバーを作成することもできます。
ワークフローをサーバーにアタッチしたら、サーバーSFTPに を使用できるユーザーを作成し、ワークフローの実行をトリガーする必要があります。
Transfer Family サーバーを設定してワークフローを実行するには
-
で AWS Transfer Family コンソールを開きますhttps://console.aws.amazon.com/transfer/
。 -
左ナビゲーションペインで、[サーバ] を選択し、リストからサーバを選択します。このサーバーがSFTPプロトコルをサポートしていることを確認します。
-
サーバーの詳細ページで下にスクロールして [Additional details] (その他の詳細) セクションで [Edit] (編集) を選択します。
-
[詳細の編集] ページの [マネージドワークフロー] セクションで、ワークフローを選択し、対応する実行ロールを選択します。
-
[ファイルをアップロードするワークフロー] では、ステップ 2: マネージドワークフローを作成するで作成したワークフロー (例:
w-1234abcd5678efghi
) を選択します。 -
マネージドワークフロー実行ロール で、 で作成したIAMロールを選択しますステップ 1:実行ロールを設定する。
-
-
ページの最下部までスクロールして、「保存」を選択して変更を保存します。
使用しているサーバーの ID を書き留めます。PGP キーの保存に使用する AWS Secrets Manager シークレットの名前は、サーバー ID に一部基づいています。
ワークフローをトリガーできるユーザーを追加するには
-
で AWS Transfer Family コンソールを開きますhttps://console.aws.amazon.com/transfer/
。 -
左ナビゲーションペインで、[サーバー] を選択し、復号ワークフローに使用しているサーバーを選択します。
-
サーバーの詳細ページで、「ユーザー」セクションまでスクロールダウンし、「ユーザーの追加」を選択します。
-
新しいユーザーに、次の詳細情報を入力します。
-
[Username] (ユーザーネーム) に、
decrypt-user
と入力します。 -
[ロール] で、サーバーにアクセスできるユーザーロールを選択します。
-
[ホームディレクトリ] には、以前に使用した Amazon S3 バケット (例:
) を選択します。DOC-EXAMPLE-BUCKET
-
SSH パブリックキー の場合、所有しているプライベートキーに対応するパブリックキーに貼り付けます。詳細については、「サービスマネージドユーザーのSSHキーを生成する」を参照してください。
-
-
[追加] を選択して新しいユーザーを保存します。
このサーバーの Transfer Family ユーザーの名前を書き留めます。シークレットの一部はユーザーの名前に基づいています。わかりやすくするために、このチュートリアルではサーバーのどのユーザーも使用できるデフォルトのシークレットを使用しています。
ステップ 4: PGPキーペアを作成する
サポートされているPGPクライアントの 1 つを使用して、PGPキーペアを生成します。このプロセスについては、PGP キーの生成 に説明されています。
PGP キーペアを生成するには
-
このチュートリアルでは、
gpg
(GnuPG
) バージョン 2.0.22 クライアントを使用して、 を暗号化アルゴリズムRSAとして使用するPGPキーペアを生成できます。このクライアントでは、以下のコマンドを実行して E メールアドレスとパスフレーズを指定します。任意の名前またはメールアドレスを使用できます。使用する値は、チュートリアルの後半で入力する必要があるため、忘れないようにしてください。gpg --gen-key
注記
GnuPG
バージョン 2.3.0 以降を使用している場合は、gpg --full-gen-key
を実行する必要があります。作成するキーのタイプの入力を求められたら、 RSAまたは を選択しますECC。ただし、 を選択した場合はECC、必ず次のいずれかを選択してください。NIST または BrainPool 楕円曲線。選択しない Curve 25519. -
次のコマンドを実行して、プライベートキーをエクスポートします。
は、キーを生成したときに使用したメールアドレスに置き換えます。user@example.com
gpg --output workflow-tutorial-key.pgp --armor --export-secret-key
user@example.com
このコマンドは秘密鍵を
workflow-tutorial-key.pgp
ファイルにエクスポートします。出力ファイルには任意の名前を付けることができます。プライベートキーファイルは、 AWS Secrets Managerに追加した後で削除することもできます。
ステップ 5: PGPプライベートキーを に保存する AWS Secrets Manager
ワークフローがアップロードされたファイルに対して復号ステップを実行したときにワークフローが秘密鍵を見つけることができるように、秘密鍵を非常に特殊な方法でSecrets Managerに保存する必要があります。
注記
Secrets Manager にシークレットを保存すると、 AWS アカウント に料金が発生します。料金については、「AWS Secrets Manager 料金表
Secrets Manager にPGPプライベートキーを保存するには
-
にサインイン AWS Management Console し、 で AWS Secrets Manager コンソールを開きますhttps://console.aws.amazon.com/secretsmanager/
。 -
左側のナビゲーションペインで [サーバー] を選択します。
-
[シークレット]ページで、[新しいシークレットの保存]を選択します。
-
[シークレットタイプの選択] ページの[シークレットタイプ] で[その他のシークレットタイプ] を選択します。
-
[キー/値のペア] セクションで、[キー/値] タブを選択します。
-
キー —
PGPPrivateKey
と入力します。 -
「値」 — 秘密鍵のテキストを値フィールドに貼り付けます。
-
-
[行を追加] を選択し、[キー/値のペア] セクションで [キー/値] タブを選択します。
-
キー —
PGPPassphrase
と入力します。 -
value – PGPキーペアを生成したときに使用したパスフレーズを に入力しますステップ 4: PGPキーペアを作成する。
-
-
[Next (次へ)] を選択します。
-
[シークレットの設定] ページで、シークレットの名前と説明を入力します。このチュートリアルでは、すべてのユーザーが使用できるデフォルトシークレットを作成できます。サーバー ID が であると仮定する
、シークレットに名前を付けますs-11112222333344445
aws/transfer/
。s-11112222333344445
/@pgp-default
を Transfer Family サーバーの ID に置き換えます。シークレットの説明を入力します。s-11112222333344445
注記
前に作成したユーザー専用のシークレットを作成するには、シークレット
aws/transfer/
に名前を付けます。s-11112222333344445
/decrypt-user -
[次へ] を選択し、[ローテーションの設定] ページのデフォルトを受け入れます。次いで、[次へ] を選択します。
-
[レビュー] ページで [ストア] を選択し、シークレットを作成して保存します。
Secrets Manager にPGPプライベートキーを追加する方法の詳細については、「キーの保存 AWS Secrets Manager に使用するPGP」を参照してください。
ステップ 6: ファイルを暗号化する
gpg
プログラムを使用して、ワークフローで使用するファイルを暗号化します。以下のコマンドを実行してファイルを暗号化する:
gpg -e -r
marymajor@example.com
--openpgp testfile.txt
このコマンドを実行する前に、以下のことに注意する:
-
-r
引数については、 をPGPキーペアの作成時に使用した E メールアドレス
に置き換えます。marymajor@example.com
-
--openpgp
フラグはオプションです。このフラグは、暗号化されたファイルを OpenPGP RFC4880標準に準拠させます。 -
このコマンドは、
testfile.txt
と同じ場所にtestfile.txt.gpg
という名前のファイルを作成します。
ステップ 7: ワークフローを実行して結果を表示する
ワークフローを実行するには、ステップ 3 で作成したユーザーを使用して Transfer Family サーバーに接続します。そして、「ステップ2.5、保存先パラメーターの設定」で指定したAmazon S3バケットで、復号されたファイルを見ることができます。
復号化ワークフローを実行するには
-
コマンドターミナルを開きます。
-
次のコマンドを実行し、
を実際のエンドポイントに、 をユーザーのSSHプライベートキーyour-endpoint
に置き換えます。transfer-key
sftp -i
transfer-key
decrypt-user@your-endpoint
例えば、秘密鍵が
~/.ssh/decrypt-user
に保存されていて、エンドポイントがs-11112222333344445.server.transfer.us-east-2.amazonaws.com
の場合、コマンドは次のようになります。sftp -i ~/.ssh/decrypt-user decrypt-user@s-11112222333344445.server.transfer.us-east-2.amazonaws.com
-
pwd
コマンドを実行します。成功すると、このコマンドは以下を返す:Remote working directory: /
/decrypt-userDOC-EXAMPLE-BUCKET
ディレクトリには、Amazon S3 バケットの名前が反映されます。
-
次のコマンドを実行してファイルをアップロードし、ワークフローを実行するようにトリガーします。
put testfile.txt.gpg
-
復号されたファイルの保存先として、ワークフローを作成したときに
decrypted-files/
フォルダーを指定しました。これで、そのフォルダーに移動して内容を一覧表示できます。cd ../decrypted-files/ ls
成功すると、
ls
コマンドはtestfile.txt
ファイルを一覧表示します。このファイルをダウンロードして、以前に暗号化した元のファイルと同じかどうかを確認できます。