AWSサービスのログまとめ

## はじめに
業務でAWSの各サービスログを使って、ログ分析基盤を構築することが多く
その都度、AWS公式サイトやクラスメソッドさんのDevelopers.IOのお世話になっているので
その情報を一覧性のある表にまとめてみました。

ストックついでに、テレずに、ぜひLGTMも(*´ω｀)

## AWSサービスログ一覧
| サービス名 | 取得可否 | ログの内容 | CloudWatch Logs | S3 | CloudTrail | 公式サイト | 参考情報 |
|---------|---------|---------|---------|---------|---------|---------|---------|
| Amazon Elastic Compute Cloud (EC2) | 可 | OS上のあらゆるログ(CloudWatchエージェント→CloudWatch Logs) | ● | × | × | [CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する][01] | [EC2インスタンス内のログをCloudWatch LogsとS3バケットに保存してみた][39] |
| Amazon Elastic Compute Cloud (EC2) | 可 | OS上のあらゆるログ(Kinesisエージェント→Kinesis Data Firehose→S3) | × | ● | × | [Kinesis エージェントを使用した Kinesis Data Firehose への書き込み][02] | [AWS EC2 + Kinesis Firehose + S3でApacheログを集約][40] |
| Amazon Elastic Container Service (ECS) | 可 | タスクのコンテナログ | ● | × | × | [awslogsログドライバーを使用する][03] | [ECS/Fargateでログ出力先をカスタマイズできる「FireLens」機能がリリースされました][41] |
| Amazon Elastic Container Service (ECS) | 可 | タスクのコンテナログ(FluentdまたはFluent Bit) | ● | ● | × | [カスタムログルーティング][04] | [ECS/Fargateでログ出力先をカスタマイズできる「FireLens」機能がリリースされました][41] |
| Amazon Elastic Container Service for Kubernetes | 可 | EKSコントロールプレーンの監査/診断ログ | ● | × | × | [Amazon EKSコントロールプレーンのログ記録][05] | - |
| Amazon Elastic Container Registry (ECR) | 可 | ECR APIコールログ | × | × | ● | [AWS CloudTrailを使用したAmazon ECRアクションのログ記録][06] | - |
| AWS Fargate | 可 | タスクのコンテナログ | ● | × | × | [awslogsログドライバーを使用する][03] | [ECS/Fargateでログ出力先をカスタマイズできる「FireLens」機能がリリースされました][41] |
| AWS Fargate | 可 | タスクのコンテナログ(FluentdまたはFluent Bit) | ● | ● | × | [カスタムログルーティング][04] | [ECS/Fargateでログ出力先をカスタマイズできる「FireLens」機能がリリースされました][41] |
| AWS Lambda | 可 | 関数で処理された全てのリクエストログ | ● | × | × | [Amazon CloudWatchのAWS Lambdaログへのアクセス][07] | [AWS Lambdaのログまわりに関することまとめ][42] |
| Elastic Load Balancing (ALB) | 可 | ALBに対するリクエストのアクセスログ | × | ● | × | [Application Load Balancerのアクセスログ][08] | [ALBのアクセスログ機能を設定してみた][43] |
| Elastic Load Balancing (NLB) | 可 | NLBに対するリクエストのアクセスログ | × | ● | × | [Network Load Balancerのアクセスログ][09] | [NLBのアクセスログ設定][44] |
| Elastic Load Balancing (CLB) | 可 | CLBに対するリクエストのアクセスログ | × | ● | × | [Classic Load Balancerのアクセスログの有効化][10] | - |
| Amazon Simple Storage Service (S3) | 可 | S3バケットへのサーバーアクセスログ | × | ● | × | [Amazon S3サーバーアクセスのログ記録][11] | [S3のアクセスログ設定方法][45] |
| Amazon Simple Storage Service (S3) | 可 | S3オブジェクトレベルでのAPIアクセスログ | × | × | ● | [AWS CloudTrailデータイベントでS3バケットのオブジェクトレベルのログ記録を有効にする方法][12] | [CloudTrailでS3オブジェクトレベルのアクセスをロギングする][46] |
| Amazon Elastic File System (EFS) | 不可 | EFSに対するNFSアクセスログは、CloudTrailのAPIログでは出力されませんでした | × | × | × | [AWS CloudTrailを使用したAmazon EFS API呼び出しのログ作成][13] | - |
| Amazon Aurora (MySQL互換) | 可 | SQL監査ログ(MARIADB_AUDIT_PLUGIN オプション) | ● | × | × | [Amazon Aurora MySQL DBクラスターでの高度な監査の使用][14] | [Aurora MySQLのログをAmazon ESに取り込んでみた][47] |
| Amazon Aurora (PostgreSQL互換) | 可 | PostgreSQL DBインスタンスのクエリログ記録 | ● | × | × | [Amazon CloudWatch LogsへのAurora PostgreSQLログの発行][15] | [Aurora PostgreSQLの監査ログをAmazon ESに取り込んでみた][48] |
| Amazon RDS (MySQL) | 可 | SQL監査ログ(MARIADB_AUDIT_PLUGIN オプション) | ● | × | × | [MySQLデータベースログファイル][16] | [RDSのMySQL/MariaDBでログをCloudWatch Logsへ出力可能になりました][53] |
| Amazon RDS (PostgresSQL) | 可 | PostgreSQL DBインスタンスのクエリログ記録 | ● | × | × | [PostgreSQLデータベースのログファイル][17] | [RDS for PostgreSQLのログをCloudWatch Logsに出力できるようになりました][50] |
| Amazon RDS (Oracle) | 可 | SQL監査ログ | ● | × | × | [Oracle Databaseのログファイル][18] | [RDS for OracleがCloudWatch Logsへのログ出力をサポートしました][51] |
| Amazon RDS (SQL Server) | 可 | DBインスタンスのトレースファイル | ● | × | × | [Microsoft SQL Serverデータベースのログファイル][19] | [RDS for SQLServerのログをCloudWatchLogsで記録できるようになりました][52] |
| Amazon RDS (MariaDB) | 可 | SQL監査ログ(MARIADB_AUDIT_PLUGIN オプション) | ● | × | × | [MariaDBデータベースログファイル][20] | [RDSのMySQL/MariaDBでログをCloudWatch Logsへ出力可能になりました][53] |
| Amazon DynamoDB | 不可 | オブジェクトに対するアクセスログ(ScanやQuery、GetItemやUpdateItem)は、CloudTrailのAPIログでは出力されませんでした | × | × | × | [AWS CloudTrailを使用したDynamoDBオペレーションのログ記録][21] | [AWS CloudTrailはすべてのAWS APIコールを記録するわけではない][54] |
| Amazon ElastiCache | 不可 | オブジェクトに対するアクセスログは、CloudTrailのAPIログでは出力されませんでした | × | × | × | [AWS CloudTrailを使用したAmazon ElastiCache APIコールのログ記録][22] | - |
| Amazon Neptune | 可 | 監査ログ | ● | × | × | [Amazon CloudWatch LogsへのNeptuneログの発行][23] | [Neptuneインスタンスの監査ログを取得する方法][55] |
| Amazon DocumentDB (MongoDB 互換) | 可 | クラスター内で実行されたイベント監査ログ(認証の成功と失敗、コレクション削除、インデックス作成) | ● | × | × | [Amazon DocumentDB監査イベント][24] | [Amazon DocumentDBがCloudWatch Logsへの監査ログ出力に対応][56] | 
| AWS Transfer for SFTP | 可 | SFTPサーバーのアクティビティ監査ログ(認証の成功と失敗、データのPUT/GET) | ● | × | × | [使用状況のモニタリング][25] | [AWS SFTPログをCloudWatch Logsに出力してみた][57] |
| Amazon Virtual Private Cloud (VPC) | 可 | VPCのフローログ | ● | ● | × | [VPCフローログ][26] | [VPCフローログをAmazon Athenaで分析する][58] |
| Amazon CloudFront | 可 | CloudFrontが受信するすべてのユーザーリクエストに関する詳細情報を含めたアクセスログ | × | ● | × | [アクセスログの設定および使用][27] | [CloudFrontのアクセスログ設定方法][59] |
| Amazon Route 53 | 可 | DNSクエリログ(パブリックホストゾーンのみ) | ● | × | × | [DNSクエリのログ記録][28] | [Route53でクエリログが取得できるようになりました][60] |
| Amazon API Gateway | 可 | リクエストの実行やAPIへのクライアントアクセスログ | ● | × | × | [Amazon API Gatewayでのログ記録とモニタリング][29] | [Amazon API Gatewayでアクセスログを記録する][61] |
| AWS CloudTrail | 可 | AWS APIコールログ | ● | ● | - | [CloudTrailログファイルの取得と表示][30] | [CloudTrailとCloudWatch Logsの連携によるログのアラーム設定][62] |
| AWS Config | 可 | AWS設定変更履歴ログ | × | ● | × | [コンソールによるAWS Configの設定][31] | [AWS Configの初回セットアップ][63] |
| AWS Systems Manager | 可 | Session Managerのセッションアクティビティログ | ● | ● | × | [セッションアクティビティのログ記録と監査][32] | [AWS Systems Manager Session Managerのシェル操作をログ出力する][64] |
| Amazon GuardDuty | 可 | VPC FLowLogs、Route53 DNSクエリログ、Cloudtrailの相関分析による脅威検知ログ | × | ● | × | [結果のエクスポート][33] | [Amazon GuardDutyの調査結果の視覚化][65] |
| AWS Shield | 不可 | AWS Shieldによる検知ログは取れませんでした | × | × | × | - | - |
| AWS WAF | 可 | WebACLトラフィックログ(Kinesis Data Firehose経由) | × | ● | × | [ウェブACLトラフィック情報のログ記録][34] | [AWS WAFのログをFirehoseでS3に出力しブロックログをS3Selectで確認してみた][66] |
| Amazon Elastic MapReduce (EMR) | 可 | ステップログ、HadoopおよびYARNコンポーネントログ、ブートストラップアクションログ、インスタンス状態ログ | × | ● | × | [クラスタログとデバッグを構成する][35] | [EMRのログ周りについて][67] |
| Amazon CloudSearch | 不可 | ドキュメントに対するAPIクエリログは、CloudTrailのAPIログでは出力されませんでした | × | × | × | [AWS CloudTrailを使用したAmazon CloudSearch​設定API呼び出しのログ記録][36] | - |
| Amazon Elasticsearch Service　| 不可 | ドキュメントに対するAPIクエリログは、CloudTrailのAPIログでは出力されませんでした | × | × | × | [Amazon Elasticsearch Serviceのログ記録とモニタリング][37] | - |
| Amazon Redshift　| 可 | データベースの接続とユーザーアクティビティに関するログ | × | ● | × | [データベース監査ログ作成][38] | [Amazon Redshiftでデータベース監査ログをS3に出力する][68] |

