「AWS Black Belt Online Seminar – AWS CloudTrail & AWS Config」レポート

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Config芸人森永です。

2016年8月31日(水)のAWS Black Belt Online Seminarを受講したので、レポートします。

今回はAWS CloudTrailAWS Configに関するセミナーで、講師はアマゾンウェブサービスジャパンの酒徳さんでした。

CloudTrailとAWS Configと聞いては受講せざるを得ません。

水曜日に開催されるWebinarはAWSのサービスについて、火曜日はソリューションなどについて行っているようです。
AWS オンラインセミナースケジュール


AWSクラウドの運用

オンプレと同じ部分とクラウドならではの部分が存在する
今回紹介するCloudTrailはクラウドならではの部分

クラウドのリソースは速く、頻繁に変更される
なるべくリアルタイムに検知する必要がある

CloudTrail

APIの管理なくしてクラウド運用は語れない

どんなサービス?

クラウドサービスは基本的にどこからでもアクセスできる(勿論IP制限なども可能)
ユーザのアクティビティ(API操作)をロギングし貯めるのがCloudTrail
ログインの失敗などAPIに関わらない部分も一部記録する

ログデータはS3に保存される
デフォルトでサーバサイド暗号化される
自分たちの鍵を使って暗号化もKMSを使用することで可能

CloudTrail自体の料金は無料
S3やSNSを使用した場合は料金が必要
サポート問い合わせの場合、CloudTrailのログを提供すると解決が早い

AWSではどんな環境でもCloudTrailを有効化することを推奨している

CloudTrailでルックアップ機能がある
直近のアクセスログを確認可能

単純なユーザアクティビティのログとしてだけではなく、監査の材料として利用できる
Digest File機能があり、ログファイルの整合性が確認できる

  • ログファイルの編集、削除が行われていないか
  • Digest Fileの編集、削除が行われていないか

Digest Fileの中身はハッシュ値で、それをつきあわせて整合性をチェックしている
CLIからチェックが可能
有効化・無効化可能

複数のアカウントからひとつのS3にログを収集可能
アカウントAにアカウントB、アカウントCのログを集約のようなことが出来る

CloudTrailは全てのリージョンで有効化されることが推奨
ALL-Regionで有効化する設定がある
こちらであれば、リージョンが新規追加された際(先日のムンバイなど)に自動登録してくれる

CloudTrailのJSONファイルをどう使う?

・短期的にどう使うか
ログイン失敗が複数回続いている場合アラートする
CloudTrailからCloudWatch Logsに連携し、Metric Filterでアラームの作成を行う
頻度によってアラームを作成することも可能
CloudTrailの管理画面に推奨されるアラームを作成するCloudFormationのテンプレートがある

可視化、エスカレーション制御などの機能はCloudTrailでは提供していないので、サードパーティツールと連携する

・中期的にどう使うか
APIのルックアップ機能で直近7日間の情報は見れる
ルックアップ機能には制限事項あり

  • S3に保存されたログの一部情報しか見れない
  • 過去7日間しか見れない
  • 検索条件が少ない

AWS CLIを使用してルックアップが可能

・長期的にどう使うか
CloudWatch LogsとElasticsearch Serviceを連携し、kibanaで可視化することが出来る
数クリックで連携可能

参考:【運用】CloudTrailで取得した監査ログをElasticSearch Serviceで活用する【簡単設定】

可視化することで、API呼び出しがやけに多い部分など確認し正常性を確かめることが出来る

splunkやsumologicなどサードパーティツールでも可視化可能
AWS Partner SA ブログ: [OpsJAWS] AWS運用管理コミュニティ メインページ

まとめ

CloudTrailはユーザのアクティビティを記録
すべての環境・リージョンで有効化することを推奨
短期的にはアラート、中期的にはルックアップ、長期的には可視化に使用

AWS Config

CloudTrailはAPI記録なので、一時期に大量のAPI呼び出しがあるとそこから変更だけを確認することは難しい
AWS Configは、AWSリソースの変更部分だけを記録することに特化したサービス

どのような変更があったのか、どのリソースとどのリソースに関係性があるかなど確認できる

全てのAWSサービスに対応しているわけではない

ログはS3バケットに貯められる
大きく6時間ごとのヒストリー(どんな変更があったか)と1時間ごとのスナップショット(その時間断面での状態)を取得する

リレーションシップをAWS Configは持っている
セキュリティグループを変更した場合は、どのインスタンスに影響がでるかがすぐ分かる

インベントリでどんなリソースが今存在しているか分かる
それぞれのリソースがどんな設定になっているか、どのように変更されてきたかを確認可能

リソースベースでロギングしているので、削除されたリソースについても確認することが可能
EC2の画面では一定時間しか確認できないがAWS Configなら出来る

AWS Config Rulesというサービスがある
現在の構成が適切な設定になっているかを評価するサービス

用意されているマネージドルールと自分で作成するカスタムルールが存在する
変更時にルールを評価するか、定期的にルールを評価するか選択可能

カスタムルールでは裏でLambdaが動く
自分でLambdaファンクションを作成し、そちらのARNをAWS Config Rulesに渡す
要望の多いルールはGitHubにAWSが作成したルールを公開している

他のアカウントのカスタムルール用LambdaファンクションをAWS Config Rulesから呼び出すことが可能
管理者用アカウントに作成したLambdaファンクションを利用者アカウントで使用のような使い方が可能

CloudTrailのルックアップ機能からAWS Configへ連携がある
API呼び出しによってどのような変更がなされたかすぐに追うことが出来る

色々なサードパーティのツールがでている
構成図を自動でつくるようなものもある

まとめ

AWS Configは現在の構成や変更履歴を確認できる
AWS Config Rulesで適切な設定かどうかを確認可能
サードパーティツールを活用しましょう

QA

Q. CloudTrailで吐き出されないサービスは?
A. CloudWatchのアラームなど一部ある

Q. APIルックアップと同じようなサードパーティツールはあるか
A. JSONパースして表示しているだけなので、基本的に可能

Q. AWS Configの料金は?
A. AWS ConfigとAWS Config Rulesについてそれぞれ課金あり

来月のWebinar予定

  • 9/14 ECS
  • 9/20 RDBのAWS移行
  • 9/21 IAM
  • 9/28 KMS

最後に

AWSを使う上で非常に重要なサービスなんですが、地味すぎてあまり知られていないかと思います。
セミナー中に何度も「CloudTrailは全環境・全リージョンで有効化することが推奨」とされていたように、少なくともCloudTrailは必ず設定するようにしましょう。
個人的にはAWS Configも有効化することを推奨します。CloudTrailだけだと変更を追うのはかなりきついので…

今回の記事、CloudTrailとAWS Configのどちらのアイキャッチにしようか死ぬほど迷ったのは内緒です。

あわせて読みたい