恒例のAWSシリーズ。今回はConfigをご紹介いたします。
AWS Configとは
以前紹介したCloudwatchは例えばEC2インスタンスが正常にかどうしているかなどの、サーバ障害を検知するサービスですが、今回紹介するAWS ConfigはAWSの管理画面内の操作や変更を検出し、人的設定ミスの防止に役立てることができます。
監視可能なサービスは限られていますが、設定変更情報を検出しS3バケットに記録します。Amazon SNSというサービスを利用してアラートを出すことも可能です。
例えば、複数名でAWS管理画面にログインができる状況下で、変更してはならない設定を、誰かが変更してしまった場合にアラートをあげることが可能です。
対象
AWS Configが監視可能な項目をリソースと言います。
AWS Configのページに紹介されていますが、現時点でAWS Configがサポートしているリソースは以下の通りです。
Amazon EC2 | EC2 インスタンス |
---|---|
EC2 Network Interface | |
EC2 セキュリティグループ | |
EC2 Elastic IP (VPC のみ) | |
EC2 Dedicated Hosts | |
Amazon VPC | カスタマーゲートウェイ |
インターネットゲートウェイ | |
ネットワーク ACL | |
ルートテーブル | |
サブネット | |
VPC | |
VPN ゲートウェイ | |
VPN 接続 | |
Amazon EBS | 汎用 (SSD) ボリューム |
プロビジョンド IOPS (SSD) ボリューム | |
マグネティックボリューム | |
AWS CloudTrail | 追跡 |
AWS Identity and Access Management | IAM ユーザー |
IAM Group | |
IAM ロール | |
IAM 管理ポリシー (カスタマー管理型のみ) |
AWS Configの設定
では設定を進めていきましょう。
今回はまずAWS Configの設定を行い、実際に動作検証を取るところまで行いたいと思います。
AWS管理画面からAWS Configを選択しスタートさせると初期設定画面が表示されます。
東京リージョンを選択していても全て英語で表示されるため敷居が高いように感じますが、説明いたします。
Step 1
Resouce types to record
ここでは設定対象リソースを全てにするか、特定のリソースにするかを選択できます。後でも設定変更できるので、ここでは「All resources」を選択しました。
Amazon S3 bucket
AWS Configで設定変更等のログを格納するS3バケットを選択します。既存のバケットを選択しても良いですし、ここで作成することもできます。
今回はデフォルトのままで、「config-bucket-268982668222というバケットを作成することにしました。
Amazon SNS topic
前述の通りAmazon SNSというプッシュ通知のサービスがあるのですが、変更アラートを通知する場合にはこのAmazon SNSを使用する必要があります。後々アラート通知ができるようにトピックだけ作成しておきます。
AWS Config role
AWS Configが利用するロール設定です。AWS Configが使用するロールが監視対象のリソースに読み取り権限でアクセスできる必要があります。
今回、ここもデフォルトのものを設定しました。
Step 2
次にルールの設定に進みます。
既に用意されているルールが4つ表示されています。
この中の「eip-attached」は、EC2インスタンスにElastic IPが適用されているかを監視するルールですが、検証用としてわかりやすいのでこちらを利用することにしました。
Step 3
これで設定が完了しました。
動作検証
それでは設定が完了したので正常に動作するか確認したいと思います。
先ほど設定したルールではEC2にElastic IPが関連付けられていれば正常値、関連付けられていなければ異常となるはずです。
検証方法としてElastic IPを取得し、10分後EC2インスタンスに関連付けました。AWS Config管理画面内では以下のように表示されました。
無事変更された履歴が表示されました。
4:27:24 PMがElastic IPを取得しただけの状態。
4:37:24 PMがEC2インスタンスへElastic IPを関連付けた状態です。
Changesを見ると変更内容がわかります。
変更の履歴がうまく取れましたが、一定間隔でチェックするいわゆるCron的な動作で10分おきに監視しているので、監視タイミングによっては変更履歴が取れないこともわかりました。
次回は
次回はこのAWS Configで検知した変更をアラート通知する方法などをご紹介します。