Amazon Detectiveのマルチアカウント設定をしてみる

2020.07.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon Detective はセキュリティイベントの調査のためのサービスです。

Amazon GuardDuty、Amazon Macie、AWS Security Hub などのセキュリティサービスを利用して、 セキュリティイベントの調査を行い、結果を可視化してくれます。

※ Detective の使い方については Developers.IO 2020 CONNECT で投稿された、以下解説が分かりやすいです。 ぜひ御覧ください。

Detectiveは マルチアカウントサービス です。 GuardDutyや Securitu Hub のマルチアカウント設定を行った方であれば馴染みがあると思いますが、 マスターアカウントとメンバーアカウント を設定することでデータを集約、 マルチアカウントモニタリングの環境を作成できます。

今回は Detectiveのマルチアカウント設定 を実際にやってみます。

事前準備、推奨事項

Detectiveを設定する際の事前準備、推奨事項が下記にまとまっています。 事前に確認しましょう。

特にマルチアカウント構成を取る場合 Recommended alignment with GuardDuty and AWS Security Hub の項目は チェックしておきましょう。 GuardDuty, Security Hubで設定しているマスターアカウント/メンバーアカウントと同じ構成 にしていると連携がシームレスに働きます。

設定方法 概要

今回は CloudFormation(CFn) を利用して、設定します。 主な流れは以下の通り。

  1. マスターアカウントで招待(CFnテンプレートを展開)
  2. 各メンバーアカウントで招待を受領

1. マスターアカウントで招待(CFnテンプレートを展開)

CFnテンプレートを展開して Detectiveの有効化、招待を作成します。 テンプレートは以下のようになります。

AWSTemplateFormatVersion: '2010-09-09'
Description: "enable detective, and make member invitations"
Resources:
  Graph:
    Type: AWS::Detective::Graph
  Invitation:
    Type: AWS::Detective::MemberInvitation
    Properties:
      GraphArn: !Ref Graph
      MemberId: "XXXXXXXXXXXX"
      MemberEmailAddress: "sample@example.co.jp"
      Message: "Detective invitation"

以下 2種類のリソースを作成します。

  • Graphリソース
    • 分析基盤
    • Detectiveを有効化します
  • MemberInvitationリソース
    • メンバーアカウントの招待
    • MemberId に招待したいメンバーアカウントのAWSアカウントIDを記載します
    • MemberEmailAddress にはメンバーアカウントのルートユーザーのメールアドレスを記載します

以下、展開後のCFnリソース画面と Detective画面です。 Detective画面では、 Status = Invited となっているメンバーアカウントの情報が記載されています。 次の章でこの招待の受領作業を行います。

img

img

なお、メンバーの招待はコンソールからCSV一括で行ったり、AWS CLIを利用することもできます。 詳細は以下参照ください。

2. 各メンバーアカウントで招待を受領

招待送り先のメンバーアカウントにコンソールログインします。 [Detective] > [Account management] に招待が来ている旨、届いているはずです。 マスターアカウントのIDを確認した上で、 [Accept Invitation] を選択しましょう。

img

Status = Accepted(Enabled) となればOKです。

img

マスターアカウントからも Status = Accepted(Enabled) となっていること、確認できました。

img

また、この招待はメンバーアカウント ルートユーザーのメールアドレス先にも来ています。 以下のようなメールが届きます。

img

おわりに

マルチアカウントの Detective設定をしてみました。

インシデントの調査フェーズ、今まではCloudTrailログやVPC Flow Logsを Athenaなど使って(頑張って)分析していたところを Detective がサクッと調査してくれます。とても便利な機能なので、ぜひ有効化・活用していきましょう。

少しでもどなたかのお役に立てば幸いです。

参考

▼ Detective

▼ CloudFormation

▼ Developers.IO