最近、AWS上にテスト環境を作るのにあたってCloudFormationテンプレートで環境を作成することが増えてきました。テスト環境を自分だけで作るのは、まあまあリスクは抑えられるのですが、テンプレートをもっと広い範囲で使いたいときに、安全装置としての解決策の紹介です。
設定ミスってなんだろ?
「設定ミス」は、自分では意図しない設定、ってことですが、その設定で構築している環境に致命的なリスクがあることがあります。そもそも、そうならないように、テンプレートを使って環境を作成するわけですが、テンプレート自体に致命的なリスクが内包されている場合には、それがコピーされて増幅してしまう恐れがあります。なので、テンプレート自体に設定ミスがないかの確認は重要事項となります。で、そもそも、設定ミスとは、例えばS3の場合....
・作成時に誤って公開状態にしてしまった
・暗号化せすに公開してしまった
・アクセスログを有効にしていない
などなど。
このような意図しない項目がセットされてしまうことを事前に防ぐことを目的としています。特にコピペしてテンプレートを作る場合など、事前に内包されるリスクを確認したい、などというときに重宝すると思います。
Conformity を設定する
Conformity のCloudFormiation Template scanner を外部APIから使うことで確認することが可能です。使えるまでの手順はざっくり以下になります。
・ユーザー登録:まずは14日のトライアルで試用可能
・AWSアカウントの紐づけ
・API Keyを作成:
- 右上のユーザ名をクリックします
- 左メニューから"API Keys"を選択
- "New API Key"を選択すると、新しいAPI Keyを振り出すことができます。
ここで作成したKeyをメモ帳か何かにコピーして保存しておいてください。(保存を忘れたらまた新しいキーを作成する必要があります)
VSCode のAdd-onを追加する
できれば、コードに手を加えてその場で確認したいもの。VSCodeの
- VSCode を開きExtensions を選択します。
- "Cloud Conformity Template Scanner Extension" を選択します。
- Install をクリックします。
インストールができたら、Conformityの設定を行います。
- Extentions から"Cloud Conformity Template Scanner Extension" を選択します。
- 設定アイコンをクリックします
- "Extension Setting"を選びます。
APIkeyの"Edit in settings.jason"を選択すると、設定のためのJasonファイルが開きます。
ここで、Conformity で作成したAPI Keyを貼り付けます。
これで設定は完了です。
CloudFormationテンプレートをチェックしてみる
サンプルとして、AWSから公開されているものなどで試すといいと思います。
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-s3.html
チェックしたいテンプレートのコードを開いた状態で
- 上メニューの"View"- "Command Palette..."を開きます
- "Cloud Conformity Scan Current Open Template"を選択して実行します。
- 少し経つと実行結果が表示されます。
- 実行結果が以下のように表示されれば成功です。
Summary では、リスクの重要度ごとに表示されており、Detections を見ると実際に何がリスクとして検知されたかを確認することが可能です。
特に確認項目が多い場合には、重要度の高いものから確認して、リスクを軽減していくのがよいと思います。
なお、S3以外の対応サービスリソースは以下になります。