目次
- 目次
- はじめに
- どんなひとに読んで欲しい
- 関連記事
- ケース1:ログが有効になっていない
- ケース2:ログ配信遅延
- ケース3:ログが異なるリージョンにある
- ケース4:ログの保持期間が終了している
- ケース5:アクセス権限の問題
- Cloudtrailの推奨設定
- おわりに
- お知らせ
はじめに
こんにちは、クラウド事業部清水です。
Cloudtrailでよくあるログが見つからないことありませんか?
この記事では、よくあるケース毎の解説と確認方法や推奨設定を解説します。
どんなひとに読んで欲しい
- Cloudtrailのログ履歴が見れなくて困っている人
- Cloudtrailの知見を深めたい人
関連記事
ケース1:ログが有効になっていない
CloudTrailはデフォルトで管理イベントに対してログを取得します。
ただしデータイベントや他のリソースに対するログの記録は手動で設定する必要があります。
特定のAPI呼び出しやリソースに対してログ記録が有効になっていない場合、それらのAPI実行ログは記録されません。
▼参考までにログが有効のAWS CLIコマンドです。
aws cloudtrail start-logging --name 対象のトレイル名
ケース2:ログ配信遅延
CloudTrail ログは通常、イベント発生後数分以内にS3バケットに配信されます
ネットワークの遅延やその他のAWSの内部問題によって配信が遅れることがあります。
すぐにログを確認する場合、まだ配信されていない可能性があります。
AWS CloudTrail のログ配信遅延については、一般的にイベント発生後数分以内にログが Amazon S3 バケットに配信されるとされています。
しかし、通常は15分以内に配信されると考えるのが妥当かと
ケース3:ログが異なるリージョンにある
CloudTrailはリージョンごとにログを記録します。
APIコールが発生したリージョンとは異なるリージョンのCloudTrailログを確認している場合、対象のログが見つからないことがあります。
参考までにOrganizationsのAPIログは 米国東部 (バージニア北部) リージョンのみで表示できます。 docs.aws.amazon.com
ケース4:ログの保持期間が終了している
CloudTrailログはS3バケットに保存されるため
S3バケットのライフサイクルポリシーによっては古いログが自動的に削除されてしまう場合があります。
保存期間が短く設定されていると、期待するログがすでに削除されている可能性があります。
▼参考までにライフサイクル確認のAWS CLIコマンドです。
aws s3api get-bucket-lifecycle-configuration --bucket 対象のバケット名
出力例
{ "Rules": [ { "ID": "LogRetention", "Filter": { "Prefix": "AWSLogs/" }, "Status": "Enabled", "Transitions": [ { "Days": 20, "StorageClass": "STANDARD_IA" } ], "Expiration": { "Days": 365 }, "NoncurrentVersionExpiration": { "NoncurrentDays": 90 } } ] }
ケース5:アクセス権限の問題
CloudTrailのログを見るためには適切なIAMポリシーが必要です。
ユーザーまたはロールが必要な権限を持っていない場合
ログファイルへのアクセスが制限されているかもしれません。
参考までに閲覧には以下ポリシーの設定が必要です。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudtrail:DescribeTrails", "cloudtrail:GetTrailStatus", "cloudtrail:LookupEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<作成したcloudtrail-logs-bucket:バケット自体も含めないと閲覧できない>", "arn:aws:s3:::<作成したcloudtrail-logs-bucket>/*" ] } ] }
Cloudtrailの推奨設定
1.全リージョンでのログ記録の有効化
CloudTrail を全リージョンで有効にすることで、すべての AWS リージョンで発生するアクティビティを監視し、セキュリティの盲点をなくします。
▼参考までに全リージョンでログ記録を有効化するCLIコマンド(--is-multi-region-trail忘れずに)です。
aws cloudtrail create-trail --name 作成するトレイル名 --s3-bucket-name 対象のS3バケット名 --is-multi-region-trail
2.管理イベントとデータイベントのログ記録
管理イベントはデフォルトで有効になっていますが、S3 バケットや Lambda 関数などのリソースに対するデータアクセスイベントもログに記録することを推奨します。これにより、より詳細な監視と分析が可能になります。
3.S3 バケットへのログの保存
ログを保存する S3 バケットには、バージョニングを有効にし、バケットポリシーを適切に設定して、不正なアクセスや改ざんから保護することが重要です。また、バケットへのアクセスログを有効にして、監査可能な履歴を確保します。
4.CloudWatch Logs への統合
CloudTrail ログを AWS CloudWatch Logs に送信して、リアルタイムでのモニタリングやアラートを設定します。特定のイベントやアクティビティが発生したときにアラートを受け取ることができます。
5.ログの暗号化
S3 バケットに保存されるログファイルには、AWS KMS (Key Management Service) を使用して暗号化を施します。これにより、データのセキュリティが強化されます。
6.ログの定期的な監査と分析
定期的に CloudTrail ログを分析して、異常なアクティビティやパターンを検出し、適切なセキュリティ対策を講じることが重要です。AWS Athena やサードパーティのログ分析ツールを使用して分析を行うことができます。
7.IAM ロールとポリシーの適切な設定
CloudTrail ログへのアクセスを制限するために、IAM ロールとポリシーを適切に設定します。特定のユーザーやグループのみがログを閲覧や管理できるようにすることで、セキュリティを向上させます。
おわりに
この記事が問題解決の一助となれば幸いです。
今後もクラウド技術に関する情報を発信していきますので、よろしくお願いします。
お知らせ
APCはAWS Advanced Tier Services(アドバンストティアサービスパートナー)認定を受けております。
その中で私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。
www.ap-com.co.jp
https://www.ap-com.co.jp/service/utilize-aws/
また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。