データベース監査ログ作成 - Amazon Redshift

データベース監査ログ作成

Amazon Redshift は、データベースの接続とユーザーアクティビティに関する情報を記録します。これらのログは、セキュリティとトラブルシューティング目的でのデータベースのモニタリングに役立ちます。このプロセスは、データベース監査と呼ばれます。ログは次の場所に保存できます。

  • Amazon S3 バケット – これによりデータベースでのモニタリング作業を担当するユーザーはデータセキュリティ機能にアクセスできます。

  • Amazon CloudWatch – 可視化機能やアクションの設定など、CloudWatch に組み込まれている機能を使用して、監査ログデータを表示できます。

Amazon Redshift ログ

Amazon Redshift は、次のログファイルに情報を記録します。

  • 接続ログ – 認証試行、接続、切断をログに記録します。

  • ユーザーログ – データベースのユーザー定義の変更に関する情報をログに記録します。

  • ユーザーアクティビティログ – 各クエリをデータベースで実行される前にログに記録します。

接続ログとユーザーログは、主にセキュリティに役立ちます。接続ログを使用して、データベースに接続するユーザーや関連する接続情報についての情報をモニタリングできます。この情報には、ユーザーの IP アドレス、要求日時、使用した認証の種類などが含まれます。ユーザーログを使用して、データベースユーザーの定義の変更を監視できます。

ユーザーアクティビティログは、主にトラブルシューティングに役立ちます。ユーザーとシステムによってデータベースで実行されるクエリの種類についての情報を追跡します。

接続ログとユーザーログは、データベースのシステムテーブルに保存されている情報と一致します。システムテーブルを使用して同じ情報を取得できますが、ログファイルのほうがより簡単に検索と参照ができます。ログファイルは、テーブルに対してクエリを実行するために、データベースのアクセス許可ではなく Amazon S3 のアクセス許可に依存しています。また、システムテーブルに対してクエリを実行するのではなくログファイルの情報を参照するので、データベースとのやりとりによる影響が軽減されます。

注記

ログファイルは、ベースシステムログテーブル、STL_USERLOGSTL_CONNECTION_LOG ほど最新ではありません。最新のレコードを含まない、それより古いレコードはログファイルにコピーされます。

接続ログ

認証の試行、接続と切断を記録します。次の表は、接続ログの情報を示しています。これらのフィールドの詳細については、Amazon Redshift データベースデベロッパーガイドの「STL_CONNECTION_LOG」を参照してください。

列名 説明
event 接続または認証イベント。
recordtime イベントが発生した時刻。
remotehost リモートホストの名前または IP アドレス。
remoteport リモートホストのポート番号。
pid ステートメントに関連付けられるプロセス ID。
dbname データベース名。
username ユーザー名。
authmethod 認証方法。
duration 接続時間 (マイクロ秒)。
sslversion Secure Sockets Layer (SSL) バージョン。
sslcipher SSL 暗号。
mtu 最大送信単位 (MTU)。
sslcompression SSL 圧縮タイプ。
sslexpansion SSL 拡張タイプ。
iamauthguid AWS CloudTrail リクエストの AWS Identity and Access Management (IAM) 認証 ID。
application_name セッションのアプリケーションの初期名または更新名。
driver_version サードパーティーの SQL クライアントツールから Amazon Redshift クラスターに接続する ODBC または JDBC ドライバーのバージョン。
os_version Amazon Redshift クラスターに接続するクライアントマシン上にあるオペレーティングシステムのバージョン。
plugin_name Amazon Redshift クラスターへの接続に使用されるプラグインの名前。
protocol_version Amazon Redshift ドライバーが、サーバーとの接続を確立する際に使用する内部プロトコルのバージョン。
sessionid 現在のセッションのグローバル一意識別子。

ユーザーログ

データベースユーザーに対する次の変更の詳細のレコード。

  • ユーザーの作成

  • ユーザーの削除

  • ユーザーの変更 (名前の変更)

  • ユーザーの変更 (プロパティの変更)

列名 説明
userid 変更の影響を受けるユーザーの ID。
username 変更の影響を受けるユーザーのユーザー名。
oldusername 名前の変更アクションの場合、以前のユーザー名。その他のアクションの場合、このフィールドは空欄です。
action 実行されたアクション。有効な値:
  • 変更

  • 作成

  • 削除

  • 名前の変更

