fu3ak1's tech days

何事もシンプルに。主にAWS関連の記事を書いています

DetectiveがOrganizationsに対応したのでマルチアカウント設定してみる

こんにちは、久しぶりに個人ブログを更新します。 最近は会社のブログによく書いております。

私も普段良く触るAWS Organizationsですが、すてきなアップデートが出ていました。

aws.amazon.com

Amazon Detectiveはアップデート前はOrganizationsに対応しておらず、複数アカウントの情報を集約するには1アカウントずつ招待する必要がありました。このアップデートで組織内のアカウントの情報を一気に集められるようになりました。

他のセキュリティサービス(GuardDutyやSecurity Hubなど)は、基本的にOrganizationsに対応していたので、ついにキタ!という感じですね。

Amazon Detectiveとは?

改めて復習です。

Detectiveは、VPC Flow Logs、CloudTrail、GuardDuty などの他のAWSサービスの情報をインプットに、潜在的なセキュリティ問題や不信なアクティビティを分析、調査できるサービスです。

たとえばGuardDutyの検出結果にはDetectiveへのリンクが用意されており、検出したリソースやIPアドレスをベースに、発生した時刻やリソースでどういうことが発生していたか確認できるようになっています。

f:id:fu3ak1:20220104104418p:plain

Organizationsを使用したマルチアカウント設定

やっていきます。手順の流れは以下のとおりです。

  1. メンバーアカウントへ委任
  2. メンバーアカウントのDetective有効化、組織内アカウントの自動有効化
  3. (Option) 組織ベースの状況確認

メンバーアカウントへ委任

マネジメントアカウントへログインし、Detectiveの画面へ遷移します。

左側のメニューから全般を選択し、委任するアカウントを指定します。
(今回はAuditというアカウントに設定します。)

f:id:fu3ak1:20211222153344p:plain

委任されたアカウントへログインし、Detectiveのアカウント管理画面へ遷移すると、次のようにOrganizations配下のアカウント一覧が表示されています。

f:id:fu3ak1:20211228104953p:plain

委任設定はこれで完了です。

メンバーアカウントのDetective有効化

まだメンバーアカウントのDetectiveが無効状態で、集約もされていません。1アカウントを指定してメンバーおよび有効にしてみます。

なお、メンバーアカウントのDetectiveを有効にするには、GuardDutyをONにしてから48時間以上経過している必要があります。

docs.aws.amazon.com

system01アカウントを対象に有効化してみます。

f:id:fu3ak1:20211228105746p:plain

すでに有効化したようなメッセージが出ますが、忘れずに有効化を押しましょう。

f:id:fu3ak1:20211228110613p:plain

しばらくすると有効になります。

f:id:fu3ak1:20211229230849p:plain

有効にしたsystem01画面にログインしてDetectiveを見てみると、以下のようになります。
集約された場合、現時点ではメンバー側では自分のイベントがDetectiveで確認できないため注意が必要です。

f:id:fu3ak1:20211229231027p:plain

つづいて、組織内のアカウントをすべて有効化してみます。

ふたたび委任したAuditアカウントにログインし、すべてのアカウントを有効にします。

f:id:fu3ak1:20211229231311p:plain

有効にできました。

f:id:fu3ak1:20211229231832p:plain

Organizations配下の新規アカウントについて自動有効することも可能です。

f:id:fu3ak1:20211229231921p:plain

設定検証はここまでです。

組織ベースの状況確認

せっかくなので、何かメンバーアカウントでイベントを検知させ、集約されたAuditアカウントのDetectiveで状況調査をしてみます。

今回はコチラのS3イベントをメンバーアカウントで検知させてみます。

バケットのブロックパブリックアクセスを無効にすると検知されるイベントです。

任意のバケットで次のとおり無効にします。

f:id:fu3ak1:20211229234558p:plain

しばらくすると次のように、GuardDutyでイベントを検知します。

f:id:fu3ak1:20211229235256p:plain

集約しているAuditアカウントでもGuardDutyのイベントが見れるので、Detectiveで調査してみます。

f:id:fu3ak1:20211229235411p:plain

検知したAWSアカウントID、操作したIAM(今回はAWS SSOのロール)、操作元のIPアドレスをベースに調査が可能です。 IAM(ロールセッション)をベースに調査してみます。

f:id:fu3ak1:20211229235544p:plain

Detective上では色々な情報が表示され、次の画面ではイベント発生の時刻で、どのAPIが何回呼ばれたのか表示されています。 たとえばバケット作成(CreateBucket)を1回呼び出しているのがわかります。

f:id:fu3ak1:20211230000012p:plain

イベントの発生した国の情報も地図で表示できます。

f:id:fu3ak1:20211230000157p:plain

イベントを発生させたユーザー(ロール)が、イベント前後でどのような操作をしていたのか、よくわかりますね。まさにDetective(探偵)という感じです。

また、今回はイベントが発生したsystem01アカウントではなく、集約したAuditアカウントで調査したというのもポイントです。

f:id:fu3ak1:20211230000908p:plain

まとめ

個人的には待望のアップデートでした。便利ですが、集約するとメンバー側で情報が見れなくなるのでそこは注意ですね。

コチラのOrganizationsまとめの記事も更新しましたので、是非セキュリティサービスについてOrganizationsを活用したい方は参考にしてみてください。日々アップデートされるので私も日々勉強中です。