Amazon Detectiveが組織で有効化出来るようになったのでやってみた

Amazon DetectiveのAWS Organizations連携をやってみました。待望の機能です。
2021.12.25

こんにちは、臼田です。

みなさん、インシデントの調査してますか?(挨拶

今回は待ちに待ったAmazon DetectiveのAWS Organizations連携対応についてやってみました。AWSの記事は以下にあります。

Amazon Detective simplifies account management with the support for AWS Organizations

概要

Amazon Detectiveはインシデントの調査に役立つサービスで、主にAmazon GuardDutyと連携して機能します。GuardDutyはAWSを利用する上ではすでに無くてはならないサービスであり、全てのAWSアカウントで全てのリージョンで有効化します。

GuardDutyや、他にもAWS環境のセキュリティチェックを行うAWS Security Hubも、AWSアカウントをまとめて管理するAWS Organizationsと連携できるようになっていて、AWS Organizationsの組織で一括有効化ができていました。しかしこれまではDetectiveだけAWS Organizations連携に対応していなかったため、これだけ個別に有効化していました。

今回の対応でGuardDuty / Security Hub / Detectiveを同じようにAWS Organizations連携して管理できるようになりました。

また、これらのセキュリティサービスは全体管理の役割をAWS Organizationsの管理アカウント(親アカウント)とは別のアカウントに委任する機能があり、Detectiveも委任が可能です。AWSアカウント管理業務とセキュリティ管理の業務は別々に行うことも多く、セキュリティの最小権限の観点からもこれは分離すべきです。

やってみた

というわけで実際にDetectiveのOrganizations連携をやっていきます。

前提条件として、GuardDutyがすでにOrganizations連携され委任され展開されている状態から始めます。ちなみにこの設定をサクッとやる場合以下が参考になります。

そして、DetectiveはGuardDutyが有効化されてから48時間以上経過していないと有効化できないという制約があります。GuardDutyのOrganizations連携から48時間以上経過した後この作業を実施してください。

Detectiveの管理を委任する

まずは委任からです。AWS Organizationsの管理アカウントでDetectiveにアクセスします。すると有効化画面で委任の設定ができるようになっています。そしてなんと、既存でGuardDutyを委任していると委任先のアカウント候補が選択肢に出てきます!嬉しい簡単!ちなみにマネジメントコンソールの通信を確認すると、GuardDuty / Security Hub / MacieのOrganizations連携を確認していたので、これらが委任されていると候補が出ると考えられます。そのまま選択して委任します。

委任設定がされました。これで管理アカウントの設定は終わりです。

セキュリティ管理アカウントから組織全体を有効化する

続いてセキュリティ管理アカウントでの操作です。委任されると自動的にDetectiveが有効化されています。そしてアカウント管理画面への移動を促されるので移動します。

移動したら全てのアカウントを有効化できるのでします。GuardDutyではボタン一発ではなく、アカウントのリストから選択して有効化するやり方だったので、これもやりやすくなっています。うれしい。

有効化するとステータスが検証中になります。しばらくすると有効化出来るので待ちます。ついでに新しいアカウントも自動で有効化するように設定をONにします。

ONになりました。

しばらくするとステータスも有効になり、組織全てのアカウントでDetectiveを有効化できました。

管理アカウントの招待(はできない?)

GuardDutyやSecurity HubのOrganizations連携は管理アカウントに対しては自動で有効化して集約管理できなかったため、個別に招待を送って管理していました。Detectiveでも同じようにやってみました。

しかし招待しても、スキップされました。

そして管理アカウントを見に行ってみると、委任の情報だけあり、手動でDetectiveを有効化する画面も出てきませんでした。もしかしたらDetectiveについてはこれができないのかもしれません。今回は情報がないのでここで諦めました。

委任と自動有効化のCLI

上記の手順を全リージョンで回す必要があります。

通常はCLIやSDKを利用して実施したいところです。委任のCLIは以下に例があります。

Designating the Detective administrator account for an organization - Amazon Detective

aws detective enable-organization-admin-account --account-id <admin account ID>

しかしながらこのコマンドは最新のboto3やawscliでは受け付けてくれませんでした。

[cloudshell-user@ip-10-1-174-152 ~]$ aws --version
aws-cli/2.4.6 Python/3.8.8 Linux/4.14.252-195.483.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2 prompt/off
[cloudshell-user@ip-10-1-174-152 ~]$ aws detective enable-organization-admin-account --account-id 999999999999

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

aws: error: argument operation: Invalid choice, valid choices are:

botocoreも更新されていないので、自動化するためにはこれを待つ必要があるでしょう。

まとめ

Amazon DetectiveのAWS Organizations連携をやってみました。待望の機能なので嬉しい限りですが、セットアップの自動化ができないのでCLI / SDKの更新が待ち遠しいです。

はよ!