AWS Config Rulesのマネージドルールを試してみた。 #reinvent

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

2015/10/20現在、AWS Config Rulesはプレビューです。
本記事の内容は正式リリース時に変更される可能性があります。

Config芸人の森永です。

AWS Config Rulesのプレビュー申請が通るのをひたすら待っていたのですが、なかなか通らずヤキモキしておりました。
が!弊社メンバーが何人か通ったようなのでIAM発行してもらいました。

AWS Config Rulesって?という方は先にこちらを御覧ください。

AWS Config Rulesにアクセス

喜び勇んでログインしてAWS Configの管理画面でVirginiaリージョンにアクセスしました。
が、こんな画面が出てAWS Config Rulesを触ることが出来ません。。。
(Configの画面から行けると思ってプレビュー通ってないと勘違いした私がいます)

AWS_Config_Console

将来的にはAWS Configに統合されると思いますが、プレビュー中は以下のURLからアクセスしないといけないようです。

https://console.aws.amazon.com/configrules/

プレビューが通っていれば、左ペインが現れます。
[Resource]は従来のAWS Config検索画面、Settingsは従来のAWS Config設定画面になります。

AWS_Config_Console00

早速ルールを設定してみる

AWS Config Rulesには2種類のルールがあります。

AWSが提供しているマネージドルールと、自分で作成するカスタムルールです。
今回はマネージドルールを試してみます。

[Rules]->[Add Rule]をクリックし、ルール追加画面に行きます。

AWS_Config_Console01

[Add custom rule]を押したい欲望を抑えつつ、マネージドルールを確認します。
今回はcloudtrail-enabledを試してみます。

AWS_Config_Console02

特に設定するところはありませんが、オプションでパラメータを設定することが可能です。
s3BucketNameはCloudTrailのログを保管するS3バケット名を、snsTopicArnはCloudTrailで使用するSNSトピックのARNを、cloudWatchLogsLogGroupArnはCloudTrailのログを送るCloudWatchLogsのロググループのARNを指定します。

パラメータを指定しなければ、どんな設定でもCloudTrailが有効化されていれば検査結果がOKとなるのですが、パラメータを指定した場合は、指定された値でないと有効化されていたとしてもNGとなってしまいます。

AWS_Config_Console03

設定が完了したら[Save]を押すとルールの設定は完了です。
設定直後は検査が完了していないので「No results available」となっていますので、暫く待ちます。

AWS_Config_Console09

CloudTrailを有効化していれば数分で「Compliant」となります。
この状態が全リソースがルールを守っている状態です。

AWS_Config_Console08

さて、試しにCloudTrailを無効化してみましょう。

CloudTrail_Management_Console

CloudTrailを無効にしてもすぐに検査は行われません。
これはcloudtrail-enabledの検査時期が定期検査になっているからです。
初期設定では24時間毎に検査をする設定になっています。

最短だと1時間単位まで間隔を狭めることはできますが、今回は面倒なので、削除してから再度作りなおすことにします。 [Edit rule]の鉛筆マークをクリックし、編集画面に行き、右上にあるゴミ箱マークをクリックするとルールの削除が可能です。

AWS_Config_Console04

さて、同じ手順で再度作り直し、暫く待ってみるとどうでしょう。 CloudTrailを無効化したのでステータスが「1 noncompliant resource(s)」となりました。 この状態がルールに違反するリソースがある状態です。

AWS_Config_Console05

ここで[Rule Name]をクリックするとルールに従っていないリソースの詳細を見ることが出来ます。
最下部の[Resources noncompliant with this rule]にCloudTrailが設定されていないアカウントが出ていることが分かります。

AWS_Config_Console06

[Config timeline]にあるアイコンをクリックすると違反しているリソースのAWS Config画面に遷移できるのですが、定期実行の場合は特定のリソースを対象としないのでこれが使えません。残念。

最後に

ひとまず、マネージドのルールを触ってみました。
設定する項目は殆どなく、非常に簡単に設定ができました。

次回はLambdaを使ったカスタムルールを作成してみようと思います!
おらワクワクしてきたぞ!!