View a markdown version of this page

監査ログの表示 - Amazon Relational Database Service

監査ログの表示

監査ログは D:\rdsdbdata\SQLAudit に格納されます。

ファイルがサイズ制限に達している場合に SQL Server が監査ログファイルへの書き込みを完了すると、Amazon RDS はファイルを S3 バケットにアップロードします。保持設定が有効になっている場合、Amazon RDS は、このファイルを保持フォルダ (D:\rdsdbdata\SQLAudit\transmitted) に移動します。

保持設定については、SQL Server Audit を DB インスタンスオプションに追加する を参照してください。

監査ログファイルがアップロードされるまで、監査レコードは DB インスタンスに維持されます。監査レコードを表示するには、次のコマンドを実行します。

SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\*.sqlaudit' , default , default )

同じコマンドを使用して、保持フォルダの監査レコードを表示するには、フィルタを D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit に変更します。

SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit' , default , default )

CloudWatch での監査ログレコードの表示

監査ログを CloudWatch にアップロードすることを選択した場合は、以下の手順に従ってログレコード (JSON 形式) にアクセスできます。

CloudWatch で監査ログを表示するには
  1. CloudWatch コンソールの https://console.aws.amazon.com/cloudwatch/ を開いてください。

  2. 左側のナビゲーションペインで、[ログ][ログ管理] の順に選択します。

  3. [ロググループ] 検索ボックスに DB インスタンス名を入力します。

  4. 適切なロググループを選択します。

  5. [ログストリーム] タブで、ログストリームを選択します。

あるいは、AWS CLI を使用してログストリームをクエリすることもできます。次の例では、監査ログイベントを抽出し、CSV ファイルにエクスポートします。

# Parameters # ----------- LOG_GROUP="/aws/rds/instance/<your-db-instance-id>/sqlaudit" START_DATE="2026-06-18" END_DATE="2026-06-19" OUTPUT_FILE="sql_audit_extract.csv" # Convert dates to epoch milliseconds # ----------------------------------- START_TIME=$(date -d "${START_DATE}" +%s)000 END_TIME=$(date -d "${END_DATE}" +%s)000 # Fetch log events # ---------------- # Note: --no-paginate returns all results in a single call. # For large result sets, consider using --page-size or manual pagination. RESPONSE=$(aws logs filter-log-events \ --log-group-name "${LOG_GROUP}" \ --start-time "${START_TIME}" \ --end-time "${END_TIME}" \ --output json \ --no-paginate) # Parse and export to CSV # Extract the 'message' field from each event (JSON formatted messages), # then convert to CSV using jq. # Get CSV headers from the first record # ------------------------------------- HEADERS=$(echo "${RESPONSE}" | jq -r ' [.events[0].message | fromjson | keys[]] | @csv ') # Write headers to output file # ---------------------------- echo "${HEADERS}" > "${OUTPUT_FILE}" # Write all records to output file # -------------------------------- echo "${RESPONSE}" | jq -r ' .events[].message | fromjson | [.[]] | @csv ' >> "${OUTPUT_FILE}" # Script execution summary # ------------------------- RECORD_COUNT=$(echo "${RESPONSE}" | jq '.events | length') echo "Exported ${RECORD_COUNT} records to ${OUTPUT_FILE}"