## CloudTrailの扱い
- すべてではありませんが、多くのAWSサービスに対するAWS APIのログを取得することができます。
- AWS APIで取得できないログは、上記表のようにCloudWatch LogsやS3で取得できるようになっています。
- サービスへのAPI監査ログをCloudTrailの監査証跡から取得することも合わせて実施しましょう。

## CloudWatch LogsからS3へのログ転送
- CloudWatch Logsにしかログ出力できないサービスがいくつか存在します。
- Kinesis Data Firehoseのサブスクリプションフィルタを利用することでS3にログ転送することができます。

**【参考】**
・[Kinesis Firehoseを使ってCloudWatch Logをs3へ出力してみた][69]

## まとめ
いかがでしたでしょうか？
意外とAWSサービスのログに関する情報がまとまっているサイトがなかったので
この度、自分の備忘録的な目的でまとめてみました。他にも良い情報があったら
教えて頂けると幸いです^^

## 2024年2月5日追記
本投稿の内容をより拡充し、より実践的な内容で書籍にまとめました。
もしご興味あれば、こちらもぜひ ^^

・[AWS継続的セキュリティ実践ガイド ログの収集／分析による監視体制の構築][70]

[01]:https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html	"CloudWatchエージェントを使用してAmazonEC2インスタンスとオンプレミスサーバーからメトリクスとログを収集する"
[02]:https://docs.aws.amazon.com/ja_jp/firehose/latest/dev/writing-with-agents.html "Kinesisエージェントを使用した Kinesis Data Firehoseへの書き込み"
[03]:https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/using_awslogs.html "awslogsログドライバーを使用する"
[04]:https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/using_firelens.html "カスタムログルーティング"
[05]:https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/control-plane-logs.html "Amazon EKS コントロールプレーンのログ記録"
[06]:https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/logging-using-cloudtrail.html "AWS CloudTrailを使用したAmazon ECRアクションのログ記録"
[07]:https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/monitoring-functions-logs.html "Amazon CloudWatchのAWS Lambda ログへのアクセス"
[08]:https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html "Application Load Balancerのアクセスログ"
[09]:https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/load-balancer-access-logs.html "Network Load Balancerのアクセスログ"
[10]:https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/classic/enable-access-logs.html "Classic Load Balancerのアクセスログの有効化"
[11]:https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/ServerLogs.html "Amazon S3サーバーアクセスのログ記録"
[12]:https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/user-guide/enable-cloudtrail-events.html "AWS CloudTrailデータイベントでS3バケットのオブジェクトレベルのログ記録を有効にする方法"
[13]:https://docs.aws.amazon.com/ja_jp/efs/latest/ug/logging-using-cloudtrail.html "AWS CloudTrailを使用したAmazon EFS API呼び出しのログ作成"
[14]:https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Auditing.html "Amazon Aurora MySQL DBクラスターでの高度な監査の使用"
[15]:https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.CloudWatch.html "Amazon CloudWatch LogsへのAurora PostgreSQLログの発行"
[16]:https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MySQL.html "MySQLデータベースログファイル"
[17]:https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.PostgreSQL.html "PostgreSQLデータベースのログファイル"
[18]:https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.Oracle.html "Oracle Database のログファイル"
[19]:https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.SQLServer.html "Microsoft SQL Serverデータベースのログファイル"
[20]:https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_LogAccess.Concepts.MariaDB.html "MariaDBデータベースログファイル"
[21]:https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/logging-using-cloudtrail.html "AWS CloudTrailを使用したDynamoDBオペレーションのログ記録"
[22]:https://docs.aws.amazon.com/ja_jp/AmazonElastiCache/latest/mem-ug/logging-using-cloudtrail.html "AWS CloudTrailを使用した Amazon ElastiCache APIコールのログ記録"
[23]:https://docs.aws.amazon.com/ja_jp/neptune/latest/userguide/cloudwatch-logs.html "Amazon CloudWatch LogsへのNeptuneログの発行"
[24]:https://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/event-auditing.html "Amazon DocumentDB監査イベント"
[25]:https://docs.aws.amazon.com/ja_jp/transfer/latest/userguide/monitoring.html "使用状況のモニタリング"
[26]:https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs.html "VPCフローログ"
[27]:https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html "アクセスログの設定および使用"
[28]:https://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/query-logs.html "DNSクエリのログ記録"
[29]:https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/security-monitoring.html "Amazon API Gatewayでのログ記録とモニタリング"
[30]:https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html "CloudTrailログファイルの取得と表示"
[31]:https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/gs-console.html "コンソールによるAWS Configの設定"
[32]:https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-logging-auditing.html "セッションアクティビティのログ記録と監査"
[33]:https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/guardduty_exportfindings.html "結果のエクスポート"
[34]:https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/logging.html "ウェブACLトラフィック情報のログ記録"
[35]:https://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/emr-plan-debugging.html "クラスタログとデバッグを構成する"
[36]:https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/logging-config-api-calls.html "AWS CloudTrailを使用した Amazon CloudSearch​設定API呼び出しのログ記録"
[37]:https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-managedomains-cloudtrailauditing.html "Amazon Elasticsearch Serviceのログ記録とモニタリング"
[38]:https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/db-auditing.html "データベース監査ログ作成"
[39]:https://dev.classmethod.jp/cloud/aws/ec2-to-cwl-s3/ "EC2インスタンス内のログをCloudWatch LogsとS3バケットに保存してみた"
[40]:https://www.yuulinux.tokyo/14332/ "AWS EC2+Kinesis Firehose+S3でApacheログを集約"
[41]:https://dev.classmethod.jp/articles/ecs-firelens/ "ECS/Fargateでログ出力先をカスタマイズできる「FireLens」機能がリリースされました"
[42]:https://dev.classmethod.jp/articles/lambda-and-cloudwatch/ "AWS Lambdaのログまわりに関することまとめ"
[43]:https://recipe.kc-cloud.jp/archives/10675 "ALBのアクセスログ機能を設定してみた"
[44]:https://cloudpack.media/52309 "NLBのアクセスログ設定"
[45]:https://oji-cloud.net/2019/07/10/post-2358/ "S3のアクセスログ設定方法"
[46]:https://dev.classmethod.jp/articles/cloudtrail-for-s3object-level-access/ "CloudTrailでS3オブジェクトレベルのアクセスをロギングする"
[47]:https://qiita.com/hssh2_bin/items/5f3ea69540055a10f156 "Aurora MySQLのログをAmazon ESに取り込んでみた"
[48]:https://qiita.com/hssh2_bin/items/051a9aa079f29f972ebb "Aurora PostgreSQLの監査ログをAmazon ESに取り込んでみた"
[49]:https://dev.classmethod.jp/articles/rds-mysql-mariadb-export-cloudwatch-logs/ "RDSのMySQL/MariaDBでログをCloudWatch Logsへ出力可能になりました"
[50]:https://dev.classmethod.jp/articles/postgresql-log-cloudwatch/ "RDS for PostgreSQLのログをCloudWatch Logsに出力できるようになりました"
[51]:https://dev.classmethod.jp/articles/rds-for-oracle-supports-cloudwatch-logs/ "RDS for Oracle がCloudWatch Logsへのログ出力をサポートしました"
[52]:https://dev.classmethod.jp/articles/rdsforsqlserver-cludwatchlog/ "RDS for SQLServerのログをCloudWatchLogsで記録できるようになりました"
[53]:https://dev.classmethod.jp/articles/rds-mysql-mariadb-export-cloudwatch-logs/ "RDSのMySQL/MariaDBでログをCloudWatch Logsへ出力可能になりました"
[54]:https://kdnakt.hatenablog.com/entry/2019/05/31/080000 "AWS CloudTrailはすべてのAWS APIコールを記録するわけではない"
[55]:https://zatoima.github.io/aws-neptune-audit-log.html "Neptuneインスタンスの監査ログを取得する方法"
[56]:https://dev.classmethod.jp/articles/documentdb-supports-audit/ "Amazon DocumentDBがCloudWatch Logsへの監査ログ出力に対応"
[57]:https://dev.classmethod.jp/articles/awssftp-cwlogs/ "AWS SFTPログをCloudWatch Logsに出力してみた"
[58]:https://dev.classmethod.jp/articles/vpc-flow-logs-athena/ "VPCフローログをAmazon Athenaで分析する"
[59]:https://oji-cloud.net/2019/08/16/post-2740/ "CloudFrontのアクセスログ設定方法"
[60]:https://dev.classmethod.jp/articles/query-log-from-route53/ "Route53でクエリログが取得できるようになりました"
[61]:https://dev.classmethod.jp/articles/aws-reinvent2017-api-gateway-access-log/ "Amazon API Gatewayでアクセスログを記録する"
[62]:https://dev.classmethod.jp/articles/cloudtrail-cloudwatch-logs-sns/ "CloudTrailとCloudWatch Logsの連携によるログのアラーム設定"
[63]:https://support.serverworks.co.jp/hc/ja/articles/115002682253 "AWS Configの初回セットアップ"
[64]:https://dev.classmethod.jp/articles/log-ssm-session-manager-for-shell-access-activity/ "AWS Systems Manager Session Managerのシェル操作をログ出力する"
[65]:https://aws.amazon.com/jp/blogs/security/visualizing-amazon-guardduty-findings/ "Amazon GuardDutyの調査結果の視覚化"
[66]:https://dev.classmethod.jp/articles/awf-waf-comprehensive-logging/ "AWS WAFのログをFirehoseでS3に出力しブロックログをS3Selectで確認してみた"
[67]:https://dev.classmethod.jp/articles/emr-cluster-logging-functions/ "EMRのログ周りについて"
[68]:https://dev.classmethod.jp/articles/amazon-redshift-audit-cloudtrail/ "Amazon Redshiftでデータベース監査ログをS3に出力する"
[69]:https://tech-cci.io/archives/3561 "Kinesis Firehoseを使ってCloudWatch Logをs3へ出力してみた"
[70]:https://www.amazon.co.jp/dp/479817663X/ "AWS継続的セキュリティ実践ガイド ログの収集／分析による監視体制の構築"