Amazon Web Servicesにおける監視・監査の管理手法
3.2 監視・監査機能の全体像
監視・監査の標準的な処理パターンについて、図3-1に示す。
(1)ログ収集
ログ収集機能のほとんどは標準機能としてAWS管理コンソールから利用が可能である。例外として、ゲストOSのシステム、アプリケーションなどのログは、CloudWatch LogsエージェントをOSにインストールすることで、OS上のログが収集可能となる。
(2)保管
ログの保存先としては、S3ストレージへ保存するもの、CloudWatch Logsへ保存するもの、その両方を指定できるものに大分される。
(3)通知
CloudWatch Logsへ保管されたログは、Metrics Filterを定義しAlarm設定を行うことで、リアルタイムなログ監視を行うことができ、SNS経由でメール送信やアプリケーション連携が可能となっている。
あらかじめ用意されているAWSリソースの性能情報などの各種Metricsについても、Alarm設定を行うことで、同様のリアルタイム監視が可能となっている。
(4)分析
ログの長期的なトレンド分析やインシデント発生時のログの調査には、多様なログを総合的に検索し、性能情報やイベントのトレンドをグラフ化するなど可視化にたけているElastic search Serviceを用いるのが効果的である。AWSでは、CloudWatch Logsに保管されたログを自動的にElastic search Serviceへ取り込むための処理コードのテンプレートとしてLambda Functionが提供されているため、容易に簡易な分析環境を構築することが可能となる。
図3-1の監視・監査を実現するためのAWSサービスについて、表3-1にまとめる。
表3-1 AWSにおける監視・監査機能
# | 機能 | AWSサービス | 説明 |
---|---|---|---|
1 | ログ収集 | ELB | LB(ロードバランサ)のアクセスログを収集 |
2 | CloudFront | CloudFront(CDN)のアクセスログを収集 | |
3 | S3 | S3へのサーバーアクセスに関するログを収集 | |
4 | CloudTrail | 各種AWSサービスに対するAPIからのオペレーション記録を収集 | |
5 | VPC Flow Logs | VPCのネットワークインタフェースで発生するIPトラフィックに関する情報を収集 ※Firewallのログに相当 |
|
6 | CloudWatch Logs Agent | イベントログ、Apache/IISなどのアクセスログ、アプリケーションログなどゲストOS上でテキスト形式で出力されるログを収集 | |
7 | Lambda | Lambda Functionに関するエラー出力、標準出力などのログを収集 | |
8 | CloudWatch(Metrics) | AWSの各種リソースのパフォーマンスデータ/キャパシティデータ/サービスステータスなどのデータをMetricsとして収集 | |
9 | 保管 | S3 | ELB、CloudFront、S3、CloudTrailのログデータを保管 |
10 | CloudWatch Logs | CloudTrail、VPC Flow Logs、CloudWatch Logs Agent、Lambdaで発生する各種ログを保管 | |
11 | 検知 | SNS | CloudWatch Logsに収集したデータから閾値を超えたデータを検知し、メール通知や次のアクションの実行などを行う |
12 | 分析 | CloudWatch Logs | 簡易なログの確認、検索などで利用 |
13 | Elasticsearch Service | パフォーマンスデータの傾向分析や総合的な特定文字列の確認などで利用 |
3.3 ログ収集機能を実行する主なAWSサービス
3.3.1 CloudTrail
AWSでは、クラウドサービスのすべての操作、設定、構成定義は、API経由で行う。
CloudTrailは、このAPIを通した操作に関しての記録を取るもので、AWS上のすべてのクラウドサービスに関する監査証跡を取得することが可能となっている。
CloudTrailは、S3およびCloudWatch Logsへ監査証跡を保存することができ、保存されたデータを基にリアルタイム通知や分析に利用することができる。
3.3.2 VPC Flow Logs
VPC上のEC2インスタンス(仮想サーバー)やクラウドサービスは、セキュリティグループ(ネットワーク接続許可ポリシー)によってEnd-To-Endで通信をきめ細かく制御することができる。これは、すべての仮想サーバー、サービスに各々ファイアウォールが用意されているような処理モデルとみなすことができる。VPC Flow Logは、セキュリティグループに従い、クラウド上のサービスの通信が許可されたか、拒否されたかを記録するものである。
VPC Flow Logsは、CloudWatch Logsへ収集されるので、通信拒否の件数や、重要なサービスへのアクセス件数などをMetrics Filterで定義することで、不正アクセスの兆候や、重要データへの不用意なアクセスなどをリアルタイムに監視することができる。また、Elasticsearch Serviceを用いることで、長期トレンドの分析や、他のログとの関連分析など行うことが可能である。
3.3.3 CloudWatch Logs Agent
EC2は仮想サーバーを提供するIaaSである。仮想サーバー上で稼働するOS、ミドルウェア(DBMS、Web Serverなど)、アプリケーションなどが出力するログは通常OS上のDISKに保管されるが、AWSで用意されたCloudWatchLogs Agentを用いることで、CloudWatch Logsへの収集が可能となる。CloudWatch Logs Agentでは、イベントログ(Windows)、テキスト形式のログファイル、CSV(カンマ区切り)のログファイルなどを取り込むことができる。VPC FlowLogと同様に、リアルタイムなログ監視や、Elastic search Serviceを用いた分析が可能である。
3.3.4 Lambda
Lambda FunctionはCloudWatch Logsへ直接ログを出力することが可能である。VPC Flow Logと同様に、リアルタイムなログ監視や、Elastic search Serviceを用いた分析が可能である。
CloudWatch Logs APIを用いたアプリケーションも同様にCloudWatch Logsへの出力が可能である。
3.3.5 CloudWatch(Metrics)
AWS上のほとんどのサービスには、多様なパフォーマンス情報を取得するためのCloudWatch Metricsが標準で提供されている。特定のパフォーマンス項目が閾値を超えた場合に通知メールを送るなどは、Alarm機能を用いることで簡単に実現することができる。
ただし、CloudWatch Metricsは、クラウドサービス内部のパフォーマンスデータであるため、例えば、エンドユーザー視点に立ったWebアプリケーションのレスポンスタイムの測定や、アプリケーションの正常性の確認などを直接行うことはできない。これらを監視するためにはオンプレミス環境で用いられてきた方法でもある、監視サーバーからの外部からの監視を行う必要がある。
表3-2 通知の一例
# | 通知内容 | ログソース | 検知内容 |
---|---|---|---|
1 | セキュリティ設定の変更通知 | Cloud Trail | セキュリティグループのルール変更 インスタンス、サービスへのセキュリティグループの設定/解除 |
2 | データ持ち出し警戒 | Cloud Trail | スナップショットからのEBS作成 スナップショットへのアクセス権の設定 |
3 | 不正アクセスの兆候 | VPC Flow Log | Reject(通信拒否)回数の閾値超過 |
4 | 管理者ログインの監視 | Cloud Trail | Rootアカウントの認証の監視 |