こんにちは。クラウド事業部の菅家です。
AWS Configについて、カスタムルールを触ってみたので、感想含め学んだところを書いていきます。
カスタムルールとは
まずAWS Configには設定できるルールとして大きくマネージドルールとカスタムルールがあります。
マネージドルールはAWS側で定義済みのカスタマイズ可能なルールです。
対してカスタムルールは文字通り、自分で1から作成するルールとなります。<
カスタムルールの作成方法
以下、AWS Configより「ルールを追加」を押した先の画面となります。
右側2つ、
- カスタム Lambda ルールを作成
- Guard を使用してカスタムルールを作成
この2つがカスタムルールとなります。
カスタム Lambda ルールを作成
カスタム Lambda ルールとは、作成したルール(どの対象をいつトリガーするのか)の評価をLambdaにて行う形式となります。
流れとしては、以下になります。
- 作成したカスタムルールがイベントを発行。
- イベント発行時にLambdaによって作成された評価を呼び出し、関数内でリソースを評価する。
Guard を使用してカスタムルールを作成
カスタムLambdaルールより後に出たもののようです。
ルールの評価にAWS CloudFormation Guardを使用しているところが、先のカスタムLambdaルールと異なる点です。
メリットとしてはLambdaでのコーディングであったり、管理の手間がなくなり、定義が楽になったところがあるようです。
CloudFormation Guardを使用してカスタムルールを作成してみる
以下、公式を参考に作ってみます。
1. ルールを追加
AWS Configの「ルールを追加」を押した以下の画面で「Guard を使用してカスタムルールを作成」を選択して次に進みます。
2. 設定画面が出ることを確認
以下、ルールの設定画面が出てきます。
3. 「詳細」の記載
「詳細」にてルール名、説明等をまず記載します。
4. ルールの内容
「ルールの内容」、ここにGuardカスタムポリシーを入力していきます。
公式からそのまま流用。
Guardカスタムポリシーは.guardというファイル形式で、独自の構文が使われているようです。
余談ですが、個人的には見た目、Jenkinsのジョブ定義をgroovyで書いているものと感覚としては近いです。
5. その後の設定
その他については、マネージドルールと同様、「評価モード」にて評価対象の範囲とリソースが評価されるタイミングを、「パラメータ」にてタグなどの属性チェックを記載します。 最後に作成ボタンを押して完了となります。
最後に
かなり食わず嫌いしてまして、カスタムルールって作るの難しいのかなと思ったのですが、今回の体験で設定自体は簡単で後はGuardの書き方を覚えると良いということがわかりました。
書き方についてはまた別途学習してみようと思います。
また、今回ちらっとLambdaの方も試してみたのですが、Lambdaにて先に関数を作ってからルールを作る際に紐づけとなっていました。
そもそもLambdaを作るという作業が発生する他、評価とルールの画面が別々となってしまうため、ルールが増えてくるとなかなか管理が大変だと感じた次第です。
反面、Guardを使用したカスタムルールは、カスタムルールの記載がAWS Config側の設定画面にあり、上の一画面で完結しているのですごくわかりやすいと感じました。
AWS CLIからも作成できるようなので、環境ごとに画面を触って作成という手間もなさそうです。
ナイス手軽!!