Security HubをOrganizationsでマルチアカウント/マルチリージョンで有効化する

記事タイトルとURLをコピーする

朝散歩にハマっているCI部2課の山﨑です。

今回はSecurity HubをOrganizationsでマルチアカウント/マルチリージョンに展開してみました。

Organizations組織への展開イメージ

展開イメージは以下の通りです。

f:id:swx-yamasaki:20210811141253p:plain
展開イメージ

前提

Security Hubを有効化するためには対象リージョンでAWS Configを有効化しておく必要があります。Organizationsを利用してマルチアカウント/マルチリージョンへのAWS Configを有効化する手順については以下のブログをご覧ください。

blog.serverworks.co.jp

検証

Management Account から委任先アカウントへSecurity Hubの管理権限を委任

Management Account のCloudShellを起動させます

f:id:swx-yamasaki:20210811141749p:plain
CloudShell

CloudShellで以下のスクリプトを作成して実行します。スクリプトではリージョンごとにManagement Account から委任先アカウントにSecurity Hubの管理権限を委任しています。

delegate-securityhub.sh

#!/bin/bash
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region ap-northeast-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region ap-northeast-2
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region ap-northeast-3
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region ap-south-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region ap-southeast-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region ap-southeast-2
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region ca-central-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region eu-central-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region eu-north-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region eu-west-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region eu-west-2
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region eu-west-3
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region sa-east-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region us-east-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region us-east-2
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region us-west-1
aws securityhub enable-organization-admin-account --admin-account-id 委任先アカウントID --region us-west-2

awscli.amazonaws.com

スクリプトを実行すると委任先アカウントでは自動的にSecurity Hubが有効化され、OrganizationsのMember Accountもコンソール画面で確認することができます。

f:id:swx-yamasaki:20210811142910p:plain
Security Hubが自動で有効化
f:id:swx-yamasaki:20210811142151p:plain
委任先アカウントのSecurity Hubコンソール画面

Management Account と Member AccountでSecurity Hubを有効化する

委任先アカウントのSecurity Hubコンソール画面の右上の「Enable」ボタンをクリックすると以下の画面が表示されて1クリックでMember Account のSecurity Hubを有効化してくれます。

f:id:swx-yamasaki:20210811142819p:plain
Member AccountへのSecurity Hub有効化も1クリックで可能

Enableボタン押下後、コンソール画面を確認するとStatusがEnabledになっています。この状態でSecurity Hubのfindingsを確認するとMember Accountの検出結果も合わせて確認することが可能になっており委任先アカウントとMember AccountのSecurity Hubが統合されていることが分かります。また、Auto-EnableもONになっています。これで新しいAWSアカウントがOrganizationsに追加されても自動でSecurity Hub を有効化してくれます。

f:id:swx-yamasaki:20210811151618p:plain
Auto-Enable も自動で有効化されている

上述の作業を各リージョンのSecurity Hubでポチポチ実行していけばOKです。CLIを使って一気に有効化する方法もありますが、コンソールだとAuto-Enableと各アカウントのSecurity Hubが有効化されているかGUIで一目で確認できて一石二鳥です。

ただし、残念ながら上記の方法ではManagement Account は有効化してくれないので個別でメンバーに追加します

f:id:swx-yamasaki:20210820211013p:plain
Management Account をメンバーに追加

おまけ

Security Hubが検知した内容をメールで運用担当者に通知する方法については以下のブログをご覧ください。

blog.serverworks.co.jp

まとめ

Security HubをOrganizationsでマルチアカウント/マルチリージョンで有効化すること自体はそこまで負荷は高くなかったですが、Security Hubの通知をONにした途端に通知メールが山のようにやってくるのでそこは注意しましょう