usecreatedb true (1) の場合、ユーザーにデータベースを作成する許可があることを示しています。
usesuper true (1) の場合、ユーザーがスーパーユーザーであることを示しています。
usecatupd true (1) の場合、ユーザーはシステムカタログを更新できることを示します。
valuntil パスワードの有効期限。
pid プロセス ID。
xid トランザクション ID。
recordtime UTC でのクエリの開始時間。

ユーザーアクティビティログ

データベースで実行される前に記録した各クエリのログ。

列名 説明
recordtime イベントが発生した時刻。
db データベース名。
user ユーザー名。
pid ステートメントに関連付けられるプロセス ID。
userid ユーザー ID
xid トランザクション ID。
query プレフィックス LOG の後に、改行を含むクエリのテキストが続きます。

ログ作成の有効化

Amazon Redshift の監査ログ作成はデフォルトではオンになっていません。クラスターでログ作成をオンにすると、Amazon Redshift は、監査ログが有効になった時点から現在までのデータをキャプチャするログを作成して Amazon CloudWatch にエクスポートするか、Amazon S3 にアップロードします。各ログの更新は、以前のログの続きとなります。

CloudWatch または Amazon S3 の監査ログ作成は、任意で、手動のプロセスです。システムテーブルへのログ作成は任意ではなく、自動的に作成されます。システムテーブルのログ作成の詳細については、Amazon Redshift データベースデベロッパーガイドのシステムテーブルのリファレンスを参照してください。

接続ログ、ユーザーログ、ユーザーアクティビティログを同時に有効にするには、 AWS Management Console、Amazon Redshift API Reference、AWS Command Line Interface (AWS CLI) のいずれかを使用します。ユーザーアクティビティログについては、enable_user_activity_logging データベースパラメータも有効にする必要があります。監査ログ作成機能のみを有効にし、関連するパラメータを有効にしない場合、データベース監査ログは接続ログとユーザーログの情報のみを記録し、ユーザーアクティビティログの情報は記録しません。この enable_user_activity_logging パラメータはデフォルトでは有効になっていません (false)。ユーザーアクティビティログを有効にするには、このパラメータを true に設定します。詳細については、Amazon Redshift パラメータグループを作成します。を参照してください。

注記

現在、Amazon S3 管理キー (SSE-S3) 暗号化 (AES-256) のみを監査ログ作成に使用できます。

Amazon CloudWatch への監査ログの送信

CloudWatch へのログ作成を有効にすると、Amazon Redshift はクラスター接続、ユーザー、およびユーザーアクティビティに関するログデータを、Amazon CloudWatch Logs のロググループにエクスポートします。ログデータは、スキーマ的には変更されません。CloudWatch はアプリケーションをモニタリングするために構築されており、リアルタイム分析を実行したり、アクションを実行するように設定したりできます。Amazon CloudWatch Logs を使用して、非常に耐久性が高いストレージにログレコードを保存できます。

CloudWatch を使用してログを表示することは、Amazon S3 にログファイルを保存する代わりに推奨される代替手段です。多くの設定を必要とせず、特に他のサービスやアプリケーションのモニタリングにすでに使用している場合は、監視要件に適している可能性があります。

Amazon CloudWatch でのロググループとログイベント

エクスポートする Amazon Redshift ログを選択すると、Amazon CloudWatch Logs でログイベントをモニタリングできるようになります。Amazon Redshift Serverless のための新しいロググループは、次の (log_type がログタイプを表す) プレフィックスを使用して自動的に作成されます。

/aws/redshift/cluster/<cluster_name>/<log_type>

例えば、接続ログをエクスポートする場合、そのログデータは次のロググループに保存されます。

/aws/redshift/cluster/cluster1/connectionlog

ログイベントをロググループに対しエクスポートする際には、ログストリームが使用されます。サーバーレスエンドポイントのログイベント内で情報を検索するには、Amazon CloudWatch Logs コンソール、AWS CLI、または Amazon CloudWatch Logs API を使用します。ログデータの検索およびフィルタ処理の詳細については、「フィルターを使用してログイベントからメトリクスを作成する」を参照してください。

CloudWatch では、粒度と柔軟性を提供するクエリ構文を使用してログデータを検索できます。詳細については、「CloudWatch Logs Insights クエリ構文」を参照してください。

Amazon CloudWatch 監査ログ作成に移行する

ログを Amazon S3 に送信している場合に、CloudWatch にログを送信するなど、設定を変更しても、Amazon S3 に残っているログは影響を受けません。そのデータが格納されている Amazon S3 バケット内で引き続きログデータをクエリすることができます。

