翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: 選択的マルチバケットアクセスを使用した AWS Transfer Family ウェブアプリの設定
このチュートリアルでは、単一のユーザーに対して特定の Amazon S3 バケットアクセス許可を持つ Transfer Family ウェブアプリを設定する方法について説明します。セキュリティを維持しながら、ユーザーが 1 つのバケットからダウンロードして別のバケットにアップロードできるようにするソリューションをセットアップする方法について説明します。これは、基本的なチュートリアルで説明されている概念に基づく高度なチュートリアルです。 AWS Transfer Family ウェブアプリを初めて使用する場合は、 から始めることを検討してくださいチュートリアル: 基本的な Transfer Family ウェブアプリの設定。
前提条件
このチュートリアルを開始する前に、以下が必要です。
-
AWS Transfer Family ウェブアプリと同じリージョンで設定された IAM Identity Center。すべての AWS リージョンで、 AWS アカウントごとに IAM Identity Center のインスタンスを 1 つだけ許可することに注意してください。
-
IAM アイデンティティセンターで少なくとも 1 人のユーザーが設定されています。
-
2 つの S3 バケット。1 つはダウンロード用、もう 1 つはアップロード用です。
注記
このチュートリアルでは、基本的なウェブアプリケーションチュートリアルと多くの前提条件を共有します。IAM Identity Center のセットアップとユーザーの作成の詳細については、「」を参照してくださいチュートリアル: 基本的な Transfer Family ウェブアプリの設定。
ステップ 1: Transfer Family ウェブアプリケーションを作成する
Transfer Family ウェブアプリを作成するには
-
にサインイン AWS Management Console し、https://console.aws.amazon.com/transfer/
で AWS Transfer Family コンソールを開きます。 -
左側のナビゲーションペインで、ウェブアプリを選択します。
-
ウェブアプリの作成 を選択します。
認証アクセスの場合、サービスは前提条件として設定した AWS IAM Identity Center インスタンスを自動的に検索することに注意してください。
-
アクセス許可タイプペインで、新しいサービスロールを作成して使用するを選択します。サービスによって ID ベアラーロールが作成されます。ID ベアラーロールには、認証されたユーザーの ID がセッションに含まれます。
-
ウェブアプリユニットペインで、デフォルト値の 1 を受け入れるか、必要に応じてより高い値に調整します。
-
ウェブアプリの整理に役立つタグを追加します。チュートリアルでは、キーの名前と 値のチュートリアルウェブアプリを入力します。
ヒント
ウェブアプリケーション名は、作成後にウェブアプリケーションリストページから直接編集できます。
-
次へ を選択して、ウェブアプリの設計ページを開きます。この画面では、次の情報を入力します。
オプションで、ウェブアプリのタイトルを指定できます。ロゴとファビコンのイメージファイルをアップロードすることもできます。
-
ページタイトルについては、ユーザーがウェブアプリに接続するときに表示されるブラウザタブのタイトルをカスタマイズします。ページタイトルに何も入力しない場合、デフォルトで Transfer Web App になります。
-
ロゴの場合は、イメージファイルをアップロードします。ロゴイメージの最大ファイルサイズは 50 KB です。
-
ファビコンの場合は、イメージファイルをアップロードします。ファビコンの最大ファイルサイズは 20 KB です。
-
-
Next を選択し、Create web app を選択します。
ステップ 2: S3 アクセス用の IAM ロールを設定する
2 つの IAM ロールを作成する必要があります。1 つは最初のバケットへのダウンロード専用アクセス、もう 1 つは 2 番目のバケットへのアップロード専用アクセスです。
両方のロールの信頼ポリシー
両方の IAM ロールに次の信頼ポリシーを使用します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessGrantsTrustPolicy", "Effect": "Allow", "Principal": { "Service": "access-grants.s3.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity", "sts:SetContext" ] } ] }
ダウンロードバケットの IAM ポリシー
ダウンロードバケットへの読み取り専用アクセスのために、次のポリシーを使用して IAM ロールを作成します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectLevelReadPermissions", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAcl", "s3:GetObjectVersionAcl", "s3:ListMultipartUploadParts", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*", "arn:aws:s3:::amzn-s3-demo-bucket1" ] } ] }
重要
amzn-s3-demo-bucket1 をダウンロードバケットの実際の名前に置き換えます。
アップロードバケットの IAM ポリシー
アップロードバケットへの書き込みアクセスのために、次のポリシーを使用して別の IAM ロールを作成します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectLevelWritePermissions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket2/*", "arn:aws:s3:::amzn-s3-demo-bucket2" ] } ] }
重要
amzn-s3-demo-bucket2 をアップロードバケットの実際の名前に置き換えます。
ステップ 3: S3 Access Grants を設定する
-
で S3 コンソールを開きますhttps://console.aws.amazon.com/s3/
。 -
ナビゲーションペインで、アクセス許可を選択します。
-
S3 Access Grants インスタンスの作成をクリックします。
-
IAM アイデンティティセンターインスタンスを追加 オプションを選択し、アイデンティティセンターインスタンス ARN を入力します。
-
Next をクリックし、Cancel をクリックして、追加のステップに進むことなく S3 Access Grants インスタンスの作成を完了します。
このステップでは、S3 Access Grants インスタンスを作成します。次に、ロケーションを登録し、アクセス許可を作成します。
ステップ 4: S3 バケットの場所を登録する
両方の S3 バケットをロケーションとして S3 Access Grants に登録します。
-
S3 Access Grants コンソールで、ロケーションに移動し、ロケーションの登録をクリックします。
-
Location スコープで、ダウンロードする特定の S3 バケットを選択します (amzn-s3-demo-bucket1)。
-
IAM ロールを選択するように求められたら、前に作成したダウンロード IAM ロールを選択します。
-
登録プロセスを完了します。
-
アップロードバケット (amzn-s3-demo-bucket2) を登録するプロセスを繰り返し、プロンプトが表示されたらアップロード IAM ロールを選択します。
ステップ 5: アクセス許可を作成する
登録されたロケーションごとに 1 つずつ、2 つの権限を作成します。
-
S3 Access Grants コンソールで、 Grants に移動し、Create grant をクリックします。
-
Location で、Browse location をクリックし、ダウンロードバケットの場所 (amzn-s3-demo-bucket1) を選択します。
-
Subprefix (オプション) で、
*
を入力してバケット全体へのアクセスを許可するか、 のようなパスを指定folder1/folder2/*
して特定のプレフィックスへのアクセスを制限します。を使用すると
*
、許可範囲が に設定されs3://bucket-name/*
、バケット全体へのアクセスが許可されます。特定のプレフィックスのみへのアクセスを許可するには、 のようなパスを入力します。これによりfolder1/folder2/*
、グラントスコープが に設定されますs3://bucket-name/folder1/folder2/*
。 -
アクセス許可とアクセスで、ダウンロードバケットの読み取りを選択します。
-
被付与者タイプで、IAM アイデンティティセンターからディレクトリアイデンティティを選択します。
-
IAM プリンシパルタイプで、ユーザーを選択し、IAM アイデンティティセンターユーザーのユーザー ID を入力します。
-
権限作成プロセスを完了します。
-
アップロードバケット (amzn-s3-demo-bucket2) の許可を作成するプロセスを繰り返しますが、アクセス許可の読み取り/書き込みを選択します。
ステップ 6: S3 バケットの CORS ポリシーを設定する
WebApp を介した AWS Transfer Family アクセスを許可するように、両方の S3 バケットの CORS ポリシーを設定します。
-
S3 コンソールを開き、ダウンロードバケット (amzn-s3-demo-bucket1) に移動します。
-
[アクセス許可] タブを選択します。
-
Cross-Origin Resource Sharing (CORS) セクションまでスクロールし、Edit をクリックします。
-
WebAppEndpoint
を実際の WebApp エンドポイント URL に置き換えて、次の CORS 設定を追加します。ウェブアプリエンドポイント URL は、 AWS Transfer Family コンソールの WebApps にあります。https://webapp-***************.transfer-webapp.us-west-2.on.aws のようになります。
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "PUT", "POST", "DELETE", "HEAD" ], "AllowedOrigins": [ "https://
WebAppEndpoint
" ], "ExposeHeaders": [ "last-modified", "content-length", "etag", "x-amz-version-id", "content-type", "x-amz-request-id", "x-amz-id-2", "date", "x-amz-cf-id", "x-amz-storage-class", "access-control-expose-headers" ], "MaxAgeSeconds": 3000 } ] -
[Save changes (変更の保存)] をクリックします。
-
アップロードバケット (amzn-s3-demo-bucket2) のプロセスを繰り返します。
ステップ 7: 設定をテストする
-
AWS Transfer Family ウェブアプリ URL を開きます。この URL は、 AWS Transfer Family コンソールの WebApps の Access endpoint フィールドにあります。
-
アクセス許可で設定した IAM Identity Center ユーザー認証情報を使用してログインします。
-
ログインすると、両方の S3 の場所がホームページに表示されます。
-
ダウンロードバケット (amzn-s3-demo-bucket1) に移動し、ファイルをダウンロードしてもアップロードできないことを確認します。
-
アップロードバケット (amzn-s3-demo-bucket2) に移動し、ファイルをアップロードできることを確認します。
結論
1 人のユーザーに対して選択的 S3 バケットアクセスを持つ AWS Transfer Family WebApp を正常に設定しました。この設定により、ユーザーは IAM ロールと S3 Access Grants を通じてセキュリティを維持しながら、あるバケットからダウンロードして別のバケットにアップロードできます。
このアプローチは、ユーザーごとに S3 Access Grants で追加の許可を作成することで、複数のユーザーに拡張できます。これにより、バケットのアクセス許可をきめ細かく制御できます。基本的なウェブアプリの設定については、「」を参照してくださいチュートリアル: 基本的な Transfer Family ウェブアプリの設定。