はじめに
業務でAWSの各サービスログを使って、ログ分析基盤を構築することが多く
その都度、AWS公式サイトやクラスメソッドさんのDevelopers.IOのお世話になっているので
その情報を一覧性のある表にまとめてみました。
ストックついでに、テレずに、ぜひLGTMも(*´ω`)
AWSサービスログ一覧
サービス名 | 取得可否 | ログの内容 | CloudWatch Logs | S3 | CloudTrail | 公式サイト | 参考情報 |
---|---|---|---|---|---|---|---|
Amazon Elastic Compute Cloud (EC2) | 可 | OS上のあらゆるログ(CloudWatchエージェント→CloudWatch Logs) | ● | × | × | CloudWatch エージェントを使用して Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する | EC2インスタンス内のログをCloudWatch LogsとS3バケットに保存してみた |
Amazon Elastic Compute Cloud (EC2) | 可 | OS上のあらゆるログ(Kinesisエージェント→Kinesis Data Firehose→S3) | × | ● | × | Kinesis エージェントを使用した Kinesis Data Firehose への書き込み | AWS EC2 + Kinesis Firehose + S3でApacheログを集約 |
Amazon Elastic Container Service (ECS) | 可 | タスクのコンテナログ | ● | × | × | awslogsログドライバーを使用する | ECS/Fargateでログ出力先をカスタマイズできる「FireLens」機能がリリースされました |
Amazon Elastic Container Service (ECS) | 可 | タスクのコンテナログ(FluentdまたはFluent Bit) | ● | ● | × | カスタムログルーティング | ECS/Fargateでログ出力先をカスタマイズできる「FireLens」機能がリリースされました |
Amazon Elastic Container Service for Kubernetes | 可 | EKSコントロールプレーンの監査/診断ログ | ● | × | × | Amazon EKSコントロールプレーンのログ記録 | - |
Amazon Elastic Container Registry (ECR) | 可 | ECR APIコールログ | × | × | ● | AWS CloudTrailを使用したAmazon ECRアクションのログ記録 | - |
AWS Fargate | 可 | タスクのコンテナログ | ● | × | × | awslogsログドライバーを使用する | ECS/Fargateでログ出力先をカスタマイズできる「FireLens」機能がリリースされました |
AWS Fargate | 可 | タスクのコンテナログ(FluentdまたはFluent Bit) | ● | ● | × | カスタムログルーティング | ECS/Fargateでログ出力先をカスタマイズできる「FireLens」機能がリリースされました |
AWS Lambda | 可 | 関数で処理された全てのリクエストログ | ● | × | × | Amazon CloudWatchのAWS Lambdaログへのアクセス | AWS Lambdaのログまわりに関することまとめ |
Elastic Load Balancing (ALB) | 可 | ALBに対するリクエストのアクセスログ | × | ● | × | Application Load Balancerのアクセスログ | ALBのアクセスログ機能を設定してみた |
Elastic Load Balancing (NLB) | 可 | NLBに対するリクエストのアクセスログ | × | ● | × | Network Load Balancerのアクセスログ | NLBのアクセスログ設定 |
Elastic Load Balancing (CLB) | 可 | CLBに対するリクエストのアクセスログ | × | ● | × | Classic Load Balancerのアクセスログの有効化 | - |
Amazon Simple Storage Service (S3) | 可 | S3バケットへのサーバーアクセスログ | × | ● | × | Amazon S3サーバーアクセスのログ記録 | S3のアクセスログ設定方法 |
Amazon Simple Storage Service (S3) | 可 | S3オブジェクトレベルでのAPIアクセスログ | × | × | ● | AWS CloudTrailデータイベントでS3バケットのオブジェクトレベルのログ記録を有効にする方法 | CloudTrailでS3オブジェクトレベルのアクセスをロギングする |
Amazon Elastic File System (EFS) | 不可 | EFSに対するNFSアクセスログは、CloudTrailのAPIログでは出力されませんでした | × | × | × | AWS CloudTrailを使用したAmazon EFS API呼び出しのログ作成 | - |
Amazon Aurora (MySQL互換) | 可 | SQL監査ログ(MARIADB_AUDIT_PLUGIN オプション) | ● | × | × | Amazon Aurora MySQL DBクラスターでの高度な監査の使用 | Aurora MySQLのログをAmazon ESに取り込んでみた |
Amazon Aurora (PostgreSQL互換) | 可 | PostgreSQL DBインスタンスのクエリログ記録 | ● | × | × | Amazon CloudWatch LogsへのAurora PostgreSQLログの発行 | Aurora PostgreSQLの監査ログをAmazon ESに取り込んでみた |
Amazon RDS (MySQL) | 可 | SQL監査ログ(MARIADB_AUDIT_PLUGIN オプション) | ● | × | × | MySQLデータベースログファイル | RDSのMySQL/MariaDBでログをCloudWatch Logsへ出力可能になりました |
Amazon RDS (PostgresSQL) | 可 | PostgreSQL DBインスタンスのクエリログ記録 | ● | × | × | PostgreSQLデータベースのログファイル | RDS for PostgreSQLのログをCloudWatch Logsに出力できるようになりました |
Amazon RDS (Oracle) | 可 | SQL監査ログ | ● | × | × | Oracle Databaseのログファイル | RDS for OracleがCloudWatch Logsへのログ出力をサポートしました |
Amazon RDS (SQL Server) | 可 | DBインスタンスのトレースファイル | ● | × | × | Microsoft SQL Serverデータベースのログファイル | RDS for SQLServerのログをCloudWatchLogsで記録できるようになりました |
Amazon RDS (MariaDB) | 可 | SQL監査ログ(MARIADB_AUDIT_PLUGIN オプション) | ● | × | × | MariaDBデータベースログファイル | RDSのMySQL/MariaDBでログをCloudWatch Logsへ出力可能になりました |
Amazon DynamoDB | 不可 | オブジェクトに対するアクセスログ(ScanやQuery、GetItemやUpdateItem)は、CloudTrailのAPIログでは出力されませんでした | × | × | × | AWS CloudTrailを使用したDynamoDBオペレーションのログ記録 | AWS CloudTrailはすべてのAWS APIコールを記録するわけではない |
Amazon ElastiCache | 不可 | オブジェクトに対するアクセスログは、CloudTrailのAPIログでは出力されませんでした | × | × | × | AWS CloudTrailを使用したAmazon ElastiCache APIコールのログ記録 | - |
Amazon Neptune | 可 | 監査ログ | ● | × | × | Amazon CloudWatch LogsへのNeptuneログの発行 | Neptuneインスタンスの監査ログを取得する方法 |
Amazon DocumentDB (MongoDB 互換) | 可 | クラスター内で実行されたイベント監査ログ(認証の成功と失敗、コレクション削除、インデックス作成) | ● | × | × | Amazon DocumentDB監査イベント | Amazon DocumentDBがCloudWatch Logsへの監査ログ出力に対応 |
AWS Transfer for SFTP | 可 | SFTPサーバーのアクティビティ監査ログ(認証の成功と失敗、データのPUT/GET) | ● | × | × | 使用状況のモニタリング | AWS SFTPログをCloudWatch Logsに出力してみた |
Amazon Virtual Private Cloud (VPC) | 可 | VPCのフローログ | ● | ● | × | VPCフローログ | VPCフローログをAmazon Athenaで分析する |
Amazon CloudFront | 可 | CloudFrontが受信するすべてのユーザーリクエストに関する詳細情報を含めたアクセスログ | × | ● | × | アクセスログの設定および使用 | CloudFrontのアクセスログ設定方法 |
Amazon Route 53 | 可 | DNSクエリログ(パブリックホストゾーンのみ) | ● | × | × | DNSクエリのログ記録 | Route53でクエリログが取得できるようになりました |
Amazon API Gateway | 可 | リクエストの実行やAPIへのクライアントアクセスログ | ● | × | × | Amazon API Gatewayでのログ記録とモニタリング | Amazon API Gatewayでアクセスログを記録する |
AWS CloudTrail | 可 | AWS APIコールログ | ● | ● | - | CloudTrailログファイルの取得と表示 | CloudTrailとCloudWatch Logsの連携によるログのアラーム設定 |
AWS Config | 可 | AWS設定変更履歴ログ | × | ● | × | コンソールによるAWS Configの設定 | AWS Configの初回セットアップ |
AWS Systems Manager | 可 | Session Managerのセッションアクティビティログ | ● | ● | × | セッションアクティビティのログ記録と監査 | AWS Systems Manager Session Managerのシェル操作をログ出力する |
Amazon GuardDuty | 可 | VPC FLowLogs、Route53 DNSクエリログ、Cloudtrailの相関分析による脅威検知ログ | × | ● | × | 結果のエクスポート | Amazon GuardDutyの調査結果の視覚化 |
AWS Shield | 不可 | AWS Shieldによる検知ログは取れませんでした | × | × | × | - | - |
AWS WAF | 可 | WebACLトラフィックログ(Kinesis Data Firehose経由) | × | ● | × | ウェブACLトラフィック情報のログ記録 | AWS WAFのログをFirehoseでS3に出力しブロックログをS3Selectで確認してみた |
Amazon Elastic MapReduce (EMR) | 可 | ステップログ、HadoopおよびYARNコンポーネントログ、ブートストラップアクションログ、インスタンス状態ログ | × | ● | × | クラスタログとデバッグを構成する | EMRのログ周りについて |
Amazon CloudSearch | 不可 | ドキュメントに対するAPIクエリログは、CloudTrailのAPIログでは出力されませんでした | × | × | × | AWS CloudTrailを使用したAmazon CloudSearch設定API呼び出しのログ記録 | - |
Amazon Elasticsearch Service | 不可 | ドキュメントに対するAPIクエリログは、CloudTrailのAPIログでは出力されませんでした | × | × | × | Amazon Elasticsearch Serviceのログ記録とモニタリング | - |
Amazon Redshift | 可 | データベースの接続とユーザーアクティビティに関するログ | × | ● | × | データベース監査ログ作成 | Amazon Redshiftでデータベース監査ログをS3に出力する |
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へ出力してみた
まとめ
いかがでしたでしょうか?
意外とAWSサービスのログに関する情報がまとまっているサイトがなかったので
この度、自分の備忘録的な目的でまとめてみました。他にも良い情報があったら
教えて頂けると幸いです^^
2024年2月5日追記
本投稿の内容をより拡充し、より実践的な内容で書籍にまとめました。
もしご興味あれば、こちらもぜひ ^^