Amazon S3 でのログファイルの管理

Amazon S3 の Amazon Redshift のログファイルの数とサイズは、クラスターのアクティビティによって大きく異なります。大量のログを生成しているアクティブなクラスターがある場合、Amazon Redshift はより頻繁にログファイルを生成することがあります。同じ時間に複数の接続ログがあるなど、同じタイプのアクティビティに対して一連のログファイルが存在する場合があります。

Amazon Redshift が Amazon S3 を使用してログを保存する場合、Amazon S3 で使用するストレージの料金が発生します。Amazon S3 にログ作成の設定を行う前に、ログファイルをどのくらいの期間保存する必要があるかのプランを必ず作成してください。この作業の一環として、監査の必要性に応じてログファイルをいつ削除またはアーカイブできるかを決定します。作成するプランは、コンプライアンス要件または規制要件に従ったデータなど、保存するデータの種類によって大きく異なります。Amazon S3 料金の詳細については、Amazon Simple Storage Service (S3) の料金を参照してください。

Amazon Redshift 監査ログ作成のためのバケットのアクセス許可

Amazon S3 へのログ作成をオンにすると、Amazon Redshift はログ作成情報を収集し、Amazon S3 に保存されたログファイルにアップロードします。新しいバケットを作成することも、既存のバケットを使用することもできます。Amazon Redshift には、バケットに対して以下の IAM アクセス許可が必要です。

  • s3:GetBucketAcl このサービスは、Amazon S3 バケットに対して読み取りのアクセス許可が必要です。これにより、バケット所有者を識別できます。

  • s3:PutObject このサービスは、ログをアップロードするため、put object のアクセス許可が必要です。また、ログ作成を有効にする IAM ユーザーまたは IAM ロールには、Amazon S3 バケットへの s3:PutObject アクセス許可を持っている必要があります。ログがアップロードされるたびに、サービスは現在のバケット所有者のログ作成が有効になったときのバケット所有者と一致するかどうかを判定します。これらの所有者が一致しない場合は、エラーが発生します。

監査ログ作成を有効にするときにに新規バケットを作成するオプションを選択すると、正確なアクセス許可がバケットに適用されます。ただし、Amazon S3 で独自にバケットを作成する、または既存のバケットを使用する場合、必ずバケット名を含むバケットポリシーを追加してください。ログは、サービスプリンシパルの認証情報を使用して配信されます。ほとんどの場合のAWS リージョンでは、Redshift サービスプリンシパル名、 redshift.amazonaws.comです。

