コンプライアンスチェックのカスタムルールを作って評価させてみた

2021.07.07

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

こんにちは、岩城です。

Dome9では、AWS環境のコンプライアンスチェックを行うPosture Managementという機能があります。

業界標準やベストプラクティスに関連するマネジメントルールが多数用意されており、すぐにAWS環境をチェックすることが可能です。

また、以下のサイトからも確認できます。

https://gsl.dome9.com/

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で簡単にルールを作成できます。

是非トライしてみてください。

本エントリがどなたかのお役に立てれば幸いです。

おまけ