Transfer Family ウェブアプリケーションの CloudTrail ログ記録 - AWS Transfer Family

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

Transfer Family ウェブアプリケーションの CloudTrail ログ記録

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

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

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

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

以下の資料も参照してください。

Amazon S3 データイベントの有効化

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

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

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

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

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

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

  5. 最初のフィールドセレクタの場合:

    • フィールドを に設定する eventCategory

    • 演算子等しい値に設定する

    • 値を に設定する Data

  6. 2 番目のフィールドセレクタで、フィールドの追加 と を選択します。

    • フィールドを に設定する resources.type

    • 演算子等しい値に設定する

    • 値を に設定する AWS::S3::Object

  7. (オプション) 特定のバケットのイベントのみをログに記録するには、フィールドを追加 を選択し、以下を追加します。

    • フィールドを に設定する resources.ARN

    • 演算子で始まるように設定

    • 値を に設定する arn:aws:s3:::your-bucket-name/

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

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

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

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

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

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

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

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

ログの検索と表示

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

CloudTrail コンソールの使用

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

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

  2. [イベント履歴] を選択します。

  3. 以下によってイベントをフィルタリングします。

    • イベントソース: ウェブアプリイベントsignin.amazonaws.com

    • イベントソース: ファイルオペレーションs3.amazonaws.com

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

Amazon S3 のログへのアクセス

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

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

    aws cloudtrail describe-trails --query 'trailList[*].[Name,S3BucketName]' --output table
  2. Amazon S3 のログファイルに移動します。

    aws s3 ls s3://your-cloudtrail-bucket/AWSLogs/account-id/CloudTrail/region/YYYY/MM/DD/
  3. ウェブアプリ 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 を使用してイベントを検索する

以下を使用して、特定のウェブアプリイベントを検索します 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

認証ログの例

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

認証情報検証のログエントリの例

次の例は、認証プロセス中に発生する認証情報検証イベントの 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 を示す、認証プロセスの認証情報検証ステップに関する詳細が提供されます。

サインイン認証のログエントリの例

次の例は、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 のログエントリの例

次の例は、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 イベントのログエントリの例

次の例は、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 分) を示します。

  • sourceIPAddressuserAgent: どちらも「transfer.amazonaws.com」と表示され、これが内部サービスリクエストであることを示します。

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

CloudTrail ログエントリの表示

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

CloudTrail コンソールの使用

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

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

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

  3. フィルターオプションを使用して、イベントを絞り込みます。

    • Transfer Family イベントのみを表示するには、イベントソースを に設定します。 transfer.amazonaws.com

    • イベント名でフィルタリングして、 のような特定のオペレーションを表示しますUserAuthentication

    • 時間範囲を使用して、特定の期間内のイベントに焦点を当てます。

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

Amazon S3 でのログへのアクセス

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

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

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

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

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