

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

# 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 形式のログファイルをダウンロードして開きます。