Nedia What's up!

ネディアのエンジニアによるIT技術やサービスの紹介・検証などをお届け!

AWS Configでコンプライアンス確保(前編)


恒例の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」を選択しました。

config01

Amazon S3 bucket

AWS Configで設定変更等のログを格納するS3バケットを選択します。既存のバケットを選択しても良いですし、ここで作成することもできます。

今回はデフォルトのままで、「config-bucket-268982668222というバケットを作成することにしました。

config02

Amazon SNS topic

前述の通りAmazon SNSというプッシュ通知のサービスがあるのですが、変更アラートを通知する場合にはこのAmazon SNSを使用する必要があります。後々アラート通知ができるようにトピックだけ作成しておきます。

config03

AWS Config role

AWS Configが利用するロール設定です。AWS Configが使用するロールが監視対象のリソースに読み取り権限でアクセスできる必要があります。

今回、ここもデフォルトのものを設定しました。

config04

Step 2

次にルールの設定に進みます。

既に用意されているルールが4つ表示されています。

この中の「eip-attached」は、EC2インスタンスにElastic IPが適用されているかを監視するルールですが、検証用としてわかりやすいのでこちらを利用することにしました。

config05

Step 3

これで設定が完了しました。

config06

動作検証

それでは設定が完了したので正常に動作するか確認したいと思います。

先ほど設定したルールではEC2にElastic IPが関連付けられていれば正常値、関連付けられていなければ異常となるはずです。

検証方法としてElastic IPを取得し、10分後EC2インスタンスに関連付けました。AWS Config管理画面内では以下のように表示されました。

config07

無事変更された履歴が表示されました。

4:27:24 PMがElastic IPを取得しただけの状態。
4:37:24 PMがEC2インスタンスへElastic IPを関連付けた状態です。

Changesを見ると変更内容がわかります。

config08

変更の履歴がうまく取れましたが、一定間隔でチェックするいわゆるCron的な動作で10分おきに監視しているので、監視タイミングによっては変更履歴が取れないこともわかりました。

次回は

次回はこのAWS Configで検知した変更をアラート通知する方法などをご紹介します。