プログラマでありたい

おっさんになっても、プログラマでありつづけたい

AWS Organizations × CloudFormation StackSetsの組み合わせが素晴らしい

 昨日のブログエントリーで、AWS Organizations × CloudFormation StackSetsが素晴らしいという話をして、少しだけ紹介しました。今日も、もう少しだけ詳しく説明します。まずは、CloudFormation StackSetsから
※本エントリーの内容は、『AWSの薄い本 アカウントセキュリティのベーシック』で手順を含めて解説しています。興味がある方はBOOTHからダウンロードできる無料サンプルをみてください

f:id:dkfj:20200323084651j:plain

CloudFormation StackSetsとは?

 CloudFormation StackSets(CFn StackSets)は、CloudFormationのテンプレートを元に、任意のAWSアカウント・リージョンに対してスタックの作成・実行ができる機能です。ベーシックなCloudFormationは、アカウントにログインしてリージョンを選んで一つずつ実行する必要があります。同じ設定を複数のアカウントに流し込もうとすると、CLI等を駆使してもそれなりに面倒くさいのも事実です。CFn StackSetsを使うと、その辺りをサクッと管理できるようになります。もちろん、対象アカウントに対して、IAM Role等の準備が必要にはなります。

f:id:dkfj:20200325091547p:plain

図では、Organizationsのマスターアカウント(親アカウント)から実行していますが、権限設定をすればどのアカウントからでも実行可能です。

AWS Organizations × CloudFormation StackSetsの素晴らしさ

 単体でも魅力的なCFn StackSetsですが、Organizationsとの連携機能を使うと、その真価を発揮します。
なんとOrganizationsからアカウントの作成・削除時や、OUの移動時にStackSetsを自動で実行させることができるようになりました。
 つまりアカウント作成時に共通の初期設定をしたり、本番環境用のOUに参加した時により厳しいセキュリティの制約をつけたりするといったような事が、自動でできるようになったのです。アカウントセキュリティ本で繰り返し説明していますが、セキュリティ設定というのはどこか1箇所抜け漏れがあると、そこから侵入される可能性がでてきます。そして人間は(特に私は)、繰り返しの作業を正確にするには向いていません。そういった部分を補完する素晴らしい機能だと思います。

f:id:dkfj:20200324063218p:plain

CloudFormation StackSetsの初期テンプレート

 CFn StackSetsには、サンプルテンプレートが用意されています。そのリストをみてみましょう。

- CloudTrailの有効化
- Configの有効化
- GuardDutyの有効化
- 設定ルール root-account-mfa-enabledの追加
- 設定ルール cloudtrail-enabledの追加
- 設定ルール eip-attachedの追加
- 設定ルール encrypted-volumesの追加

 サンプルといえども結構実用的なものですよね。そして、CFn StackSetsの方向性が見えるものになっています。テンプレートの実体はCloudFormationなので、もちろん自作することが可能です。
 個人的な考えとしては、CloudTrailやConfigなど設定をするテンプレートを作って、それをアカウントID等を引数にわたして一括で設定するチェーンのテンプレートなど、そういった単位でまとめて使えばよいかなと考えています。それを初期設定・ルール設定など幾つかのまとまりで管理すると便利でしょう。

まとめ

AWS Organizations × CloudFormation StackSetsの組み合わせが素晴らしいというタイトルそのままのブログエントリーでした。私の興奮が伝わりましたでしょうか?AWSのアカウントセキュリティ本では、100ページに渡って、なぜセキュリティはサービスを使って守らないといけないのか、そしてどのサービスを使えばよいのかを解説しています。興味をもったら是非BOOTHで見てみてください。サンプル版の無料ダウンロードができます。

takuros.booth.pm

AWSのアカウントセキュリティ本を書いて気がついた、これからのセキュリティ対策
AWSのアカウントセキュリティ本を書きました #技術書典