
コンプライアンスチェックのカスタムルールを作って評価させてみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、岩城です。
Dome9では、AWS環境のコンプライアンスチェックを行うPosture Managementという機能があります。
業界標準やベストプラクティスに関連するマネジメントルールが多数用意されており、すぐにAWS環境をチェックすることが可能です。

また、以下のサイトからも確認できます。
AWSに関するルールは現時点で251ありました。カテゴリに分けると次のような感じです。
| 項目 | ルール数 |
|---|---|
| Cloud Assets Management | 5 |
| Encryption and Key Management | 50 |
| Domain Name System (DNS) Management | 5 |
| Backup and Disaster Recovery | 4 |
| Identity and Access Management | 74 |
| Logging | 35 |
| Monitoring | 12 |
| Network Security | 51 |
| Operational | 12 |
| Vulnerability and Threat Management | 3 |
業務要件等を踏まえたチェックを考えた場合、マネージドに提供されているものだけでは満たせないケースがあります。
Dome9はそのようなケースへ対応するため、自分でルールを簡単に定義できますし、検証も楽なので紹介したいと思います。
やってみた
Dome9はルールの集合としてルールセット単位で管理します。マネジメントルールセットのあるルールだけを直接変更することはできません。
そこで、ルールセットごとCloneしてカスタマイズします。

ルールセット名や説明はデフォルトのままで構いません。

クローンされたルールセットが表示されるのでNew Ruleからルールを追加します。

GSLと書かれている入力フォームをクリックします。

GSLはDome9独自言語で宣言的にリスクの有無を評価する式を記述できます。独自言語ではありますが、比較的分かりやすい方だと私は感じます。
それでも独自言語ということで気が乗らないかも知れません。そんな方にはBuilderを使ってGUIベースで評価式を作成することをおすすめします。
今回は例として分かりやすくすべてのIAMユーザーでMFAが有効になっていることを評価する式を作成してみます。

Actionsでshould haveを選択します。

PropertiesでmfaActiveを選択します。

Operatorsで=およびtrueを選択します。


すべてのIAMユーザーでMFAが有効になっていることを評価する式が完成しました。
先程から見えていましたがテスト機能も備えており、ルールを作成する前にテスト可能です。
今回テスト評価した環境にはIAMユーザーが7つあるため、7つあるうち6つでMFAが有効になっていないので不合格になったことが分かります。

先程の画面では不合格になったIAMユーザーが6つあることしか分かりませんが、Expandを押すとIAMユーザー名といったリソースを特定することも可能です。

テストの結果問題なかったので、ルールを作成します。作成の際、ルール名、説明、Severityを入力して完了です。

作成完了するとルールセット内のルールとして登録されます。

おわりに
Dome9が用意するマネジメントルールではカバーできない場合、カスタムルールを作成することで解決するかも知れません。
GSLという独自言語で辛いと感じるかも知れませんが、Builderツールを使えばGUIで簡単にルールを作成できます。
是非トライしてみてください。
本エントリがどなたかのお役に立てれば幸いです。









