DEV Community

kaede
kaede

Posted on

AWS Part 14 -- CloudTrail で操作ログを残す

why

リカバリーのために、AWS リソースへの操作履歴を見れるようにしたいから。


CloudTrail とは?

AWS リソースを変更した時に記録をするサービス。

https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-user-guide.html

公式によると、

  • ユーザー ( 人間がログインして動かす )
  • ロール ( ECS タスクや LAMBDA 関数の実行 )
  • AWS のサービス ( よくわからない )

でによって実行されたアクションが記録できると書いてある。

アクションとは EC2 インスタンスなどのリソースの作成や変更などと解釈した。


実際に作成する

CloudTrail のページから Create Trail ボタンを押す。

最初の 1 つは詳細設定が省かれるので、削除して新しく作る。

下記の設定で作る。

  • 名前: all-history
  • 保存場所: 新しい S3 バケツ
  • バケツ名: all-history-by-cloudtrail
  • KMS キーエイリアス: all-history-kms
  • ログファイルバリデーション: true
    • 重複するログを隠してくれると予想。
  • SNS 通知: false
    • ログが流れるたびに Slack や Twitter に post できると予想
  • CloudWatch ログ: false
    • CloudTrail で見れれば十分と考えたため。

次に下記の、記録するイベント詳細を決められる。

  • イベントタイプ
    • 管理イベント: true
    • データイベント: false
    • 異常なイベント: false
  • 管理イベント
    • API アクティビティ: Read and Write
    • KMS イベントを除外: false
    • RDS API イベントを除外: false

AWS リソースの管理ログだけ残したかった。
Read までつけるとログが多すぎるかもしれない。
検証のためにつけた。

これで Create Trail する。


KMS キーエイリアスとは?

https://qiita.com/mksamba/items/a7e902c6d5a12f2a36dc#:~:text=%E4%BD%9C%E6%88%90%E3%81%95%E3%82%8C%E3%82%8B%E3%80%82-,%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9,-(%E5%90%8D%E5%89%8D)%20%E3%82%92%20%E3%80%8Cmksamba

KMS キー名のとこらしい。


KMS キーとは?

CloudTrail の作成ではそんなに意識しなくて良さそう。

https://dev.classmethod.jp/articles/10minutes-kms/

KMS キーとはデータを暗号化する AWS 用の鍵。

マスターキーとデータキーがある。

マスターキーは

  1. データキーを暗号化できる
  2. ローカルに DL できない

  3. 実際のデータを暗号化できる。

  4. ローカルに DL できる。ローカルで使う。

実際の運用は

  1. マスターキーA でデータキーA を作る
  2. データキーA で実際のデータA を暗号化する。
  3. 暗号化されたデータキーA と、暗号化されたデータA が手に入る。
  4. データキーA を削除する
  5. マスターキーでA 暗号化されたデータキーA を復号する
  6. データキーA で復号化されたデータA が手に入る。

このように使えると解釈した。

https://qiita.com/mksamba/items/a7e902c6d5a12f2a36dc#53-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E6%9A%97%E5%8F%B7%E5%8C%96

実際にはこのような操作になるらしい。


検証してみる

KMS キーの作成ログはあるのを確認した

EC2 の作成、削除を実際にしてみた。

すると

  • TeminateInstanses
  • RunInstances

これらのイベントが観測できた。
リンクを辿ると、削除されたインスタンスに飛べた。


まとめ

AWS でリソースの作業ログを残すには CloudTrail を作成する。
設定としては管理イベントの Read Write があれば十分。

以上。


今後やりたいこと

  • SNS 通知。Slack
  • 異常検知。( 検証が難しそう )
  • KMS キーの本格的な運用

Top comments (0)