LoginSignup
2
1

More than 5 years have passed since last update.

複数アカウントの複数リージョンでGuardDuty有効化(少量アカウント)

Posted at

背景

業務で扱っているAWSアカウントが複数あり、こいつらをポチポチ設定せずに一括で全リージョンでGuardDutyを有効化すべく、下記ブログを参考に検証用の10アカウントくらいでCloudFormationのStackSetsで有効化してみました。本記事では追加で必要になった手順をメモ。

[新機能] CloudFormation StackSetsを試してみた
一発でGuardDutyを全リージョン有効化して通知設定するテンプレート作った

手順

① 管理用ロール(AdministrationRole)作成
② 実行用ロール(StackSetsExecutionRole)作成
③ GuardDuty有効化テンプレート用意
④ StackSets作成

① 管理用ロール(AdministrationRole)作成

管理用アカウントにAdministrationRoleを作成します。
[新機能] CloudFormation StackSetsを試してみた に記載の通り実行。

② 実行用ロール(StackSetsExecutionRole)作成

複数のアカウントに実行用のロールを作成します。
[新機能] CloudFormation StackSetsを試してみた に記載の通り実行できますが、10アカウント分の管理コンソールでこれをやるのは辛い。
CLIを用いて、CloudFormationでAWSCloudFormationStackSetExecutionRoleを作成します。

$ aws cloudformation create-stack --profile XXXXX --stack-name Create-AWSCloudFormationStackSetExecutionRole --template-body file://AWSCloudFormationStackSetExecutionRole.yml --parameters ParameterKey=AdministratorAccountId,ParameterValue=XXXXXXXXXXXX --capabilities CAPABILITY_NAMED_IAM

ParameterKey=AdministratorAccountId,ParameterValue=XXXXXXXXXXXXで管理用アカウントのIDを指定します。なお、実行ロールのテンプレートはAWSドキュメントの前提条件: スタックセットオペレーションのアクセス権限の付与からダウンロードしたものを使用したので、ParameterKey=AdministratorAccountIdとなっています。参考ブログのテンプレートを使用する場合には ParameterKey=MasterAccountIdにする必要があります。
また、私のハマりポイントでしたが、IAMを作成する時には--capabilities CAPABILITY_NAMED_IAMがないとエラーになります。作成成功すると下記結果が返ってきます。
WS000004.JPG

③ GuardDuty有効化テンプレート用意

snsの通知まで設定する必要がなかった、というかslack通知するlambdaを後で作成しようと思っていたので、シンプルにGuardDuty有効化のテンプレートだけ用意しました。デザイナーからボンとアイコンをおいて作成したので、メタデータとか入っていますが、いらなそうです。そのままにしていますが。。。

guardduty_enable_yaml.template
AWSTemplateFormatVersion: 2010-09-09
Metadata:
  'AWS::CloudFormation::Designer':
    ca7cdb3f-c4ca-4b22-b78a-ff95d239eb92:
      size:
        width: 60
        height: 60
      position:
        x: 216
        'y': 110
      z: 0
Resources:
  GDDZ0EQ:
    Type: 'AWS::GuardDuty::Detector'
    Properties:
      Enable: true
    Metadata:
      'AWS::CloudFormation::Designer':
        id: ca7cdb3f-c4ca-4b22-b78a-ff95d239eb92

④ StackSets作成

[新機能] CloudFormation StackSetsを試してみた に記載の通り実行するのですが、複数アカウントなので、デプロイオプションの設定で「スタックがデプロイされている有効なアカウントのカンマ区切り値(CSV)のファイルをアップロード」を選択します。
スタックはまだデプロイされてないのですが、実行ロールさえ作成されてあれば問題なしでした。
WS000005.JPG
CREATE_COMPLETEが出てくるまで時間がかかりますが、気長に待ちます。

以上。

2
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1