

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Transfer Family ウェブアプリ
<a name="web-app"></a>

ウェブアプリケーションを作成して、ウェブブラウザ経由で Amazon Simple Storage Service (S3) との間でデータを転送するシンプルなインターフェイスを有効にできます。これには、サーバーを作成またはプロビジョニング AWS Transfer Family する必要はありません。

Transfer Family ウェブアプリケーションが導入される前に、エンドユーザーはクライアント、カスタムビルド、またはサードパーティーソリューションを使用して Amazon S3 のデータにアクセスする必要がありました。これは、顧客とパートナーの厳格なセキュリティ要件と、クライアントアプリケーションが技術者以外のユーザーにとって運用が困難であるためです。

ウェブアプリの起動により、エンドユーザーが Amazon S3 でデータを閲覧、アップロード、ダウンロードできるように、ブランド化された安全で可用性の高いポータルを拡張できるようになりました。ウェブアプリケーションは、 AWS IAM アイデンティティセンター および Amazon S3 Access Grants とネイティブに統合されています。つまり、認証されたユーザーのみが、アクセスが許可されているデータを表示できます。ウェブアプリケーションは[Amazon S3 用の Storage Browser ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-browser.html)を使用して構築されており、コードを記述したり、独自のアプリケーションをホストしたりすることなく、フルマネージド型のサービスで同じエンドユーザー機能を提供します。

Transfer Family ウェブアプリ AWS のサービス で使用する他の の詳細については、次のドキュメントを参照してください。
+ [Amazon Simple Storage Service ユーザーガイドのS3 Access Grants によるアクセスの管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html)」
+ [AWS IAM アイデンティティセンター ユーザーガイド](https://docs.aws.amazon.com/singlesignon/latest/userguide/)
+ [Amazon S3 Access Grants ワークショップ](https://catalog.us-east-1.prod.workshops.aws/workshops/77b0af63-6ad2-4c94-bfc0-270eb9358c7a/en-US)
+ [フルマネージド Amazon S3 ファイル転送用の AWS Transfer Family ウェブアプリの発表](https://aws.amazon.com/blogs/aws/announcing-aws-transfer-family-web-apps-for-fully-managed-amazon-s3-file-transfers/)

Transfer Family ウェブアプリの使用を開始するには、以下のリソースが役立ちます。
+ ユーザーガイドでは、Transfer Family ウェブアプリをセットアップするための詳細なstep-by-stepのチュートリアルを以下に示します[チュートリアル: 基本的な Transfer Family ウェブアプリのセットアップ](web-app-tutorial.md)。
+ **AWS 入門リソースセンター**には、[AWS Transfer Family ウェブアプリの開始方法という](https://aws.amazon.com/getting-started/hands-on/set-up-an-aws-transfer-family-web-app/)チュートリアルがあります。
+ 次の動画では、Transfer Family ウェブアプリの使用を開始するためのチュートリアルを示します。  
[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/Ie9M0qBGrCE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/Ie9M0qBGrCE)

## AWS リージョン Transfer Family ウェブアプリ用
<a name="webapp-regions"></a>

AWS Transfer Family ウェブアプリは、メキシコ (中部) を除く[AWS Transfer Family サービスエンドポイント](https://docs.aws.amazon.com//general/latest/gr/transfer-service.html#transfer-region)に記載されているように、Transfer Family がサポートされているすべてのリージョンで使用できます。

ウェブアプリケーションの VPC エンドポイントは、ウェブアプリケーションが利用可能なすべての AWS リージョン でサポートされています。

## AWS Transfer Family ウェブアプリケーションのブラウザ互換性
<a name="webapp-browsers"></a>

Transfer Family ウェブアプリは、次のブラウザをサポートしています。


| ブラウザ | バージョン | 互換性 | 
| --- | --- | --- | 
| Microsoft Edge | 最新 3 バージョン | 互換性あり | 
| Mozilla Firefox | 最新 3 バージョン | 互換性あり | 
| Google Chrome | 最新 3 バージョン | 互換性あり | 
| Apple Safari | 最新 3 バージョン | 互換性あり | 

## Transfer Family ウェブアプリを作成する方法
<a name="webapp-process"></a>

次の図は、Transfer Family ウェブアプリケーションアーキテクチャを示しています。

![\[Transfer Family ウェブアプリとやり取り AWS のサービス する を示すアーキテクチャ図。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-architecture.png)


この図から、Transfer Family ウェブアプリケーションは次の とやり取りしていることがわかります AWS のサービス。
+ ストレージ用の Amazon S3 とセッション認証情報を取得するための Amazon S3 Access Grants。
+ AWS IAM アイデンティティセンター フェデレーティッド ID プロバイダーとして。
+ ウェブアプリのカスタム URL を設定する場合は Amazon CloudFront。

ウェブアプリケーションを使用する場合は、次の制限に注意してください。
+ クエリあたりの検索結果の最大数: 10,000
+ Transfer Family ウェブアプリで使用される Amazon S3 バケットは、ウェブアプリ自体と同じアカウントにある必要があります。クロスアカウントバケットは現在サポートされていません。
+ クエリあたりの最大検索幅: 10,000 件の検索ファイル
+ ファイルあたりの最大アップロードサイズ: 160 GB (149 GiB)
+ コピーの最大サイズファイル: 5.36 GB (5 GiB)
+ ドット (.) で始まるフォルダ名または終わるフォルダ名はサポートされていません

**前提条件**  
*で AWS Identity and Access Management、必要なロールを設定します。*手順で指定したコードブロックを貼り付けます。必要なロールの設定については、「」を参照してください[Transfer Family ウェブアプリケーションの IAM ロールを設定する](webapp-roles.md)。
+ ID ベアラーロールを作成します。
+ S3 Access Grants で使用する IAM ロールを作成します。S3 Access Grants はこの IAM ロールを引き受けて、登録された Amazon S3 ロケーションの被付与者に一時的な認証情報を提供します。

**Transfer Family ウェブアプリを作成するプロセス**  
ウェブアプリケーションを作成し、エンドユーザーを稼働させるには、次のタスクを実行します。

1. フェ*デレーティッド ID プロバイダーとして機能するように IAM Identity Center を設定します*。IAM Identity Center で次のタスクを実行します。IAM Identity Center の設定の詳細については、「」を参照してください[Transfer Family ウェブアプリケーションの ID プロバイダーを設定する](webapp-identity-center.md)。

   1. IAM Identity Center インスタンスをまだ作成していない場合は、作成します。

   1. ID ソースを決定します。デフォルトの IAM Identity Center ディレクトリでも、サードパーティープロバイダー (Okta など) でもかまいません。

   1. ウェブアプリを使用するユーザーまたはグループを作成または識別します。

   1. ID ソースに IAM Identity Center ディレクトリを使用している場合は、作成したユーザー ID またはグループ IDsを書き留めます。後で S3 Access Grants を使用してアクセス許可を作成するときに必要になります。

1. *Amazon S3 で、Amazon S3 Access Grants を設定します。*S3 Access Grants の詳細については、「[Transfer Family ウェブアプリの Amazon S3 Access Grants を設定する](webapp-access-grant.md)」を参照してください。
   + まだ S3 Access Grants インスタンスがない場合は、そのインスタンスを作成します AWS リージョン。
   + IAM ロールを使用してロケーションを登録します。
   + アクセス許可を作成します。

1. *Transfer Family で、次のタスクを実行します。*

   1. Transfer Family ウェブアプリを作成します。Transfer Family ウェブアプリの作成方法の詳細については、「」を参照してください[Transfer Family ウェブアプリを設定する](webapp-configure.md)。
**重要**  
ウェブアプリケーションで使用されるすべての Amazon S3 バケットの Cross-Origin Resource Sharing (CORS) を設定します。CORS の設定については、「」を参照してください[バケットの Cross-Origin Resource Sharing (CORS) を設定する](access-grant-cors.md)。

   1. ユーザーまたはグループをウェブアプリに割り当てます。ユーザーとグループを割り当てる方法の詳細については、「」を参照してください[Transfer Family ウェブアプリへのユーザーまたはグループの割り当てまたは追加](webapp-add-users.md)。

   1. (オプション) ウェブアプリケーションのアクセスエンドポイントをカスタム URL で更新します。カスタム URL の作成については、「」を参照してください[アクセスエンドポイントをカスタム URL で更新する](webapp-customize.md)。

   1. エンドユーザーがウェブアプリにログインして操作できるように、アクセスエンドポイント URL をエンドユーザーに提供します。

# Transfer Family ウェブアプリケーションの ID プロバイダーを設定する
<a name="webapp-identity-center"></a>

次のセクションでは、ID プロバイダーを設定する方法について説明します。

開始するには、ID ソースが必要です。IAM Identity Center ディレクトリ、 AWS Directory Service for Microsoft Active Directory、または外部 ID プロバイダーを使用できます。Transfer Family は、IAM Identity Center をフェデレーティッド ID プロバイダーとして使用します。フェデレーティッド ID プロバイダーは、ユーザー認証情報を保存し、複数の組織間でユーザーを認証するシステムです。

IAM Identity Center ディレクトリを ID ソースとして使用していない場合は、次のトピックを参照してください。
+ [外部 ID プロバイダーを管理する](https://docs.aws.amazon.com//singlesignon/latest/userguide/manage-your-identity-source-idp.html)
+ [Microsoft AD ディレクトリに接続する ](https://docs.aws.amazon.com//singlesignon/latest/userguide/manage-your-identity-source-ad.html)
+ [IAM Identity Center の組織インスタンスとアカウントインスタンス](https://docs.aws.amazon.com/singlesignon/latest/userguide/identity-center-instances.html)
+ [IAM Identity Center アイデンティティソースのチュートリアル](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html)

**注記**  
IAM Identity Center では、インスタンスごとに 1 つの ID ソースのみを持つことができます AWS リージョン。詳細については、[「IAM Identity Center の前提条件と考慮事項](https://docs.aws.amazon.com/singlesignon/latest/userguide/identity-center-prerequisites.html)」を参照してください。

IAM Identity Center ディレクトリを ID ソースとして使用する予定で、クイックセットアップが必要な場合は、このトピックをスキップして に移動[Transfer Family ウェブアプリを作成する](webapp-configure.md#web-app-create)し、ウィザードから IAM Identity Center インスタンスを作成できます。

**Transfer Family ウェブアプリで使用する AWS IAM アイデンティティセンター ように を設定するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/) で AWS IAM アイデンティティセンター コンソールを開きます。

1. アカウントインスタンスまたは の組織インスタンスを作成して使用できます AWS IAM アイデンティティセンター。
   + アカウントインスタンスの詳細については、[「 のアカウントインスタンスを作成する AWS IAM アイデンティティセンター](https://docs.aws.amazon.com/singlesignon/latest/userguide/create-account-instance.html)」を参照してください。IAM アイデンティティセンターのアカウントインスタンスを使用すると、サポートされている AWS マネージドアプリケーションと OpenID Connect (OIDC) ベースのカスタマーマネージドアプリケーションをデプロイできます。アカウントインスタンスは、IAM Identity Center のワークフォースアイデンティティとアクセスポータル機能を活用して AWS アカウント、アプリケーションの独立したデプロイを 1 つの でサポートします。
   + 組織インスタンスの詳細については、[「IAM Identity Center の組織インスタンス](https://docs.aws.amazon.com/singlesignon/latest/userguide/organization-instances-identity-center.html)」を参照してください。単一の組織インスタンスを使用して、ユーザーとグループのアクセスを一元管理できます。

1. IAM アイデンティティセンター**の設定**ページで、インスタンス ARN を書き留めます。この値は、**Amazon S3 Access Grant **インスタンスを作成するときに必要になります。  
![\[インスタンス ARN が丸で囲まれた設定ページ AWS IAM アイデンティティセンター を示すコンソールのスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-identity-center.png)

1. Transfer Family ウェブアプリで使用する 1 人以上のユーザーと、オプションでグループを作成します。ID プロバイダーとして IAM Identity Center ディレクトリを使用している場合は、ウェブアプリ自体から直接ユーザーを追加することもできます。詳細については、「[Transfer Family ウェブアプリへのユーザーまたはグループの割り当てまたは追加](webapp-add-users.md)」を参照してください。

# Transfer Family ウェブアプリケーションの IAM ロールを設定する
<a name="webapp-roles"></a>

2 つのロールが必要です。1 つはウェブアプリケーションの ID ベアラーロールとして使用し、もう 1 つはアクセス許可の設定に使用します。ID ベアラーロールは、認証されたユーザーの ID をセッションに含めるロールです。これは、ユーザーに代わって S3 Access Grants にデータアクセスをリクエストするために使用されます。

**注記**  
ID ベアラーロールを作成する手順はスキップできます。Transfer Family サービスで ID ベアラーロールを作成する方法については、「」を参照してください[Transfer Family ウェブアプリを作成する](webapp-configure.md#web-app-create)。  
アクセス許可ロールを作成する手順はスキップできます。アクセス許可を作成する手順で、S3 ロケーションを登録するステップで、**新しいロールを作成する**を選択します。

**ID ベアラーロールを作成する**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. **ロール**を選択し、**ロールを作成します**。

1. **カスタム信頼ポリシー**を選択し、次のコードに貼り付けます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service":"transfer.amazonaws.com"
               },
               "Action": [
                   "sts:AssumeRole",
                   "sts:SetContext"
               ]
           }
       ]
   }
   ```

1. **次へ** を選択し、アクセス**許可の追加** をスキップして、次**へ** を再度選択します。

1. など、名前を入力します`web-app-identity-bearer`。

1. **ロールの作成** を選択して、ID ベアラーロールを作成します。

1. リストから作成したロールを選択し、アクセス**許可ポリシー**パネルでアクセス**許可の追加** > **インラインポリシーの作成**を選択します。

1. **ポリシーエディタ**で **JSON** を選択し、次のコードブロックに貼り付けます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetDataAccess",
                   "s3:ListCallerAccessGrants",
                   "s3:ListAccessGrantsInstances"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

1. ポリシー名に と入力し`AllowS3AccessGrants`、**ポリシーの作成**を選択します。

次に、一時的な認証情報を被付与者に供給するために S3 Access Grants が引き受けるロールを作成します。

**注記**  
サービスが ID ベアラーロールを作成することを許可すると、そのロールは混乱した代理保護を設定します。したがって、そのコードはここに表示されるコードとは異なります。

**アクセス許可ロールを作成する**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. **ロール**を選択し、**ロールを作成します**。このロールには、 の S3 データにアクセスするアクセス許可が必要です AWS リージョン。

1. **カスタム信頼ポリシー**を選択し、次のコードに貼り付けます。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "access-grants.s3.amazonaws.com"
               },
               "Action": [
                   "sts:AssumeRole",
                   "sts:SetContext"
               ]
           }
       ]
   }
   ```

1. 次**へ** [「ロケーションの登録](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-location-register.html)」の説明に従って、最小限のポリシーを追加します。推奨されませんが、**AmazonS3FullAccess** 管理ポリシーを追加できます。これは、ニーズに対して許容しすぎる可能性があります。

1. **Next** を選択し、名前を入力します (例: `access-grants-location`)。

1. **ロールを作成する**を選択します。

**注記**  
サービスがアクセス許可ロールを作成することを許可すると、そのロールは混乱した代理保護を設定します。したがって、そのコードはここに表示されるコードとは異なります。

# Transfer Family ウェブアプリを設定する
<a name="webapp-configure"></a>

このセクションでは、Transfer Family ウェブアプリケーションを作成する手順について説明します。使用できるユーザーとグループを割り当てるには、「」を参照してください[Transfer Family ウェブアプリへのユーザーまたはグループの割り当てまたは追加](webapp-add-users.md)。

**注記**  
これらの手順を繰り返して、ウェブアプリケーションを追加します。前に作成した IAM ロールは再利用できます。新しいウェブアプリケーションのアクセスエンドポイントを各バケットの Cross-Origin Resource Sharing (CORS) ポリシーに追加してください。

## Transfer Family ウェブアプリを作成する
<a name="web-app-create"></a>

**注記**  
ID プロバイダーに IAM Identity Center ディレクトリを使用していない場合は、「」で説明されているように、IAM Identity Center を既に設定し、サードパーティーの ID プロバイダーを設定するまで、ウェブアプリケーションの作成を試みないでください[Transfer Family ウェブアプリケーションの ID プロバイダーを設定する](webapp-identity-center.md)。

Transfer Family ウェブアプリを作成するには、次の手順を実行します。

**Transfer Family ウェブアプリを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) で AWS Transfer Family コンソールを開きます。

1. 左側のナビゲーションペインで、**ウェブアプリ**を選択します。

1. **ウェブアプリの作成** を選択します。

   認証アクセスの場合、ペインは次のように入力されます。
   + で組織インスタンスまたはアカウントインスタンスを既に作成している場合は AWS IAM アイデンティティセンター、IAM **Identity Center のアカウントインスタンスに接続された AWS Transfer Family アプリケーション**というメッセージが表示されます。
   + アカウントインスタンスがすでにあり、組織インスタンスのメンバーである場合は、接続するインスタンスを選択できます。
   + アカウントインスタンスをまだお持ちでない場合、または組織インスタンスのメンバーである場合は、アカウントインスタンスを作成するオプションが表示されます。

1. [**Endpoint type**] (エンドポイントタイプ) として [**Publicly accessible**] (パブリックにアクセス可能な) エンドポイントタイプを選択します。**VPC ホステッド**エンドポイントについては、「[VPC で Transfer Family ウェブアプリを作成する](create-webapp-in-vpc.md)」を参照してください。

1. アクセス**許可タイプ**ペインでは、以前に作成したロールを使用するか、サービスにロールを作成させることができます。
   + ID ベアラーロールを既に作成している場合は、**既存のロールを使用する**を選択し、**既存のロールの選択メニューからロール**を選択します。
   + サービスにロールを作成させるには、**新しいサービスロールを作成して使用します**。

1. **ウェブアプリユニット**ペインで、値を選択します。1 つのウェブアプリユニットで、最大 250 の一意のセッションからのウェブアプリアクティビティを許可します。ウェブアプリケーションを作成するときは、予想されるピークワークロードボリュームに基づいて必要なユニット数をプロビジョニングします。ウェブアプリユニットを変更すると、請求に影響します。料金については、「[AWS Transfer Family 料金](https://aws.amazon.com/aws-transfer-family/pricing)」を参照してください。

1. で Transfer Family を使用している場合は AWS GovCloud (US) Region、**FIPS 有効ペインで FIPS 有効エンドポイント**チェックボックスを選択できます。 ****それ以外の場合 AWS リージョン、このオプションは使用できません。

1. (オプション) ウェブアプリの整理に役立つタグを追加します。キーとして**名前**、値としてわかりやすい名前のタグを追加することをお勧めします。

1. [**次へ**] を選択します。この画面では、オプションでウェブアプリのタイトルを指定できます。タイトルを指定しない場合、**Transfer Web App** のデフォルトのタイトルが提供されます。ロゴとファビコンのイメージファイルをアップロードすることもできます。

1. **Next** を選択し、Create **web app **を選択します。

![\[ウェブアプリダッシュボードと、左側のナビゲーションパネルから選択するためのメニュー項目を表示する画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-transfer-dashboard.png)


**注記**  
ウェブアプリケーションエンドポイントからアクセスされるすべてのバケットに対して、Cross-Origin Resource Sharing (CORS) ポリシーを設定してください。

# VPC で Transfer Family ウェブアプリを作成する
<a name="create-webapp-in-vpc"></a>

このセクションでは、VPC で Transfer Family ウェブアプリケーションを作成する手順について説明します。ウェブアプリケーションのエンドポイントを Virtual Private Cloud (VPC) 内でホストして、パブリックインターネットを経由せずに Amazon S3 バケットとの間でデータを転送できます。ウェブアプリを使用できるユーザーとグループを割り当てるには、「」を参照してください[Transfer Family ウェブアプリへのユーザーまたはグループの割り当てまたは追加](webapp-add-users.md)。

**注記**  
Transfer Family ウェブアプリケーション VPC エンドポイントを使用する際にend-to-endのデータフローを確保するには、3 つの追加コンポーネントを実装する必要があります。まず、Amazon S3 Access Grants API コールに必要な Amazon S3 Control API オペレーション用の PrivateLink エンドポイントを設定します。次に、PrivateLink Amazon S3 Gateway エンドポイント (VPC 内からのトラフィック用) または Amazon S3 Interface エンドポイント (VPN または Direct Connect 経由のオンプレミスネットワークからのトラフィック用) を使用してAmazon S3 データアクセス用のエンドポイントを設定します。3 つ目は、これらの VPC エンドポイントからのトラフィックのみを許可するようにバケットポリシーを更新して、Amazon S3 バケットアクセスをロックダウンすることです。この組み合わせにより、すべてのデータ転送がプライベートネットワークインフラストラクチャ内にとどまり、パブリックインターネットを経由することはありません。

## Transfer Family ウェブアプリを作成する
<a name="webapp-vpce-create"></a>

**前提条件**
+ AWS IAM アイデンティティセンター 設定済みの ID プロバイダーを使用して をセットアップします。「[Transfer Family ウェブアプリケーションの ID プロバイダーを設定する](webapp-identity-center.md)」を参照してください。
+ VPC とネットワークコンポーネントをセットアップします。[「VPC の作成](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html#create-vpc-and-other-resources)」を参照してください。
+ Amazon S3 Control オペレーション用に設定された API エンドポイント。[Amazon S3インターフェイスエンドポイントへのアクセス](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#s3-creating-vpc)」を参照してください。
+ Amazon S3 (ゲートウェイまたはインターフェイス) のセットアップ用の VPC エンドポイント。[Amazon S3エンドポイントのタイプ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#types-of-vpc-endpoints-for-s3)」を参照してください。インターフェイスエンドポイントを使用している場合は、プライベート DNS を有効にする必要があります。例については、「 [を使用した Amazon S3 のプライベート DNS サポートの紹介 AWS PrivateLink](https://aws.amazon.com/blogs/storage/introducing-private-dns-support-for-amazon-s3-with-aws-privatelink/)」を参照してください。

**注記**  
AWS IAM アイデンティティセンター は VPC エンドポイントをサポートしていません。すべての認証リクエストはパブリックインターネットを通過します。さらに、Transfer Family ウェブアプリケーションでは、静的コンテンツ (JavaScript、CSS、HTML ファイルなど) をロードするためにインターネットアクセスが必要です。パブリックインターネットアクセスの要件は、データアクセスとは異なります。VPC エンドポイントは、接続が VPC インフラストラクチャを介してルーティングされるようにします。

**Transfer Family ウェブアプリを作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/) で AWS Transfer Family コンソールを開きます。

1. 左側のナビゲーションペインで、**ウェブアプリ**を選択します。

1. **ウェブアプリの作成** を選択します。認証アクセスの場合、ペインは次のように入力されます。
   + で組織またはアカウントインスタンスを既に作成している場合は AWS IAM アイデンティティセンター、**IAM Identity Center のアカウントインスタンスに接続された AWS Transfer Family アプリケーション**というメッセージが表示されます。
   + アカウントインスタンスがすでにあり、組織インスタンスのメンバーである場合は、接続するインスタンスを選択できます。
   + アカウントインスタンスをまだお持ちでない場合、または組織インスタンスのメンバーである場合は、アカウントインスタンスを作成するオプションが表示されます。

1. **エンドポイント設定**セクションで、ユーザーがウェブアプリにアクセスする方法を選択します。
   + **パブリックアクセス**可能: ウェブアプリケーションエンドポイントは HTTPS 経由でパブリックにアクセスできます。このオプションは VPC 設定を必要としないため、セットアップが簡単で、広く一般に使用されるアプリケーションに適しています。
   + **VPC ホスト**: ウェブアプリケーションエンドポイントは Virtual Private Cloud (VPC) 内でホストされ AWS Direct Connect、VPC ネットワーク、または VPN 接続を介してプライベートネットワークアクセスを提供します。このオプションは、ネットワーク分離を通じてセキュリティを強化し、内部アプリケーションに推奨されます。
**注記**  
デュアルスタック VPC 設定が必要です。詳細については、*Amazon Virtual Private Cloud ユーザーガイド*」の[「デュアルスタック VPC 設定の例](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-example.html)」を参照してください。

     VPC ホストエンドポイントを設定するときは、以下を指定する必要があります。
     + **VPC**: 既存の VPC を選択するか、新しい VPC を作成します。**VPC の作成**ボタンを使用できます。
     + **アベイラビリティーゾーン**: エンドポイントをデプロイするアベイラビリティーゾーンを選択します。
     + **サブネット**: 選択した各アベイラビリティーゾーン内のサブネットを選択します。
     + **セキュリティグループ**: ソース IP アドレスに基づいてアクセスを制御するセキュリティグループを選択または作成します。指定しない場合、VPC のデフォルトのセキュリティグループが使用されます。VPC コンソールを使用してセキュリティグループを管理します。TCP ポート 443 で HTTPS 経由のネットワークからのインバウンドトラフィックを許可するように VPC セキュリティグループを設定します。これは、IAM Identity Center 認証とウェブアプリケーションの静的コンテンツのロードに必要です。
**注記**  
アクセスエンドポイントを VPC エンドポイント用にカスタマイズすることはできません。カスタム URL を追加するには、パブリックエンドポイントを使用します。

## 作成後のステップ
<a name="webapp-vpce-post-creation"></a>
+ ウェブアプリケーションエンドポイントからアクセスされるすべてのバケットに対して、Cross-Origin Resource Sharing (CORS) ポリシーを設定してください。「[クロスオリジンリソース共有 (CORS) ポリシー](#webapp-vpce-cors)」を参照してください。
+ バケットポリシーを更新して、VPC エンドポイントを介した VPC からのトラフィックのみを許可します。「[特定の VPC エンドポイントへのアクセスの制限](#webapp-vpce-bucket-policy)」を参照してください。
+ Transfer Family ウェブアプリにユーザーまたはグループを割り当てるか、追加します。「[Transfer Family ウェブアプリへのユーザーまたはグループの割り当てまたは追加](webapp-add-users.md)」を参照してください。

## クロスオリジンリソース共有 (CORS) ポリシー
<a name="webapp-vpce-cors"></a>

ウェブアプリケーションで使用されるすべてのバケットに対して、Cross-Origin Resource Sharing (CORS) を設定する必要があります。CORS の詳細については、[バケットの Cross-Origin Resource Sharing (CORS) を設定する](access-grant-cors.md) を参照してください。

**重要**  
次のポリシー例を使用する前に、許可されたオリジンをアクセスエンドポイントに置き換えます。それ以外の場合、エンドユーザーがウェブアプリ上の場所にアクセスしようとすると、エラーが発生します。

**ポリシーの例:**

```
[
  {
    "AllowedHeaders": [
      "*"
    ],
    "AllowedMethods": [
      "GET",
      "PUT",
      "POST",
      "DELETE",
      "HEAD"
    ],
    "AllowedOrigins": [
      "https://vpce-1234567-example.vpce-mq.transfer-webapp.us-east-1.on.aws"
    ],
    "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
  }
]
```

## 特定の VPC エンドポイントへのアクセスの制限
<a name="webapp-vpce-bucket-policy"></a>

以下に、`amzn-s3-demo-bucket` という特定のバケットに対するアクセスを ID が `vpce-1a2b3c4d` の VPC エンドポイントからのみに制限する Amazon S3 のバケットポリシーの例を示します。指定されたエンドポイントが使用されていない場合、ポリシーはバケットに対するすべてのアクセスを拒否します。`aws:SourceVpce` 条件はエンドポイントを指定します。`aws:SourceVpce` 条件では、VPC エンドポイントID のみが必要で、VPC エンドポイントリソースのARNは必要ありません。VPC からのトラフィックのみを許可するようにバケットポリシーを更新する方法の詳細については、[「バケットポリシーを使用した VPC エンドポイントからのアクセスの制御](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html)」を参照してください。ポリシーで条件を使用する方法の詳細については、[「条件キーを使用したバケットポリシーの例](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html)」を参照してください。このポリシーを適用する前提条件として、[Amazon S3 VPC エンドポイント](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html)を作成する必要があります。

**重要**  
次のポリシーの例を使用する前に、VPC エンドポイントの ID をユースケースに応じた値に置き換えてください。そうしないと、バケットにアクセスできません。

```
{
  "Version":"2012-10-17",
  "Id": "Policy1415115909152",
  "Statement": [
    {
      "Sid": "Access-to-specific-VPCE-only",
      "Principal": "*",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"],
      "Condition": {
        "StringNotEquals": {
          "aws:SourceVpce": "vpce-1a2b3c4d"
        }
      }
    }
  ]
}
```

# Transfer Family ウェブアプリへのユーザーまたはグループの割り当てまたは追加
<a name="webapp-add-users"></a>

Transfer Family ウェブアプリを作成したら、ウェブアプリにアクセスできるユーザーとグループを割り当てることができます。既に作成され、IAM Identity Center に保存されているユーザーを取得するか、[新しいユーザーを直接追加](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html)できます (IAM Identity Center ディレクトリを ID プロバイダーとして使用している場合）。新しいユーザーを追加すると、IAM Identity Center インスタンスにも追加されます。

次の点に注意してください。
+ IAM Identity Center ディレクトリを ID ソースとして使用していて、適切なアクセス許可がある場合にのみ、新しいユーザーを追加できます。組織インスタンスのメンバーである場合、ユーザーを追加するために必要なアクセス許可がない可能性があります。
**注記**  
ユーザーまたはグループをアプリケーションに割り当てない場合、ユーザーがウェブアプリにログインしようとするとエラーが発生します。
+ 新しいユーザーを作成する場合は、ウェブアプリのデータにアクセスできるように、このユーザーの S3 アクセス許可も作成する必要があります。
+ 新しいユーザーを作成すると、そのユーザーは IAM アイデンティティセンターからオンボーディング E メールを受信し、手順を説明します。

**Transfer Family ウェブアプリにユーザーを割り当てるには**

1. ウェブアプリリストに移動し、編集するリストを選択します。

1. **[ユーザーとグループの割り当て]** を選択します。  
![\[選択したウェブアプリの詳細を示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-transfer-details.png)

1. IAM Identity Center で以前に作成したユーザーを割り当てるには、**既存のユーザーとグループの割り当て**を選択します。新しいユーザーを作成するには、ステップ 4 に進みます。

   1. 情報画面が表示されます。**開始**方法を選択して続行します。

   1. ユーザーを検索します。検索条件の入力を開始するまで、ユーザーは表示されないことに注意してください。異なる場合は、*ユーザー名*ではなく*表示名*で検索する必要があります。完全一致のみが返されます。ユーザーが見つからない場合は、IAM Identity Center 管理コンソールに移動し、ユーザーを見つけてから、ここに表示名をコピーして貼り付けます。  
![\[ユーザーとグループをウェブアプリに追加するための検索ダイアログを示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-transfer-add-user.png)

   1. 追加するユーザーとグループを選択し、**割り当て**を選択します。

1. 新しいユーザーを作成するには、**「追加して新しいユーザーを割り当てる**」を選択します。

   1. 情報画面が表示されます。**開始**方法を選択して続行します。

   1. **[新しいユーザーの追加]** を選択します。

   1. ダイアログボックスにユーザー名、姓名、E メールアドレスのユーザーの詳細を入力します。  
![\[新しいユーザーの追加ダイアログを示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-transfer-add-user-new.png)

   1. **Next** を選択し、**Add **を選択してユーザーを追加し、ダイアログボックスを閉じるか、**Add new user** to create another user を選択します。

# バケットの Cross-Origin Resource Sharing (CORS) を設定する
<a name="access-grant-cors"></a>

ウェブアプリケーションで使用されるすべてのバケットに対して、Cross-Origin Resource Sharing (CORS) を設定する必要があります。*CORS 設定*は、バケットへのアクセスを許可するオリジンを識別するルールを定義するドキュメントです。CORS の詳細については、[「クロスオリジンリソース共有 (CORS) の設定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enabling-cors-examples.html?icmpid=docs_amazons3_console)」を参照してください。

**重要**  
CORS を設定しない場合、エンドユーザーがウェブアプリ上の場所にアクセスしようとすると、エラーが発生します。

**Amazon S3 バケットの Cross-Origin Resource Sharing (CORS) を設定するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. 左側のナビゲーションパネルから**バケット**を選択し、検索ダイアログでバケットを検索し、**アクセス許可**タブを選択します。

1. **クロスオリジンリソース共有 (CORS)** で、次のコードで**編集**して貼り付けます。*WebAppEndpoint* をウェブアプリの実際のアクセスエンドポイントに置き換えます。これは、ウェブアプリケーションの作成時に作成される VPC ホストエンドポイントまたはパブリックアクセスエンドポイント、または作成する場合はカスタムアクセスエンドポイントのいずれかです。ユーザーがウェブアプリにログオンしようとするとエラーが発生するため、末尾にスラッシュを入力しないようにしてください。
   + 正しくない例: `https://webapp-c7bf3423.transfer-webapp.us-east-2.on.aws/`
   + 正しい例:
     + `https://webapp-c7bf3423.transfer-webapp.us-east-2.on.aws`
     + `https://vpce-05668789767a-fh45z079.vpce-mq.transfer-webapp.us-east-1.on.aws`

   バケットを複数のウェブアプリケーションに再利用する場合は、それらのエンドポイントを`AllowedOrigins`リストに追加します。

   ```
   [
     {
       "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
     }
   ]
   ```

1.  **変更を保存**を選択して CORS を更新します。

CORS 設定をテストするには、[「CORS のテスト](https://docs.aws.amazon.com/AmazonS3/latest/userguide/testing-cors.html)」を参照してください。

# Transfer Family ウェブアプリの Amazon S3 Access Grants を設定する
<a name="webapp-access-grant"></a>

このトピックでは、Amazon S3 Access Grants を使用してアクセス許可を追加する方法について説明します。このアクセス権限は、企業ディレクトリ内のユーザーとグループに直接データへのアクセスを定義し、権限に基づいてjust-in-time、最小特権、一時的な認証情報を提供します。S3 Access Grants インスタンスの個々の許可により、企業ディレクトリ内の特定のユーザーまたはグループが、S3 Access Grants インスタンスに登録されているロケーション内でアクセスできるようになります。詳細については、「Amazon [S3 ユーザーガイド」の「S3 Access Grants の概念](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-concepts.html)」を参照してください。 Amazon S3 

**注記**  
Transfer Family ウェブアプリ以外の S3 Access Grants で IAM Identity Center ディレクトリを使用することはできません。

ID の伝播には Amazon S3 アクセス許可を指定する必要があります。Amazon S3 アクセス許可は、エンドユーザーがアクセスする必要があるデータを保存します。エンドユーザーが Transfer Family ウェブアプリにサインインすると、S3 Access Grants はユーザーの ID を信頼されたアプリケーションに渡します。このセクションでは、Amazon S3 アクセス許可インスタンスを追加および設定し、Amazon S3 バケットのアクセス許可を設定する方法について説明します。

**注記**  
アクセス許可の設定を完了するために必要なため、[IAM Identity Center インスタンスの ARN](webapp-identity-center.md#identity-center-arn) とユーザーまたはグループ ID を用意します。

**Amazon S3 Access Grants を使用して許可を作成するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) で Amazon S3 コンソールを開きます。

1. バケットを作成するか、ウェブアプリで使用する既存のバケットを書き留めます。バケットの作成については、[Amazon S3ユーザーガイド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)」を参照してください。

1. 左側のナビゲーションペインから、**アクセス許可**を選択します。

1. **S3 Access Grants インスタンスの作成**を選択し、次の情報を入力します。
   + ***「自分のリージョン*が自分のリージョンである自分のリージョンに IAM アイデンティティセンターインスタンスを追加する****」を選択します AWS リージョン。ID プロバイダーとして IAM Identity Center を使用していない場合は、このボックスをオフにしておきます。
   + IAM Identity Center インスタンス ARN に貼り付けます。  
![\[Amazon S3 Create Access Grants インスタンスダイアログとサンプル値を示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-grants-instance.png)

   **[次へ]** を選択して続行します。

1. **S3 バケットまたはプレフィックスをロケーションとして登録します**。デフォルトの場所 を登録し`s3://`、IAM ロールにマッピングすることをお勧めします。このデフォルトパスの場所は、アカウントの 内のすべての Amazon S3 バケットへのアクセスを対象とし AWS リージョン ています。アクセス許可を作成するときは、デフォルトの場所内のバケット、プレフィックス、またはオブジェクトにスコープを絞り込むことができます。

   以下の情報を指定します。
   + **スコープ**には、バケットを参照するか、バケットの名前を入力し、オプションでプレフィックスを入力します。
   + IAM ロールで、**新しいロールの作成**を選択して、サービスにロールを作成させます。

     または、「」で説明されているように、ロールを自分で作成し[Transfer Family ウェブアプリケーションの IAM ロールを設定する](webapp-roles.md)、ここにその ARN を入力することもできます。  
![\[Amazon S3 Register S3 Buckets or prefixes as locations ダイアログとデフォルトの Scope および Create new role settings を示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-grants-register-new.png)

   **[次へ]** を選択して続行します。

1. **グラントの作成**画面で、次の詳細を入力します。
   + アクセス**許可 で**、**読み取り**と**書き込み**を選択します。アクセス許可のアクセス許可は、読み取り専用または読み取りと書き込みのいずれかですが、書き込み専用はサポートされていません。
   + **被付与者タイプ**で、**IAM アイデンティティセンターからディレクトリアイデンティティ**を選択します。
   + **ディレクトリアイデンティティタイプ**で、今すぐ登録するタイプに応じて、**ユーザー**または**グループ**を選択します。
   + **IAM Identity Center のユーザー/グループ ID** で、ユーザーまたはグループの ID を貼り付けます。この ID は、**IAM Identity Center** コンソールと、ユーザーおよびグループテーブルの Transfer Family ウェブアプリで使用できます。  
![\[Amazon S3 Create Grant ダイアログとサンプル値を示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-access-grant-details.png)

   [**次へ**] を選択します。

1. 画面の設定を確認します。すべて正しい場合は、**完了**を選択してアクセス許可を作成します。または、**Cancel** または **Previous** を選択して変更を加えることもできます。  
![\[レビューと終了ダイアログとサンプル値を示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-access-grants-review.png)

![\[リストビューに新しいアクセス許可を示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-access-grants-finished.png)


これで、ウェブアプリのセットアップは完了です。設定したユーザーとグループは、アクセスポイントでウェブアプリにアクセスし、ログインして、ファイルをアップロードおよびダウンロードできます。

# アクセスエンドポイントをカスタム URL で更新する
<a name="webapp-customize"></a>

ウェブアプリで作成されるデフォルトのアクセスエンドポイントには、サービスによって生成された識別子が含まれています。ブランドエクスペリエンスを提供するために、ユーザーが Transfer Family ウェブアプリにアクセスするためのカスタム URL を指定することもできます。このトピックでは、カスタム URL を使用してアクセスエンドポイントを更新する方法について説明します。

**注記**  
アクセスエンドポイントを VPC エンドポイント用にカスタマイズすることはできません。カスタム URL を追加するには、パブリックエンドポイントを使用します。

**注記**  
次の手順は、推奨される [CloudFormation スタックテンプレート](https://s3.amazonaws.com/aws-transfer-resources/custom-domain-templates/aws-transfer-web-app-custom-domain-distribution.template.yml)の使用に依存しています。テンプレートを使用する必要はありません。[CloudFront コンソール](https://console.aws.amazon.com/cloudfront/v4/home)を直接使用してディストリビューションを作成できます。  
ただし、提供されたテンプレートによりプロセスが簡素化され、設定ミスの回避が容易になります。 CloudFormation テンプレートを使用しない場合は、次のガイドラインに従ってください。  
[オリジンリクエストポリシー](https://docs.aws.amazon.com//AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html#managed-origin-request-policy-cors-custom)はクエリ文字列と Cookie をオリジンに転送し、`Host`ヘッダーをオリジンに転送しないでください。
[キャッシュポリシー](https://docs.aws.amazon.com//AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html#managed-cache-policy-origin-cache-headers)では、キャッシュキーに `Host`ヘッダーを含めないでください。

**ウェブアプリ URL をカスタマイズするには**

1. Transfer Family が提供する AWS CloudFormation テンプレート、[CloudFormation スタックテンプレートを使用して CloudFront ](https://s3.amazonaws.com/aws-transfer-resources/custom-domain-templates/aws-transfer-web-app-custom-domain-distribution.template.yml) CloudFront ディストリビューションを作成します。

   1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) で CloudFormation コンソールを開きます。

   1. **スタックの作成**を選択し、以下を指定します。
      + **「前提条件 - テンプレートを準備する**」セクションで、**「既存のテンプレートを選択する**」を選択します。
      + **[テンプレートの指定]** セクションで、**[テンプレートファイルのアップロード]** を選択します。
      + [CloudFormation スタックテンプレート]( https://s3.amazonaws.com/aws-transfer-resources/custom-domain-templates/aws-transfer-web-app-custom-domain-distribution.template.yml)ファイルを保存し、ここにアップロードします。

   1. **Next** を選択し、次の情報を入力します。
      + **WebAppEndpoint**: ウェブアプリから値をコピーする
      + **AccessEndpoint**: 使用するカスタムドメイン名を指定します。
      + **AcmCertificateArn**: に保存されているパブリックまたはプライベートの SSL/TLS 証明書の ARN を指定します。 AWS Certificate Manager 

   1. 新しいスタックが作成されるまで CloudFormation ウィザードを完了します。

1. ウェブアプリで、**アクセスエンドポイント**を編集し、**カスタム URL** を、使用する URL に更新します。  
![\[Transfer Family ウェブアプリケーションのカスタムアクセスエンドポイントを示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-custom-name.png)

1. DNS レコードを作成して、カスタムドメイン名のトラフィックを CloudFront ディストリビューションにルーティングします。ゾーンに Route 53 を使用している場合は、CloudFront ディストリビューション名 (**xxxx.cloudfront.net** など) にエイリアスまたは CNAME レコードを作成できます。CloudFront で Amazon Route 53 を使用する方法については、[CloudFront ディストリビューションにトラフィックをルーティングするように Amazon Route 53 を設定する](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html#routing-to-cloudfront-distribution-config)」を参照してください。

1. デフォルトのアクセスエンドポイントを`AllowedOrigins`コードブロックの次の行に置き換えて、クロスオリジンリソース共有ポリシーを更新します。

   ```
    "https://custom-url"
   ```

   この変更は、ウェブアプリケーションで使用されるバケットごとに行う必要があります。

   更新後、CORS ポリシーの `AllowedOrigins`セクションは次のようになります。

   ```
   "AllowedOrigins": [
       "https://custom-url"],
   ```

   Transfer Family ウェブアプリごとに必要な AllowedOrigins エントリは 1 つだけです。

   詳細については、[Amazon S3バケットのクロスオリジンリソース共有 (CORS) の設定](access-grant-cors.md#cors-configure)」の手順を参照してください。

カスタムアクセスエンドポイントにアクセスし、このリンクをエンドユーザーと共有できるようになりました。

# Transfer Family ウェブアプリケーションの CloudTrail ログ記録
<a name="webapp-cloudtrail"></a>

CloudTrail は、 内で実行 AWS のサービス されたアクションのレコードを作成する です AWS アカウント。コンソールのサインイン、 AWS Command Line Interface コマンド、SDK/API オペレーションなどのアクティビティの API オペレーションを継続的にモニタリングして記録します。これにより、誰がどのようなアクションを実行したか、いつ、どこからどのようなアクションを実行したかを記録できます。CloudTrail は、 AWS 環境内のすべてのアクティビティの履歴を提供することで、監査、アクセス管理、規制コンプライアンスに役立ちます。

Transfer Family ウェブアプリでは、認証イベントとユーザーによって実行されたデータアクセスオペレーションの両方を追跡できます。包括的なログ記録を有効にするには、以下を実行する必要があります。

1. 認証アクティビティを追跡するための管理イベントをログに記録するように CloudTrail を設定します。

1. Amazon S3 データイベントを有効にして、ウェブアプリを介して実行されたファイルオペレーションを追跡します。

**以下の資料も参照してください。**
+ [IAM Identity Center の CloudTrail ユースケース](https://docs.aws.amazon.com/singlesignon/latest/userguide/sso-cloudtrail-use-cases.html)
+ [IAM Identity Center サインインイベントについて](https://docs.aws.amazon.com/singlesignon/latest/userguide/understanding-sign-in-events.html)
+ [CloudTrail userIdentity 要素](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)
+ 「[S3 バケットとオブジェクトの CloudTrail イベントログ記録の有効化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-cloudtrail-logging-for-s3.html)」
+ [Amazon S3 CloudTrail イベント](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cloudtrail-logging-s3-info.html)

## Amazon S3 データイベントの有効化
<a name="webapp-enable-s3-data-events"></a>

Amazon S3 バケットで Transfer Family ウェブアプリを介して実行されたファイルオペレーションを追跡するには、それらのバケットのデータイベントを有効にする必要があります。データイベントはオブジェクトレベルの API アクティビティを提供し、ウェブアプリユーザーが実行したファイルのアップロード、ダウンロード、その他のオペレーションを追跡するために特に役立ちます。

Transfer Family ウェブアプリケーションの Amazon S3 データイベントを有効にするには:

1. CloudTrail コンソールの [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/) を開いてください。

1. ナビゲーションペインで、**証跡**を選択し、既存の証跡を選択するか、新しい証跡を作成します。

1. **詳細イベントセレクタで**、**編集** を選択します。

1. **詳細イベントセレクタの追加** を選択します。

1. 最初のフィールドセレクタの場合:
   + **フィールド**を に設定する `eventCategory`
   + **演算子**を**等しい**値に設定する
   + **値を** に設定する `Data`

1. 2 番目の**フィールドセレクタで、フィールドの追加** と を選択します。
   + **フィールド**を に設定する `resources.type`
   + **演算子**を**等しい**値に設定する
   + **値を** に設定する `AWS::S3::Object`

1. (オプション) 特定のバケットのイベントのみをログに記録するには、**フィールドを追加** を選択し、以下を追加します。
   + **フィールド**を に設定する `resources.ARN`
   + **演算子**を **で始まる**ように設定
   + **値を** に設定する `arn:aws:s3:::your-bucket-name/`

1. **[Save changes]** (変更の保存) をクリックします。

または、レガシーデータイベント設定を使用することもできます。

1. **データイベント**で、**編集** を選択します。

1. **データイベントタイプ**で、**S3 バケットイベントとオブジェクトイベント**を選択します。

1. データイベントを記録する Amazon S3 バケットを選択します。現在**および将来のすべての S3 バケットを選択する**か、個々のバケットを指定できます。

1. **読み取り**イベント、**書き込み**イベント、またはその両方をログに記録するかどうかを選択します。

1. **[Save changes]** (変更の保存) をクリックします。

データイベントを有効にしたら、CloudTrail 用に設定された Amazon S3 バケットでこれらのログにアクセスできます。ログには、アクションを実行したユーザー、アクションのタイムスタンプ、影響を受ける特定のオブジェクト、Transfer Family ウェブアプリケーションを介して実行されたアクション`userId`の をトレースするのに役立つ `onBehalfOf`フィールドなどの詳細が含まれます。

### ログの検索と表示
<a name="webapp-find-view-logs"></a>

Transfer Family ウェブアプリケーションの CloudTrail ログを検索して表示するには、いくつかの方法があります。

#### CloudTrail コンソールの使用
<a name="webapp-find-logs-console"></a>

最近のイベントを表示する最も速い方法:

1. CloudTrail コンソールの [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/) を開いてください。

1. **イベント履歴** を選択します。

1. 以下によってイベントをフィルタリングします。
   + **イベントソース**: ウェブアプリイベント`signin.amazonaws.com`用
   + **イベントソース**: ファイルオペレーション`s3.amazonaws.com`用

1. イベントをクリックすると、詳細情報が表示されます。

#### Amazon S3 のログへのアクセス
<a name="webapp-find-logs-s3"></a>

Amazon S3 に保存されている完全なログファイルにアクセスするには:

1. CloudTrail 証跡の Amazon S3 バケットを特定します。

   ```
   aws cloudtrail describe-trails --query 'trailList[*].[Name,S3BucketName]' --output table
   ```

1. Amazon S3 のログファイルに移動します。

   ```
   aws s3 ls s3://your-cloudtrail-bucket/AWSLogs/account-id/CloudTrail/region/YYYY/MM/DD/
   ```

1. ウェブアプリ ID のログファイルをダウンロードして検索します。

   ```
   aws s3 cp s3://your-cloudtrail-bucket/AWSLogs/account-id/CloudTrail/region/YYYY/MM/DD/ . --recursive
   gunzip *.json.gz
   grep -l "webapp-1a2b3c4d5e6f7g8h9" *.json
   ```

#### AWS CLI を使用してイベントを検索する
<a name="webapp-find-logs-cli"></a>

以下を使用して、特定のウェブアプリイベントを検索します AWS CLI。

```
aws logs filter-log-events \
  --log-group-name /aws/cloudtrail/your-trail-name \
  --filter-pattern "webapp-1a2b3c4d5e6f7g8h9" \
  --start-time $(date -d "1 day ago" +%s)000
```

または、認証イベントを検索します。

```
aws logs filter-log-events \
  --log-group-name /aws/cloudtrail/your-trail-name \
  --filter-pattern "UserAuthentication" \
  --start-time $(date -d "1 day ago" +%s)000
```

## 認証ログの例
<a name="webapp-authentication-log-examples"></a>

CloudTrail は Transfer Family ウェブアプリケーションの認証イベントをログに記録し、サインイン試行の成功と失敗を追跡するのに役立ちます。これらのログは、セキュリティモニタリングとコンプライアンスの目的で特に役立ちます。

**Topics**
+ [認証情報検証のログエントリの例](#webapp-credential-verification-example)
+ [サインイン認証のログエントリの例](#webapp-signin-authentication-example)
+ [ListCallerAccessGrants のログエントリの例](#webapp-list-caller-access-grants-example)
+ [GetDataAccess イベントのログエントリの例](#webapp-get-data-access-example)

### 認証情報検証のログエントリの例
<a name="webapp-credential-verification-example"></a>

次の例は、認証プロセス中に発生する認証情報検証イベントの CloudTrail ログエントリを示しています。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "Unknown",
        "principalId": "123456789012",
        "arn": "",
        "accountId": "123456789012",
        "accessKeyId": "",
        "userName": "demo-user-2",
        "onBehalfOf": {
            "userId": "f12bb510-a011-702f-10dd-5607e2776dbc",
            "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9a670c546e"
        },
        "credentialId": "58138a11-87e5-401d-8f0b-7161c9389112"
    },
    "eventTime": "2025-08-08T15:29:30Z",
    "eventSource": "signin.amazonaws.com",
    "eventName": "CredentialVerification",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "192.0.2.224",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
    "requestParameters": null,
    "responseElements": null,
    "additionalEventData": {
        "AuthWorkflowID": "f304a48b-7b6d-41c8-b136-4f49c91c1f31",
        "CredentialType": "PASSWORD"
    },
    "requestID": "ff936828-4a81-453c-802d-81368b6bca1a",
    "eventID": "70cb7008-493d-42c2-a9eb-38bf168af6a8",
    "readOnly": false,
    "eventType": "AWS ServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "CredentialVerification": "Success"
    },
    "eventCategory": "Management"
}
```

このイベントでは、使用する特定の認証情報 ID と認証ワークフロー ID を示す、認証プロセスの認証情報検証ステップに関する追加の詳細が提供されます。

### サインイン認証のログエントリの例
<a name="webapp-signin-authentication-example"></a>

次の例は、IAM Identity Center を使用したウェブアプリのサインイン中に成功したユーザー認証イベントの CloudTrail ログエントリを示しています。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        "type": "Unknown",
        "principalId": "123456789012",
        "arn": "",
        "accountId": "123456789012",
        "accessKeyId": "",
        "userName": "demo-user-2",
        "onBehalfOf": {
            "userId": "f12bb510-a011-702f-10dd-5607e2776dbc",
            "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9a670c546e"
        },
        "credentialId": "b41f0a02-1635-4d07-a414-aecf9e14b906"
    },
    "eventTime": "2025-08-07T14:09:07Z",
    "eventSource": "signin.amazonaws.com",
    "eventName": "UserAuthentication",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "192.0.2.14",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
    "requestParameters": null,
    "responseElements": null,
    "additionalEventData": {
        "AuthWorkflowID": "7a4ef12c-7c4b-4bc3-b5bd-c2469afcc795",
        "LoginTo": "https://example.awsapps.com/start/",
        "CredentialType": "PASSWORD"
    },
    "requestID": "fc91bcf0-ac53-4454-a1a0-fb911eacc095",
    "eventID": "18522007-1e60-4a71-b2b5-150baf504ab3",
    "readOnly": false,
    "eventType": "AWS ServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "UserAuthentication": "Success"
    },
    "eventCategory": "Management"
}
```

この例では、次の重要なフィールドに注意してください。
+ `eventSource`: IAM Identity Center 認証イベントであることを示す「signin.amazonaws.com」を表示します。
+ `userIdentity.onBehalfOf`: ウェブアプリユーザーのユーザー ID と ID ストア ARN が含まれます。
+ `additionalEventData.LoginTo`: アクセスされる IAM Identity Center アプリケーション URL を表示します。
+ `additionalEventData.CredentialType`: 使用する認証方法 (PASSWORD) を示します。
+ `serviceEventDetails`: 認証結果 (成功) を表示します。

### ListCallerAccessGrants のログエントリの例
<a name="webapp-list-caller-access-grants-example"></a>

次の例は、ListCallerAccessGrants イベントの CloudTrail ログエントリを示しています。これは、Transfer Family ウェブアプリがユーザーの利用可能なアクセス許可をクエリするときに発生します。

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAEXAMPLEID:aws-transfer",
        "arn": "arn:aws:sts::123456789012:assumed-role/AWS TransferWebAppIdentityBearer-us-east-2/aws-transfer",
        "accountId": "123456789012",
        "accessKeyId": "ASIAEXAMPLEKEY",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAEXAMPLEID",
                "arn": "arn:aws:iam::123456789012:role/service-role/AWS TransferWebAppIdentityBearer-us-east-2",
                "accountId": "123456789012",
                "userName": "AWS TransferWebAppIdentityBearer-us-east-2"
            },
            "attributes": {
                "creationDate": "2025-08-08T15:29:34Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "transfer.amazonaws.com",
        "onBehalfOf": {
            "userId": "f12bb510-a011-702f-10dd-5607e2776dbc",
            "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9a670c546e"
        }
    },
    "eventTime": "2025-08-08T15:29:35Z",
    "eventSource": "s3.amazonaws.com",
    "eventName": "ListCallerAccessGrants",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "transfer.amazonaws.com",
    "userAgent": "transfer.amazonaws.com",
    "requestParameters": {
        "Host": "123456789012.s3-control.dualstack.us-east-2.amazonaws.com",
        "allowedByApplication": "true",
        "maxResults": "100"
    },
    "responseElements": null,
    "additionalEventData": {
        "SignatureVersion": "SigV4",
        "CipherSuite": "TLS_AES_128_GCM_SHA256",
        "bytesTransferredIn": 0,
        "AuthenticationMethod": "AuthHeader",
        "x-amz-id-2": "1g34AaAELn/fntxwrifVsr41VDl8dp5ygWFasHJFNVq5FDCWYfX0ye7s4tWHEJC8ppI5lLePYLIcw3iTXAgn5Q==",
        "bytesTransferredOut": 462
    },
    "requestID": "48485MTZEDWT0ANT",
    "eventID": "3de5dd60-b7cf-474c-a1ab-631467c1a5c3",
    "readOnly": true,
    "resources": [
        {
            "accountId": "123456789012",
            "type": "AWS:S3::AccessGrantsInstance",
            "ARN": "arn:aws:s3:us-east-2:123456789012:access-grants/default"
        }
    ],
    "eventType": "AWS ApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```

この例では、次の重要なフィールドに注意してください。
+ `eventName`: これは ListCallerAccessGrants イベントであり、使用可能な S3 アクセス許可をクエリします。
+ `requestParameters.allowedByApplication`: クエリがアプリケーションによって許可される許可にフィルタリングされることを示します。
+ `requestParameters.maxResults`: レスポンスで返される許可の最大数を表示します。
+ `userIdentity.onBehalfOf`: リクエストを特定のウェブアプリユーザーにリンクします。

このイベントは、Transfer Family ウェブアプリケーションがユーザーがアクセスできる S3 リソースをいつクエリするかを追跡し、アクセス許可検出オペレーションを可視化するのに役立ちます。

### GetDataAccess イベントのログエントリの例
<a name="webapp-get-data-access-example"></a>

次の例は、Transfer Family ウェブアプリケーションがユーザーに代わって S3 リソースのアクセス許可をリクエストしたときに発生する GetDataAccess イベントの CloudTrail ログエントリを示しています。

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROASEQRAEABP7ADWEZA5:aws-transfer",
        "arn": "arn:aws:sts::123456789012:assumed-role/AWSTransferWebAppIdentityBearer-ap-southeast-1/aws-transfer",
        "accountId": "123456789012",
        "accessKeyId": "ASIAEXAMPLEKEY",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROASEQRAEABP7ADWEZA5",
                "arn": "arn:aws:iam::123456789012:role/service-role/AWSTransferWebAppIdentityBearer-ap-southeast-1",
                "accountId": "123456789012",
                "userName": "AWSTransferWebAppIdentityBearer-ap-southeast-1"
            },
            "attributes": {
                "creationDate": "2025-05-08T16:09:05Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "transfer.amazonaws.com",
        "onBehalfOf": {
            "identityStoreArn": "arn:aws:identitystore::123456789012:identitystore/d-9667b0da7a",
            "userId": "191a35ec-10a1-70c1-e4ab-e2802411e13e"
        }
    },
    "eventTime": "2025-05-08T16:10:25Z",
    "eventSource": "s3.amazonaws.com",
    "eventName": "GetDataAccess",
    "awsRegion": "ap-southeast-1",
    "sourceIPAddress": "transfer.amazonaws.com",
    "userAgent": "transfer.amazonaws.com",
    "requestParameters": {
        "Host": "123456789012.s3-control.dualstack.ap-southeast-1.amazonaws.com",
        "durationSeconds": 900,
        "permission": "READWRITE",
        "target": "s3://amzn-s3-demo-bucket/users/john.doe/documents/*"
    },
    "responseElements": null,
    "additionalEventData": {
        "AuthenticationMethod": "AuthHeader",
        "CipherSuite": "TLS_AES_128_GCM_SHA256",
        "SignatureVersion": "SigV4",
        "bytesTransferredIn": 0,
        "bytesTransferredOut": 2244,
        "x-amz-id-2": "8ce8sZOgNwsaj9w1mzagyA+csONjYl8FgEw4FGpE8DARi90aNC0RFWlTYNEn7ChqE9RCJrTzMvS+ru7Vz2xXHrkQt/1uQ9exZTZdlhX+/fM="
    },
    "requestID": "BXGSKKQXCWS5RAHB",
    "eventID": "c11db1d1-dfb8-431e-8625-48eba2ebadfe",
    "readOnly": true,
    "resources": [
        {
            "type": "AWS:S3::AccessGrantsInstance",
            "ARN": "arn:aws:s3:ap-southeast-1:123456789012:access-grants/default",
            "accountId": "123456789012"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```

この例では、次の重要なフィールドに注意してください。
+ `eventName`: これは GetDataAccess イベントであり、Transfer Family が S3 リソースのアクセス許可をリクエストしたときに発生します。
+ `userIdentity.onBehalfOf`: ID ストアの ARN とユーザー ID が含まれ、アクセスリクエストを特定のウェブアプリユーザーにリンクします。
+ `requestParameters.target`: アクセスがリクエストされた S3 パスパターンを表示します。
+ `requestParameters.permission`: リクエストされたアクセスのタイプ (READWRITE、READ、または WRITE) を示します。
+ `requestParameters.durationSeconds`: アクセス許可が有効である時間 (通常は 900 秒/15 分) を示します。
+ `sourceIPAddress` と `userAgent`: どちらも「transfer.amazonaws.com」と表示され、これが内部サービスリクエストであることを示します。

GetDataAccess イベントは、Transfer Family ウェブアプリユーザーに特定の S3 リソースへのアクセス権が付与されたときの追跡に特に役立ち、アクセスパターンのモニタリングと適切な認可の確保に役立ちます。

## CloudTrail ログエントリの表示
<a name="webapp-view-log-entries"></a>

Transfer Family ウェブアプリケーションの CloudTrail ログエントリを表示および分析するには、いくつかの方法があります。

### CloudTrail コンソールの使用
<a name="webapp-view-logs-console"></a>

CloudTrail コンソールには、ログエントリを表示およびフィルタリングするための使いやすいインターフェイスが用意されています。

1. CloudTrail コンソールの [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/) を開いてください。

1. ナビゲーションペインで [**Event history (イベント履歴)**] を選択してください。

1. フィルターオプションを使用して、イベントを絞り込みます。
   + Transfer Family **イベントのみを表示するには、イベントソース**を に設定します。 `transfer.amazonaws.com`
   + **イベント名**でフィルタリングして、 のような特定のオペレーションを表示します`UserAuthentication`。
   + **時間範囲**を使用して、特定の期間内のイベントに焦点を当てます。

1. イベントをクリックすると、その詳細情報が表示されます。

### Amazon S3 のログへのアクセス
<a name="webapp-view-logs-s3"></a>

Amazon S3 バケットにログを配信するように CloudTrail 証跡を設定している場合は、raw ログファイルに直接アクセスできます。

1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. CloudTrail ログが保存されているバケットとプレフィックスに移動します。

1. ログは、年、月、日、リージョン別に整理されます。適切なディレクトリに移動します。

1. JSON 形式のログファイルをダウンロードして開きます。

# ウェブアプリケーションのトラブルシューティング
<a name="webapp-troubleshooting"></a>

**注記**  
これらのトラブルシューティングのヒントは、エンドユーザーではなくウェブアプリ管理者を対象としています。エンドユーザーで問題が発生した場合は、ウェブアプリ管理者にお問い合わせください。次の段落**のすべてのインスタンスは、ウェブアプリ管理者を参照します。

## ネットワークエラーのトラブルシューティング
<a name="webapp-network-error"></a>

**説明**

ウェブアプリエンドポイントをロードすると、エンドユーザーにネットワークバナー **Network Error** が表示されます。

**原因**

最も一般的な問題は次のとおりです。
+ 管理者は、新しいアプリケーションにログオンしようとしているユーザーを割り当てませんでした。
+ 管理者は IAM ロールに必要なアクションを追加しませんでした。
+ ユーザーに割り当てられた S3 Access Grants のリストが表示されますが、CORS が Amazon S3 バケットに対して正しく設定されていません。

 **解決策** 
+  IAM Identity Center では、ユーザーを正しいアプリケーションに割り当ててください。または、グループが割り当てられている場合は、ログインしようとしているユーザーが正しいグループに属していることを確認してください。これについては、「[Transfer Family ウェブアプリへのユーザーまたはグループの割り当てまたは追加](webapp-add-users.md)」で説明しています。
+ ロールに アクション`sts:AssumeRole`と アクションの両方に必要な`sts:SetContext`アクションが**カスタム信頼ポリシー**に含まれているかどうかを確認します。これについては、「[Transfer Family ウェブアプリケーションの IAM ロールを設定する](webapp-roles.md)」で説明しています。
+ ウェブアプリケーションで使用されるすべてのバケットの CORS ポリシーを確認します。これは、[Amazon S3バケットのクロスオリジンリソース共有 (CORS) を設定する」で説明されています](access-grant-cors.md#cors-configure)。

## 設定されたバケットが表示されないトラブルシューティング
<a name="webapp-no-bucket"></a>

**説明**

すべてが正しく設定されているように見えますが、Amazon S3 バケットはウェブアプリに表示されません。

**原因**

考えられる原因の 1 つは、Amazon S3 バケットがウェブアプリと同じアカウントにないことです。

 **解決策** 

Amazon S3 バケットがウェブアプリと同じアカウントにあることを確認します。クロスアカウントバケットは現在サポートされていません。

## カスタム URL エラーのトラブルシューティング
<a name="webapp-customURL-errors"></a>

**説明**

エンドユーザーがウェブアプリにサインインすると、**「認可失敗: 認可コードがありません」というエラーメッセージが表示されます。**

**原因**

指定された CloudFormation テンプレートではなく CloudFront を直接使用した場合、クエリ文字列を転送しないようにオリジンリクエストポリシーが誤って設定されている可能性があります。

**解決策**

オリジンリクエストポリシーを更新して、クエリ文字列と Cookie をオリジンに転送します。

**説明**

エンドユーザーが Transfer Family ウェブアプリにアクセスしようとすると、404 レスポンスを受け取ります。

**原因**

提供された CloudFormation テンプレートではなく CloudFront を直接使用した場合、キャッシュキーに `Host`ヘッダーを含めるようにキャッシュポリシーを誤って設定したり、`Host`ヘッダーを転送するようにオリジンリクエストポリシーを誤って設定したりする可能性があります。

**解決策**
+ キャッシュポリシーにキャッシュキーの `Host`ヘッダーが含まれていないことを確認します。
+ オリジンリクエストポリシーが `Host`ヘッダーを転送しないことを確認します。

## その他のエラーのトラブルシューティング
<a name="webapp-various-errors"></a>

**説明**

エンドユーザーがログインできないか、バケットやファイルを表示できないか、別のエラーが表示されます。

**原因**

考えられる原因の 1 つは、IAM Identity Center インスタンス ARN が付与 ARN またはウェブアプリの IAM Identity Center インスタンス ARN の値と一致しないことです。

 **解決策** 

次の項目をチェックして、一致するかどうかを確認します。
+  IAM アイデンティティセンターで、**設定**に移動し**、インスタンス ARN** を表示します。

  ```
  arn:aws:sso:::instance/ssoins-instance-identifier
  ```
+ Amazon S3 で、**Access Grants** に移動し、**IAM Identity Center インスタンス ARN** を表示します。

  ```
  arn:aws:sso::account-id:application/ssoins-instance-identifier/apl-1234567890abcdef0
  ```
+ Transfer Family で、ウェブアプリケーションの詳細ページに移動し、インスタンス ARN を表示します。

  ```
  arn:aws:sso:::instance/ssoins-instance-identifier
  ```

*インスタンス識別子の*値は、これら 3 つの場所すべてで同じである必要があります。

## ウェブアプリに表示される重複する S3 バケット
<a name="webapp-duplicate-buckets"></a>

**説明**

ユーザーは、Transfer Family ウェブアプリケーションインターフェイスに同じ S3 バケットを複数回一覧表示されます。

**原因**

これは、ユーザーが同じ S3 バケットに重複する許可を持つ複数の Active Directory グループの一部である場合に発生します。ウェブアプリは、ユーザーに同じバケットロケーションに割り当てられた複数の権限があるかどうかに関係なく、ユーザー (UID または GID) に関連付けられたすべての最上位権限を一覧表示します。

**解決策**

この問題を解決するには、管理者は各ユーザーに各 S3 ロケーションに対する許可が 1 つだけになるように、許可の重複を解除する必要があります。S3 Access Grants 設定を確認し、異なる Active Directory グループ間で同じバケットの重複した許可を統合します。

# Transfer Family ウェブアプリのエンドユーザー向け手順
<a name="webapp-end-users"></a>

**注記**  
このトピックでは、情報はウェブアプリとやり取りするエンドユーザーを対象としています。このトピック**のすべてのインスタンスは、エンドユーザーを参照します。

このトピックでは、使用が許可されている AWS Transfer Family ウェブアプリにアクセスする方法と、そのアプリを操作する方法について説明します。

## ウェブアプリのクォータ
<a name="end-user-quotas"></a>

ウェブアプリケーションを使用する場合は、次の制限に注意してください。
+ クエリあたりの検索結果の最大数: 10,000
+ Transfer Family ウェブアプリで使用される Amazon S3 バケットは、ウェブアプリ自体と同じアカウントにある必要があります。クロスアカウントバケットは現在サポートされていません。
+ クエリあたりの最大検索幅: 10,000 件の検索ファイル
+ ファイルあたりの最大アップロードサイズ: 160 GB (149 GiB)
+ コピーの最大サイズファイル: 5.36 GB (5 GiB)
+ ドット (.) で始まるフォルダ名または終わるフォルダ名はサポートされていません

## IAM Identity Center ユーザーのユーザーエクスペリエンス
<a name="end-user-identity-center"></a>

このセクションでは、組織が IAM Identity Center を使用してユーザーを設定した場合のユーザーエクスペリエンスについて説明します。

**Transfer Family ウェブアプリにアクセスするには**

1. **no-reply@login.awsapps.com** から「参加の招待」という E メールが届きます AWS IAM アイデンティティセンター。招待を承諾してユーザーアカウントをアクティブ化します。

1. メッセージで、 ** AWS アクセスポータル URL の下にある URL **を選択します。

   これにより、 AWS サインイン画面が表示されます。  
![\[AWS サインイン画面を示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-enduser-signin.png)

1. 認証情報を入力し、**サインイン**を選択します。

   これにより、 に移動し AWS アクセスポータル、使用可能なアプリケーションのリストが表示されます。

1. Transfer Family ウェブアプリのアプリケーションを選択します。

## サードパーティー ID プロバイダーユーザーのユーザーエクスペリエンス
<a name="end-user-3p"></a>

組織が AWS IAM アイデンティティセンター を使用してユーザーを設定しなかった場合、オンボーディングエクスペリエンスはエンドユーザーの設定に使用した ID プロバイダーアプリケーションによって異なります。認証してサインインすると、ウェブアプリケーションインターフェイスは、次のセクションで説明したものと同じになります。

**注記**  
ユーザーが、同じ Amazon S3 バケットへの許可を持つ複数の Active Directory グループに属している場合、バケットはウェブアプリケーションインターフェイスに複数回表示されます。これは、ウェブアプリケーションが同じバケットへの重複許可を含む、ユーザーの UID または GID に関連付けられたすべての最上位許可を一覧表示するためです。重複した出品を防ぐために、管理者は複数の許可を統合して、各ユーザーに Amazon S3 の場所ごとに 1 つの許可のみを持たせることができます。

## Transfer Family エンドユーザーインターフェイス
<a name="end-user-interface"></a>

認証してサインインしたら、ウェブアプリを操作できます。

メインビューは 4 つあります。
+ **ホームページ:** ホームページには、アクセスできる S3 の場所と、それぞれのアクセス許可が一覧表示されます。S3 *の場所*は S3 バケットまたはプレフィックスであり、S3 Access Grants を使用するときに定義できます。これは、エンドユーザーがアクセスできるルートレベルの S3 リソースと、各 S3 ロケーションのアクセス許可を示すユーザーの初期ビューです。  
![\[ウェブアプリのエンドユーザーのホームロケーションを示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-enduser-home.png)
+ **場所の詳細:** このビューでは、ユーザーは S3 内のファイルとフォルダを参照し、ファイルをアップロードまたはダウンロードできます。
+ **場所アクション:** アクション (**アップロード**など) を選択すると、ファイルの場所の別のビューが開きます。
+ **垂直楕円:** 垂直楕円アイコンが**アクション**メニューを開きます。

## 使用可能なアクション
<a name="end-user-actions"></a>

ほとんどのアクションは、**アクション**メニューから使用できます。他の主なアクションとして、ファイルをダウンロードするには、ファイルを選択した後にダウンロードアイコンを使用します (現在、一度にダウンロードできるファイルは 1 つだけです）。

![\[ファイルとそれに対応するダウンロードアイコンを示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-enduser-download.png)


フォルダから、**アクション**メニューを使用して次のいずれかのタスクを実行します。
+ 1 つ以上のファイルを別の場所にコピーします。
+ フォルダを作成します。
+ 1 つ以上のファイルを削除します。
+ 1 つ以上のファイルをアップロードします。
+ フォルダ全体 (サブフォルダがある場合はサブフォルダを含む) をアップロードします。
+ フォルダを選択して移動します。その後、前述のアクションのいずれかを実行できます。
+ ページ別にソートします。
+ フォルダとサブフォルダごとに、ファイルまたはフォルダ名でフィルタリングします。

![\[ウェブアプリのエンドユーザーのフォルダ例を示す画面。\]](http://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/images/webapp-enduser-actions.png)