このバケットポリシーでは、次の形式を使用します。ServiceNameBucketNameは独自の値のプレースホルダーです。バケットポリシーで、関連付けられたアクションとリソースも指定します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "ServiceName" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::BucketName", "arn:aws:s3:::BucketName/*" ] } ] }

次の例は、米国東部(バージニア北部)リージョン、および AuditLogsという名前のバケットのバケットポリシーです。

{ "Version": "2008-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::AuditLogs", "arn:aws:s3:::AuditLogs/*" ] } ] }

デフォルトで有効になっていないリージョン (「オプトイン」リージョンとも呼ばれます) には、リージョン固有のサービスプリンシパル名が必要です。これらの場合、サービスプリンシパル名には、 redshift.region.amazonaws.comという形式でリージョンが含まれます。たとえば、redshift.ap-east-1.amazonaws.com は、アジアパシフィック (香港) リージョンの 1 つです。デフォルトで有効になっていないリージョンの一覧については、AWS 一般のリファレンスの「AWS リージョン の管理」を参照してください。

注記

リージョン固有のサービスプリンシパル名は、クラスターがあるリージョンに対応します。

ログファイルのベストプラクティス

Redshift が Amazon S3 にログファイルをアップロードする場合、大きなファイルを部分的にアップロードできます。マルチパートアップロードが成功しなかった場合、ファイルの一部が Amazon S3 バケットに残っている可能性があります。これにより、追加のストレージコストが発生する可能性があるため、マルチパートアップロードが失敗した場合に何が起きるかを理解することが重要です。監査ログのマルチパートアップロードの詳細については、マルチパートアップロードを使用したオブジェクトのアップロードとコピーマルチパートアップロードの中止を参照してください。

Amazon S3 バケットの作成とバケットポリシー追加の詳細については、 Amazon Simple Storage Service コンソールユーザーガイドバケットの作成バケット許可の編集 を参照してください。

Amazon Redshift 監査ログ作成のバケットの構造

デフォルトでは、Amazon Redshift は Amazon S3 バケット内のログファイルの整理に以下のバケットおよびオブジェクト構造 を使用します。

AWSLogs/AccountID/ServiceName/Region/Year/Month/Day/AccountID_ServiceName_Region_ClusterName_LogType_Timestamp.gz

例: AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Amazon S3 のキープレフィックスを指定すると、キーの冒頭にプレフィックスが挿入されます。

たとえば、myprefix のプレフィックスを指定する場合: myprefix/AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Amazon S3 のキープレフィックスは 512 文字を超えることはできません。スペース ( )、二重引用符 (“)、一重引用符 (‘)、バックスラッシュ (\) を含めることはできません。また、許可されない特殊文字、および制御文字もいくつかあります。これらの文字の 16 進コードは次のとおりです。

  • x00 から x20

  • x 22

  • x 27

  • x5c

  • x7f 以上

Amazon S3 での Amazon Redshift 監査ログ作成のトラブルシューティング

Amazon Redshift 監査ログ作成は、以下の理由で中断されることがあります。

  • Amazon Redshift には、Amazon S3 バケットにログをアップロードするアクセス許可がありません。バケットに正しい IAM ポリシーが設定されていることを確認します。詳細については、 Amazon Redshift 監査ログ作成のためのバケットのアクセス許可を参照してください。

  • バケット所有者が変更されました。Amazon Redshift がログをアップロードするとき、バケット所有者がログが有効になったときと同じであることを確認します。バケット所有者を変更した場合、Amazon Redshift は、監査ログ作成に使用する別のバケットを設定するまでログをアップロードできません。

  • バケットが見つかりません。Amazon S3 でバケットが削除された場合、Amazon Redshift はログをアップロードできません。バケットを再作成するか、別のバケットにログをアップロードするように Amazon Redshift を設定する必要があります。

AWS CloudTrailを使用した Amazon Redshift API コールのログ作成

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

CloudTrail は、Amazon Redshift データベース監査ログ作成から独立して、または追加して使用できます。

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

CloudTrail 内の Amazon Redshift 情報

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

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

すべての Amazon Redshift アクションは CloudTrail がログ作成をします。これらのアクションは Amazon Redshift API リファレンスで説明されています。たとえば CreateClusterDeleteClusterDescribeCluster の各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。同一性情報は次の判断に役立ちます。

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

  • リクエストが、ロールとフェデレーティッドユーザーのどちらの一時的なセキュリティ認証情報を使用して送信されたか.

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

詳細については、 CloudTrail userIdentity Elementを参照してください。

Amazon Redshift ログファイルエントリの概要

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

サンプルの CreateCluster 呼び出しの CloudTrail ログエントリの例は以下のとおりです。

{ "eventVersion": "1.04", "userIdentity": { "type": "IAMUser", "principalId": "AIDAMVNPBQA3EXAMPLE", "arn": "arn:aws:iam::123456789012:user/Admin", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "Admin", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2017-03-03T16:51:56Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2017-03-03T16:56:09Z", "eventSource": "redshift.amazonaws.com", "eventName": "CreateCluster", "awsRegion": "us-east-2", "sourceIPAddress": "52.95.4.13", "userAgent": "signin.amazonaws.com", "requestParameters": { "clusterIdentifier": "my-dw-instance", "allowVersionUpgrade": true, "enhancedVpcRouting": false, "encrypted": false, "clusterVersion": "1.0", "masterUsername": "awsuser", "masterUserPassword": "****", "automatedSnapshotRetentionPeriod": 1, "port": 5439, "dBName": "mydbtest", "clusterType": "single-node", "nodeType": "dc1.large", "publiclyAccessible": true, "vpcSecurityGroupIds": [ "sg-95f606fc" ] }, "responseElements": { "nodeType": "dc1.large", "preferredMaintenanceWindow": "sat:05:30-sat:06:00", "clusterStatus": "creating", "vpcId": "vpc-84c22aed", "enhancedVpcRouting": false, "masterUsername": "awsuser", "clusterSecurityGroups": [], "pendingModifiedValues": { "masterUserPassword": "****" }, "dBName": "mydbtest", "clusterVersion": "1.0", "encrypted": false, "publiclyAccessible": true, "tags": [], "clusterParameterGroups": [ { "parameterGroupName": "default.redshift-1.0", "parameterApplyStatus": "in-sync" } ], "allowVersionUpgrade": true, "automatedSnapshotRetentionPeriod": 1, "numberOfNodes": 1, "vpcSecurityGroups": [ { "status": "active", "vpcSecurityGroupId": "sg-95f606fc" } ], "iamRoles": [], "clusterIdentifier": "my-dw-instance", "clusterSubnetGroupName": "default" }, "requestID": "4c506036-0032-11e7-b8bf-d7aa466e9920", "eventID": "13ba5550-56ac-405b-900a-8a42b0f43c45", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }

サンプルの DeleteCluster 呼び出しの CloudTrail ログエントリの例は以下のとおりです。

{ "eventVersion": "1.04", "userIdentity": { "type": "IAMUser", "principalId": "AIDAMVNPBQA3EXAMPLE", "arn": "arn:aws:iam::123456789012:user/Admin", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "Admin", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2017-03-03T16:58:23Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2017-03-03T17:02:34Z", "eventSource": "redshift.amazonaws.com", "eventName": "DeleteCluster", "awsRegion": "us-east-2", "sourceIPAddress": "52.95.4.13", "userAgent": "signin.amazonaws.com", "requestParameters": { "clusterIdentifier": "my-dw-instance", "skipFinalClusterSnapshot": true }, "responseElements": null, "requestID": "324cb76a-0033-11e7-809b-1bbbef7710bf", "eventID": "59bcc3ce-e635-4cce-b47f-3419a36b3fa5", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }

CloudTrail でのデータ共有情報の使用

CloudTrail によって、すべての Amazon Redshift データ共有 API オペレーションがログに記録されます。たとえば AuthorizeDataShareDeauthorizeDataShareDescribeDataShares の各オペレーションへのコールは、CloudTrail ログファイル内にエントリを生成します。データ共有 API オペレーションの詳細については Amazon Redshift API リファレンスを参照してください。

各イベントまたはログエントリには、リクエストの生成者に関する情報が含まれます。同一性情報は次の判断に役立ちます。

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

  • 要求が、IAM ロールまたはフェデレーティッドユーザーの一時的なセキュリティ認証情報によって行われたか。

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

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

データ共有のログファイルエントリについて

CloudTrail の 追跡 は、ユーザー指定の Amazon S3 バケットへのログファイルとしてのイベントの配信を可能にする設定です。CloudTrail ログファイルには、1 つ以上のログエントリがあります。イベント は、任意の送信元からの単一の要求を表します。イベントには、要求されたアクション、アクションの日時、またはリクエストパラメータに関する情報が含まれます。CloudTrail ログファイルは公開 API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

以下の例は、 AuthorizeDataShare オペレーションを説明する CloudTrail ログエントリを示しています。

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:janedoe", "arn": "arn:aws:sts::111122223333:user/janedoe", "accountId": "111122223333", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE:janedoe", "arn": "arn:aws:sts::111122223333:user/janedoe", "accountId": "111122223333", "userName": "janedoe" }, "attributes": { "creationDate": "2021-08-02T23:40:45Z", "mfaAuthenticated": "false" } } }, "eventTime": "2021-08-02T23:40:58Z", "eventSource": "redshift.amazonaws.com", "eventName": "AuthorizeDataShare", "awsRegion": "us-east-1", "sourceIPAddress": "3.227.36.75", "userAgent":"aws-cli/1.18.118 Python/3.6.10 Linux/4.9.217-0.1.ac.205.84.332.metal1.x86_64 botocore/1.17.41", "requestParameters": { "dataShareArn": "arn:aws:redshift:us-east-1:111122223333:datashare:4c64c6ec-73d5-42be-869b-b7f7c43c7a53/testshare", "consumerIdentifier": "555555555555" }, "responseElements": { "dataShareArn": "arn:aws:redshift:us-east-1:111122223333:datashare:4c64c6ec-73d5-42be-869b-b7f7c43c7a53/testshare", "producerNamespaceArn": "arn:aws:redshift:us-east-1:123456789012:namespace:4c64c6ec-73d5-42be-869b-b7f7c43c7a53", "producerArn": "arn:aws:redshift:us-east-1:111122223333:namespace:4c64c6ec-73d5-42be-869b-b7f7c43c7a53", "allowPubliclyAccessibleConsumers": true, "dataShareAssociations": [ { "consumerIdentifier": "555555555555", "status": "AUTHORIZED", "createdDate": "Aug 2, 2021 11:40:56 PM", "statusChangeDate": "Aug 2, 2021 11:40:57 PM" } ] }, "requestID": "87ee1c99-9e41-42be-a5c4-00495f928422", "eventID": "03a3d818-37c8-46a6-aad5-0151803bdb09", "readOnly": false, "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }

Amazon S3 のバケット通知機能を使用して、オブジェクト作成イベントを AWS Lambda に発行するよう Amazon S3 に指示することができます。CloudTrail が S3 バケットにログを書き込むと、Amazon S3 は、Amazon S3 のオブジェクト作成イベントをパラメータとして渡すことによって、Lambda 関数を呼び出すことができます。Lambda 関数は、このログオブジェクトを読み取り、CloudTrail によってログに記録されたアクセスレコードを処理することができます。詳細については AWS CloudTrail で AWS Lambda を使用するを参照してください。

AWS CloudTrail ログの Amazon Redshift アカウント ID

Amazon Redshift が別の AWS のサービスを呼び出す際、その呼び出しは、Amazon Redshift に属するアカウント ID で記録されます。自分のアカウント ID では記録されません。たとえば、Amazon Redshift が、クラスターでの暗号化を管理するために CreateGrantDecryptEncryptRetireGrant などの AWS Key Management Service (AWS KMS) オペレーションを呼び出すとします。この場合、この呼び出しは AWS CloudTrail により、Amazon Redshift アカウント ID を使用して記録されます。

Amazon Redshift が他の AWS サービスを呼び出す際、次の表にあるアカウント ID が使用されます。

リージョン リージョン アカウント ID
米国東部(バージニア州北部) リージョン us-east-1 368064434614
米国東部(オハイオ州)リージョン us-east-2 790247189693
米国西部 (北カリフォルニア) リージョン us-west-1 703715109447
米国西部 (オレゴン州) リージョン us-west-2 473191095985
アフリカ(ケープタウン)リージョン af-south-1 420376844563
アジアパシフィック (香港) リージョン ap-east-1 651179539253
アジアパシフィック (ジャカルタ) リージョン ap-southeast-3 623197973179
アジアパシフィック (ムンバイ) リージョン ap-south-1 408097707231
アジアパシフィック(大阪)リージョン ap-northeast-3 398671365691
アジアパシフィック (ソウル) リージョン ap-northeast-2 713597048934
アジアパシフィック (シンガポール) リージョン ap-southeast-1 960118270566
アジアパシフィック (シドニー) リージョン ap-southeast-2 485979073181
アジアパシフィック (東京) リージョン ap-northeast-1 615915377779
カナダ (中部) リージョン ca-central-1 764870610256
欧州(フランクフルト)リージョン eu-central-1 434091160558
欧州(アイルランド)リージョン eu-west-1 246478207311
欧州(ロンドン)リージョン eu-west-2 885798887673
欧州(ミラノ)リージョン eu-south-1 041313461515
欧州(パリ)リージョン eu-west-3 694668203235
欧州(ストックホルム)リージョン eu-north-1 553461782468
中東 (バーレーン) リージョン me-south-1 051362938876
南米 (サンパウロ) リージョン sa-east-1 392442076723

次の例は、Amazon Redshift から呼び出された AWS KMS Decrypt オペレーションの CloudTrail ログエントリを示しています。

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAI5QPCMKLTL4VHFCYY:i-0f53e22dbe5df8a89", "arn": "arn:aws:sts::790247189693:assumed-role/prod-23264-role-wp/i-0f53e22dbe5df8a89", "accountId": "790247189693", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2017-03-03T16:24:54Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAI5QPCMKLTL4VHFCYY", "arn": "arn:aws:iam::790247189693:role/prod-23264-role-wp", "accountId": "790247189693", "userName": "prod-23264-role-wp" } } }, "eventTime": "2017-03-03T17:16:51Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-2", "sourceIPAddress": "52.14.143.61", "userAgent": "aws-internal/3", "requestParameters": { "encryptionContext": { "aws:redshift:createtime": "20170303T1710Z", "aws:redshift:arn": "arn:aws:redshift:us-east-2:123456789012:cluster:my-dw-instance-2" } }, "responseElements": null, "requestID": "30d2fe51-0035-11e7-ab67-17595a8411c8", "eventID": "619bad54-1764-4de4-a786-8898b0a7f40c", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-east-2:123456789012:key/f8f4f94f-e588-4254-b7e8-078b99270be7", "accountId": "123456789012", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "123456789012", "sharedEventID": "c1daefea-a5c2-4fab-b6f4-d8eaa1e522dc" }