selmertsxの素振り日記

ひたすら日々の素振り内容を書き続けるだけの日記

【雑メモ】AWS CloudTrailメモ

  1. CloudTrailとは

AWSのユーザー、ロールによって実行されたアクションを記録するもの。 AWSマネジメントコンソール、AWS CLIAWS SDKで実行された全てのアクションが記録される。 ログはS3に記録され、SSEを使用して暗号化される。 記録するデータには大きく分けて、管理イベントとデータイベントがある。 データイベントについては、記録するか否か選ぶことができる。

アクセスから15分後に、ログファイルは配信される。これは変更することも可能である。ログファイルは監査に使われるため、通常の権限では変更できないものでなければならない。ログファイルは、splunk等の外部サービスとも連携することが可能である。CloudTrailでは全てのAWSサービスが、対応している訳ではない。

管理イベント

  • セキュリティグループの設定 (例: IAM AttachRolePolicy API オペレーション).
  • デバイスの登録 (例: Amazon EC2 CreateDefaultVpc API オペレーション).
  • データをルーティングするルールの設定 (例: Amazon EC2 CreateSubnet API オペレーション).
  • ログ記録の設定 (例: AWS CloudTrail CreateTrail API オペレーション).

データイベント

  • Amazon S3 オブジェクトレベルの API アクティビティ (例: GetObject、DeleteObject、PutObject API オペレーション).
  • AWS Lambda 関数の実行アクティビティ (Invoke API).

CloudWatch Logsとの連携

ログデータのモニタリングに使えるやつ。CloudTrailで取得したデータを、ここに突っ込むのもあり。ルールを指定して、それに合致するLogが来たらアラート飛ばすなども可能。

CloudTrailとリージョン

基本的に、AWSパーティション内の全てのリージョンで監査する。 (ap-northeast01aとかそういうことかな?) あまり使用しないリージョンでリソースされたときなどの、異常なアクティビティを検知できるから。1つのリージョンに対してMAX5つのtrail logを残すことが可能。

グローバルサービスイベントについて

AWS Identity and Access Management (IAM)、AWS STSAmazon CloudFront、Route 53などの、複数のリージョンにまたがって存在するリソースのイベント。これらは、US East (N. Virginia) に記録される。設定を失敗すると、重複して送られてしまうこともあるのでよく確認すること。

https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail-by-using-the-aws-cli.html#cloudtrail-create-and-update-a-trail-by-using-the-aws-cli-examples-gses

CloudTrailで取得できるログについて

AccountID_CloudTrail_RegionName_YYYYMMDDTHHmmZ_UniqueString.FileNameFormat
111122223333_CloudTrail_us-east-2_20150801T0210Z_Mu0KsOhtH1ar15ZZ.json.gz
  • UniqueStringは自動で生成されそうな気配 (未確認)

実際のログについて

{"Records": [{
    "eventVersion": "1.0",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "EX_PRINCIPAL_ID",
        "arn": "arn:aws:iam::123456789012:user/Alice",
        "accessKeyId": "EXAMPLE_KEY_ID",
        "accountId": "123456789012",
        "userName": "Alice"
    },
    "eventTime": "2014-03-06T21:22:54Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "StartInstances",
    "awsRegion": "us-east-2",
    "sourceIPAddress": "205.251.233.176",
    "userAgent": "ec2-api-tools 1.6.12.2",
    "requestParameters": {"instancesSet": {"items": [{"instanceId": "i-ebeaf9e2"}]}},
    "responseElements": {"instancesSet": {"items": [{
        "instanceId": "i-ebeaf9e2",
        "currentState": {
            "code": 0,
            "name": "pending"
        },
        "previousState": {
            "code": 80,
            "name": "stopped"
        }
    }]}}
}]}

その他メモ

https://digitalforensic.jp/2011/11/10/column182/