UIから簡単にS3操作!AWSマネージドサービス AWS Transfer Family Web Apps 解説

記事タイトルとURLをコピーする

こんにちは、近藤(りょう)です!

今回は、フルマネージドでコード不要のウェブアプリケーションである AWS Transfer Family Web Apps を検証する機会がありましたので、その特徴と設定方法をご紹介します。

AWS Transfer Family Web Apps とは?

AWS Transfer Family Web Apps は、認証されたユーザーがAmazon Simple Storage Service (Amazon S3) の特定バケット内のファイルを一覧表示・アップロード・ダウンロード・コピー・削除できるフルマネージドのノーコードWebアプリケーションです。
コードを一切記述することなく、ファイルデータの交換を簡単かつ安全に実現できます。

AWS Transfer Family Web Apps の特徴

ユーザビリティ・管理

  • Amazon S3に保存されたデータへWebブラウザから簡単にアクセス・管理が可能
  • フルマネージドでコードの開発や独自アプリケーションのホスティングは不要

ファイル転送機能

  • 最大160GiBのファイルアップロード・ダウンロードに対応
  • TLSで保護されたHTTPS接続による安全なデータ転送

認証・認可

  • 認証には AWS IAM Identity Center を必須で利用(SAML/OIDC連携に対応)
  • S3 Access Grantsを利用し、表示・ダウンロード・アップロードなどの詳細なアクセス制御が可能

AWS Transfer Family Web Apps の制約

AWS Transfer Family Web Apps には以下の制約があります。

  • クエリあたりの検索結果の最大数:10,000件
  • クエリあたりの最大検索範囲:10,000件のファイル
  • ファイルの最大アップロードサイズ:160GB(149GiB)
  • コピー可能なファイルの最大サイズ:5.36GB(5GiB)
  • ドット(.)で始まる・終わるフォルダ名は非サポート

クロスアカウントバケットについては現在サポートされていないため、今後のアップデートに期待したいところですね。

docs.aws.amazon.com

AWS Transfer Family Web Apps のコスト

AWS Transfer Family Web Apps の料金はWebアプリケーション単位 + 時間で発生します。

項目 コスト
Webアプリケーションが有効になっている時間 USD 0.50/時間/ユニット
  • 利用可能なリージョンで一律の料金でした。
  • ユニットあたり5分間に最大250の一意のセッションを提供可能です。
  • 1ユニットを24時間稼働させると 12USD/日、1か月では 360USD となります。

aws.amazon.com

AWS Transfer Family Web Apps の設定

Amazon Web Services ブログ に設定方法が記載がありましたのでそちらをベースに進めていきます。 aws.amazon.com

前提

  • IAM Identity Center が有効になっていること
  • WebアプリケーションからアクセスしたいS3バケットが作成済みであること

ウェブアプリの作成

Transfer Family > ウェブアプリ > ウェブアプリを作成

ウェブアプリ作成

ウェブアプリを作成 権限タイプとウェブアプリユニットを選択して「次へ」進みます。

権限タイプで作成したロールを利用したい場合は「Create an identity bearer role」を参照ください。

「新しいサービスロールを作成して使用する」を選択した場合、内容としては同じものが作成されます。

Webアプリ設定-1


ウェブアプリユニット は 4つから選択できるようです。
ウェブアプリユニット選択


ウェブアプリのデザインを入力して「次へ」進みます。
今回は、ServerWorksのロゴとファビコンをアップロードしてみました。
ウェブアプリのデザイン

確認画面が表示されるので問題なければ「ウェブアプリの作成」をします。

ユーザーまたはグループの割り当て

AWS Transfer Family Web Apps にアクセスできるIAM Identity Center に登録しているユーザーまたはグループを割り当てます。
今回は、IAM Identity Center のグループ(groupA)を割り当てます。

ユーザーまたはグループを割り当て-1

ユーザーまたはグループを割り当て-2

ユーザーまたはグループを割り当て-3

ユーザーまたはグループを割り当て-4

S3 Access Grantsの設定

S3 Access Grants で利用するIAMロールを作成します。
Create an access grants role の項目を参照下さい。
今回の S3 Access Grants で利用するIAMロールのポリシーには AmazonS3FullAccess をアタッチしていますが必要に応じて権限を検討下さい。

docs.aws.amazon.com

S3 Access Grants を作成します。(作成済みの場合はSkip)
Amazon S3 > Access Grants > S3 Access Grants インスタンスを作成

S3 Access Grants インスタンスを作成


利用する IAM アイデンティティセンターインスタンスの ARN を入力して「次へ」進みます。

S3 Access Grants インスタンスを作成-1


AWS Transfer Family Web Apps で利用するS3バケットを選択して「次へ」進みます。

S3 Access Grants インスタンスを作成-2


以下、必要な項目を入力または選択して「次へ」進みます。

  • サブプレフィックス
    • 許可の範囲を設定します。(プレフィックスがなくても作成されます。)
  • 許可
    • ✅ 読み込み
    • ✅ 書き込み
  • 被付与者タイプ
    • IAM Identity Center の情報から設定します。
  • ディレクトリアイデンティティタイプ
    • IAM Identity Centerのユーザーもしくはグループの単位で許可を指定できます。(IAM Identity Center のユーザーまたはグループIDが必要となります。)

S3 Access Grants インスタンスを作成-3


確認画面が表示されるので問題なければ「完了」を押下します。

Amazon S3 CORS の設定

Amazon S3 バケット側で、CORS の設定が必要です。
Amazon S3 > バケット > 対象のバケットを選択して
アクセス許可 > Cross-Origin Resource Sharing (CORS) を設定します。

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "DELETE",
            "HEAD"
        ],
        "AllowedOrigins": [
            "https://{ウェブアプリエンドポイント}",
            "https://*.{ウェブアプリエンドポイント}"
        ],
        "ExposeHeaders": []
    }
]

docs.aws.amazon.com

AWS Transfer Family Web Apps アクセス

AWS Transfer Family Web Apps の接続URLは「AWS Transfer Family > ウェブアプリ > 作成したアプリ > アクセスエンドポイント」から確認できます。

アクセスエンドポイント


AWS Transfer Family Web Apps 画面

ウェブアプリのURLにアクセスすると、AWS IAM Identity Centerのログイン画面が表示されますのでログインを行うと AWS Transfer Family Web Apps の画面が表示できます。

Transfer Family Web Apps アクセス-1


ロゴとファビコンも表示されていました。
ページタイトルは長かったので見切れてました。
ウェブアプリのデザイン 確認


AWS Transfer Family Web Apps 操作

バケット内のファイルの一覧表示・アップロード・ダウンロード・コピー・削除は問題なく操作できます。

フォルダ作成はできましたがフォルダの削除は選択ができないのでS3のコンソール画面から削除する必要があります。

Transfer Family Web Apps フォルダ-1


ファイル検索も試してみました。「Include subfolders」を選択するとサブフォルダ内のファイルも再帰的に検索してくれます。
Transfer Family Web Apps 検索-1
クエリあたりの最大検索範囲:10,000件のファイルとなります。

別ユーザーのアクセス確認

AWS Transfer Family Web Apps の別グループのアクセス権を確認するために AWS Transfer Family Web Apps に IAM Identity Center の groupB 割り当て と S3 Access Grants にgroupB用の権限を作成しました。

今回はバケット内のgroupB プレフィックス内を権限範囲としました。

groupB に所属しているユーザーで AWS Transfer Family Web Apps にログインすると想定通りgroupB のプレフィックスを参照でき groupA は参照できていませんでした。

Transfer Family Web Apps アクセス-groupB

カスタムURLとエンドユーザー向け手順

カスタムURLもCFnが提供されているので実装は簡単となっています。
CORSの設定が必要ですのでそこはお忘れなく。

docs.aws.amazon.com

Transfer Family Web Apps のエンドユーザー向け手順も公式に用意されてありすぐ展開できそうです。

docs.aws.amazon.com

まとめ

S3のプレフィックス単位でのアクセス制御設計を最初にしっかり決めておくことで、スムーズな導入ができそうです。 また、コストはややネックではありますが、ノーコードでアプリの保守・開発が不要な点は大きなメリットではないでしょうか。
UI のカスタマイズを重視したい場合は、AWS Amplify の Storage Browser for S3 の利用を検討し、独自開発する選択肢もあります。 EventBridge と連携すればアップロード後のワークフロー自動化も実現しやすく、業務効率化もできるかもしれないですね。

近藤 諒都

(記事一覧)

カスタマーサクセス部CS5課

夜行性ではありません。朝活派です。

趣味:お酒、旅行、バスケ、掃除、家庭用パン作り(ピザも)など

2025 Japan AWS All Certifications Engineers