こんにちは、ひろかずです。
昨年のre:inventで発表されたGuardDutyを使ってみている人も多いかと思います。
とりあえず動かすにしても、全リージョンをポリポチして回るのはちょっと嫌ですよね。
今回は、CloudformationのStackSetsを使って一気に展開する手法について、一筆書きます。
参考ドキュメント
Amazon Web Services ブログ
AWS公式ドキュメント
-
AWS CloudFormation ユーザーガイド | AWS CloudFormation StackSets の操作 | 前提条件
-
AWS CloudFormation User Guide | Template Reference | AWS::GuardDuty::Detector
工程
- StackSetsで使用するIAMロールを作成
- GuardDutyを有効化するCloudFormationテンプレートの作成
- StackSetsを使ったGuardDutyの全リージョン展開
1. StackSetsで使用するIAMロールを作成
AWS CloudFormation ユーザーガイド | AWS CloudFormation StackSets の操作 | 前提条件からIAMロールを作成するCloudFormationテンプレートをダウンロードします。
テンプレートは2種類あります。
- 管理用IAMロール作成用
- 実行用IAMロール作成用
yumlファイルの中を見ると分かりますが、管理用IAMロールは、実行用IAMロールをAssumeしています。
実行用IAMロールは、信頼するAWSアカウントIDの入力を求める記述とCloudFormationで実行する権限(デフォルトでAdministrator Accessポリシー)が設定されています。
CloudFormationでそれぞれのテンプレートを実行します。
[新しいスタック]を選択
ダウンロードしたテンプレートを選択して[次へ]
スタック名を付けて[次へ]
- 実行用IAMロールの場合は、AWSアカウントIDも入力します。
タグ名を付けて[次へ]
確認画面で注意書きを確認して[作成]
できたようです。
先に記載したとおり、実行用IAMロールは、CloudFormationで実行する権限(デフォルトでAdministrator Accessポリシー)が設定されています。
必要に応じて、権限を絞ってください。
なお、本稿の実行には、CloudFormationとSNS,GuardDutyに対するアクセス権限が必要になります。
2. GuardDutyを有効化するCloudFormationテンプレートの作成
テンプレートのデザイン画面でGuardDutyのDetectorを呼び出し、Propatiesに"Enable": true
と追記して保存します。
3. StackSetsを使ったGuardDutyの全リージョン展開
[スタックセットの作成]を選択して、作成したCloudFormationテンプレートを選択して[次へ]
スタックセット名を作成して[次へ]
スタックをデプロイするAWSアカウントIDとリージョンを選択します。
今回は全リージョンを選択ですね。
- 2018/1/5現在、eu-west-3(パリリージョン)はエラーになります。
デプロイオプションはそのままで[次へ]
スタックセットのタグを設定して[次へ]
確認画面で内容を確認して[作成]
スタックのステータスが全てCURRENTになりましたね。
普段見ないサンパウロリージョンにも展開されていますね。
簡単に全リージョン展開ができました。
経過が楽しみですね。
今日はここまでです。
お疲れ様でした。