APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【Tips】【AWS】「Cloudtrailのトラブルシューティングガイド:ログが見つからない時まとめ」

目次

はじめに

こんにちは、クラウド事業部清水です。
Cloudtrailでよくあるログが見つからないことありませんか?
この記事では、よくあるケース毎の解説と確認方法や推奨設定を解説します。

どんなひとに読んで欲しい

  • Cloudtrailのログ履歴が見れなくて困っている人
  • Cloudtrailの知見を深めたい人

関連記事

techblog.ap-com.co.jp

techblog.ap-com.co.jp

techblog.ap-com.co.jp

ケース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/

また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp