AWS CloudTrail による Data API コールのログ記録 - Amazon Aurora

AWS CloudTrail による Data API コールのログ記録

Data API は AWS CloudTrail と統合されています。これは、Data API のユーザー、ロール、または AWS のサービスによって実行されたアクションを記録するサービスです。CloudTrail は、Amazon RDS コンソールからの呼び出しとデータ API オペレーションへのコード呼び出しを含む、すべての データ API の API コールをイベントとしてキャプチャします。証跡を作成する場合は、Data API のイベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的配信を有効にすることができます。証跡を設定しない場合でも、CloudTrail コンソールの [Event history (イベント履歴)] で最新のイベントを表示できます。CloudTrail によって収集されたデータを使用して、多くの情報を判断できます。この情報には、Data API に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細が含まれます。

CloudTrail の詳細については、AWS CloudTrail ユーザーガイドを参照してください。

CloudTrail での Data API 情報の使用

CloudTrail は、アカウントを作成すると AWS アカウントで有効になります。Data API でアクティビティが発生すると、そのアクティビティは CloudTrail イベントとして他の AWS のサービスのイベントと共に、[イベント履歴] 内に記録されます。最近のイベントは、AWS アカウントで表示、検索、ダウンロードできます。詳細については、AWS CloudTrail ユーザーガイドの「CloudTrail イベント履歴でのイベントの表示」を参照してください。

Data API のイベントなど、AWS アカウントのイベントを継続的に記録する場合は、証跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで追跡を作成するときに、追跡がすべてのAWSリージョンに適用されます。追跡では、AWS パーティション内のすべての AWS リージョンからのイベントがログに記録され、指定した Amazon S3 バケットにログファイルが配信されます。さらに、その他の AWS サービスを設定して、CloudTrail ログで収集したデータをより詳細に分析し、それに基づく対応を行うことができます。詳細については、AWS CloudTrail ユーザーガイドの次のトピックを参照してください。

すべての Data API オペレーションは、CloudTrail によってログに記録されます。また、Amazon RDS データサービス API リファレンスに記載されています。例えば、BatchExecuteStatement, BeginTransaction オペレーション、CommitTransaction オペレーション、および ExecuteStatement オペレーションへのコールに伴って、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。このアイデンティティ情報は以下のことを確認するのに役立ちます。

  • 要求が、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。

  • 要求が、ロールとフェデレーティッドユーザーのどちらのテンポラリセキュリティ認証情報を使用して送信されたか.

  • リクエストが、別の AWS サービスによって送信されたかどうか。

詳細については、「CloudTrail userIdentity エレメント」を参照してください。

Data API ログファイルのエントリについて

証跡は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrailのログファイルには、単一か複数のログエントリがあります。イベントは任意の発生元からの 1 つのリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

ExecuteStatement オペレーションを示す CloudTrail ログエントリの例は、次のとおりです。

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:user/johndoe", "accountId": "123456789012", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "johndoe" }, "eventTime": "2019-12-18T00:49:34Z", "eventSource": "rdsdata.amazonaws.com", "eventName": "ExecuteStatement", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/1.16.102 Python/3.7.2 Windows/10 botocore/1.12.92", "requestParameters": { "continueAfterTimeout": false, "database": "**********", "includeResultMetadata": false, "parameters": [], "resourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:my-database-1", "schema": "**********", "secretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:dataapisecret-ABC123", "sql": "**********" }, "responseElements": null, "requestID": "6ba9a36e-b3aa-4ca8-9a2e-15a9eada988e", "eventID": "a2c7a357-ee8e-4755-a0d0-aed11ed4253a", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }

AWS CloudTrail の証跡からの Data API イベントの除外

多くの Data API ユーザーは、Data API オペレーションの記録のために、AWS CloudTrail の証跡内のイベントを使用しています。証跡は、テーブル内の行が削除された SQL ステートメントなど、重要なイベントを監査するための貴重なデータソースになります。一部のケースでは、CloudTrail ログエントリのメタデータが、エラーを回避または解決するために役立ちます。

ただし、Data API では多数のイベントが生成されます。このため、Data API イベントを CloudTrail の証跡から除外することが可能になっています。この証跡単位の設定では、すべての Data API イベントが除外されます。特定の Data API イベントを除外することはできません。

証跡から Data API イベントを除外するには、次の手順を実行します。

警告

CloudTrail ログから Data API イベントを除外すると、Data API アクションが不確定になることがあります。このオペレーションを実行するために必要な cloudtrail:PutEventSelectors アクセス許可をプリンシパルに与えるときは注意してください。

この除外は、コンソール設定または証跡のイベントセレクタを変更することで、いつでも無効化できます。その後、証跡が Data API イベントの記録をスタートします。ただし、除外が有効であった期間に発生した Data API イベントはリカバリされません。

コンソールまたは API を使用して Data API イベントを除外すると、それにより実行される CloudTrail の API オペレーション PutEventSelectors も CloudTrail ログに記録されます。Data API イベントが CloudTrail ログに表示されない場合は、ExcludeManagementEventSources 属性が rdsdata.amazonaws.com に設定されている PutEventSelectors イベントを探します。

詳細については、AWS CloudTrail ユーザーガイドの「証跡の管理イベントのログ記録」を参照してください。