AWS CLF(Cloud Practitioner)対策
CloudTrailとConfig
このレッスンを終えると、AWS CloudTrail (クラウドトレイル) と AWS Config (コンフィグ) を CloudWatch と取り違えずに選び分けられるようになります。この 3 つの区別は CLF でもっとも出題頻度が高い論点の一つです。
自分でサーバーを建てたときは何をしていたか
自分でサーバーを運用していたとき、次の 3 つはまったく別の仕組みで扱っていたはずです。
- 今どうなっているか を知るために、CPU 使用率やアクセスログを見る
- 誰が何をしたか を知るために、/var/log/auth.log や history、sudo のログを見る
- 設定がいつ変わったか を知るために、設定ファイルを Git に入れて差分を追う
AWS ではこの 3 つが、それぞれ CloudWatch・CloudTrail・AWS Config という別のサービスになっています。同じ「記録」でも目的が違うので、別々のサービスに分かれていると考えると腑に落ちます。
3 つの対比
| サービス | 答える問い | 記録する内容 | 典型的な使い道 |
|---|---|---|---|
| Amazon CloudWatch | 何が起きているか | メトリクス (数値) とログ | 性能監視、しきい値でのアラーム |
| AWS CloudTrail | 誰が何をしたか | アカウント内の API 呼び出しの履歴 | 監査、不正操作の追跡、証跡の保全 |
| AWS Config | どう変わったか | リソースの構成とその変更履歴 | 構成のコンプライアンス評価、変更の追跡 |
CloudTrail
CloudTrail はアカウント内で行われた操作を、マネジメントコンソールからでも CLI からでも SDK からでも、すべて API 呼び出しとして記録します。記録には「いつ」「どの IAM ユーザーまたはロールが」「どこの IP から」「どのサービスのどの操作を」「成功したか失敗したか」が残ります。誰かが本番のセキュリティグループを開けてしまったとき、犯人と時刻を特定できるのが CloudTrail です。証跡 (証跡ログ) を Amazon S3 バケットに長期保存する構成が基本になります。
AWS Config
AWS Config はリソースが「今どういう設定になっているか」と「過去どうだったか」を記録します。さらに Config ルールを使うと、たとえば「すべての S3 バケットは暗号化されていること」「セキュリティグループが 0.0.0.0/0 に対して SSH を開けていないこと」といった社内基準を定義し、準拠しているリソースと違反しているリソースを一覧できます。監査の場で「今、基準を満たしているか」を示すのは Config の役割です。
試験ではこう出る
問題文の言葉から機械的に振り分けられるようにしておくと速く解けます。
- 「誰が」「いつ実行したか」「API 呼び出しの履歴」「不正な操作を追跡」から CloudTrail
- 「構成の変更履歴」「設定が社内ポリシーに準拠しているか」「リソースのインベントリ」から AWS Config
- 「使用率」「パフォーマンス」「しきい値を超えたら通知」から CloudWatch
- 「監査レポートや第三者認証の証明書を入手したい」から AWS Artifact
最後の AWS Artifact も混ぜられます。Artifact は AWS 自身が取得した監査資料をダウンロードする場所であって、利用者のアカウントの記録を見るものではありません。ここも取り違えの定番です。
もう一つの頻出パターンは、「セキュリティグループがいつ誰にどう変更されたかを知りたい」という複合的な問い方です。誰が変更したかを問われれば CloudTrail、どう変わったか (変更前後の設定) を問われれば AWS Config が答えになります。両方書いてある場合は、問題文の主語が人か設定かで判断します。
まとめ
- CloudWatch は何が起きているか、CloudTrail は誰がやったか、Config はどう変わったか
- CloudTrail はコンソール・CLI・SDK のすべての操作を API 呼び出しとして記録する
- AWS Config はリソース構成の履歴を残し、ルールで準拠状況を評価できる
- AWS Artifact は AWS 側の監査資料の入手先であり、自分のアカウントの記録ではない
復習ミニクイズ
本番環境のセキュリティグループの設定が、いつ・どのように変更されてきたかという構成の変更履歴を確認したいと考えています。最も適切なサービスはどれですか。