Amazon EC2 Systems ManagerとAWS ConfigでAmazon Linuxの記録/追跡、自動チェックをしてみた
はじめに
Amazon EC2 Systems Managerは、EC2に関する様々なユースケースを支援するサービスです。 Systems Managerのインベントリ機能をAmazon Linuxで試してみました。
インベントリは、OS、アプリケーション、エージェント、ネットワークなどの情報を収集します。 インベントリとAWS Configを使って、カーネルアップデートの記録/追跡、ds_agentのインストール状況の自動チェックをしてみました。
AWS Configのセットアップ
AWS Configはとりあえず有効にしようをご覧ください。
SSMエージェントのインストール
Systems Managerを利用するには、幾つかの条件があります。事前に前提条件を確認しておきます。 Amazon LinuxにSSMエージェントをインストールします。
インベントリの設定
Amazon Linuxに任意のタグを付与しておきます。 今回は"Inventory:true"としました。
EC2コンソール > Manged Instances > Setup Inventoryでインベントリを設定します。 インベントリを取集するターゲットは、インスタンス個別またはタグで指定します。 "Inventory:true"のタグを対象としました。 その他はデフォルトとします。標準で30分おきにインベントリを収集します。
インベントリはステートマネージャに登録され、定期的に実行されます。
アプリケーション情報をEC2コンソールから確認
インベントリで収集されたデータをEC2コンソールから確認します。 Manged Instancesから対象のインスタンスを選び、Inventoryを選択します。
フィルターを使ってカーネルバージョンを確認します。 バージョン"4.4.41"であることがわかります。
AWS Configコンソールからも同様の内容を確認できます。 Resource inventory > SSM ManagedInstanceInventoryでLook upすると、マネージドインスタンスの一覧が表示されます。 インスタンスIDを選択し、Configタイムラインを閲覧します。
インベントリを収集したタイミングで、タイムラインが作成されます。 タイムライン(日時が表示された四角)を選択することで、収集された内容を確認できます。
aws-apitools-ec2、amazon-ssm-agentなどアプリケーション情報を確認できます。
アップデートの記録、追跡
カーネルのアップデートを行ったあとで、Configタイムラインを確認します。 インベントリの収集のタイミング(30分ごと)と同じタイミングで更新されました。
kernel、kernel-toolsのバージョンとInstalledTimeが更新された事がわかります。 Fromが変更前、Toが変更後です。 "4.4.41"から"4.4.44"にアップデートされた事がわかります。
Configタイムラインを確認することで、アップデートの追跡を行えます。
OS設定の自動チェック
AWS Config Rulesを使って、OS設定を自動的にチェック出来ます。 今回はルールec2-managedinstance-applications-requiredを使い、Deep Securityエージェントであるds_agentのインストール状況をチェックしました。 Deep Securityはアンチウイルス機能などを持つセキュリティ製品です。
AWS Configコンソールから、Rules > Add rule > ec2-managedinstance-applications-requiredを選択します。 チェック対象はマネージドインスタンスとしました。
applicationNames:ds_agent、platformType:Linuxを指定します。
ds_agentがインストールされていない状態では、"noncompliant resource(s)"と表示されます。
ds_angetをインストールすると、"Compliant"になります。
終わりに
Amazon EC2 Systems ManagerとAWS Configを使って、Amazon Linuxのインベントリの確認、カーネルバージョンの記録、アップデートの追跡を行いました。 OS内部の変更を記録しておく事で、監査、セキュリティ、構成チェックなどに役立てる事ができます。
Config Rulesを使うと、チェックを自動化する事ができます。 今回はセキュリティ製品であるDeep Security(ds_agent)がインストールされているかチェックしました。