朝散歩にハマっているCI部2課の山﨑です。
今回はSecurity HubをOrganizationsでマルチアカウント/マルチリージョンに展開してみました。
Organizations組織への展開イメージ
展開イメージは以下の通りです。
前提
Security Hubを有効化するためには対象リージョンでAWS Configを有効化しておく必要があります。Organizationsを利用してマルチアカウント/マルチリージョンへのAWS Configを有効化する手順については以下のブログをご覧ください。
検証
Management Account から委任先アカウントへSecurity Hubの管理権限を委任
Management Account の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
スクリプトを実行すると委任先アカウントでは自動的にSecurity Hubが有効化され、OrganizationsのMember Accountもコンソール画面で確認することができます。
Management Account と Member AccountでSecurity Hubを有効化する
委任先アカウントのSecurity Hubコンソール画面の右上の「Enable」ボタンをクリックすると以下の画面が表示されて1クリックでMember Account のSecurity Hubを有効化してくれます。
Enableボタン押下後、コンソール画面を確認するとStatusがEnabledになっています。この状態でSecurity Hubのfindingsを確認するとMember Accountの検出結果も合わせて確認することが可能になっており委任先アカウントとMember AccountのSecurity Hubが統合されていることが分かります。また、Auto-EnableもONになっています。これで新しいAWSアカウントがOrganizationsに追加されても自動でSecurity Hub を有効化してくれます。
上述の作業を各リージョンのSecurity Hubでポチポチ実行していけばOKです。CLIを使って一気に有効化する方法もありますが、コンソールだとAuto-Enableと各アカウントのSecurity Hubが有効化されているかGUIで一目で確認できて一石二鳥です。
ただし、残念ながら上記の方法ではManagement Account は有効化してくれないので個別でメンバーに追加します
おまけ
Security Hubが検知した内容をメールで運用担当者に通知する方法については以下のブログをご覧ください。
まとめ
Security HubをOrganizationsでマルチアカウント/マルチリージョンで有効化すること自体はそこまで負荷は高くなかったですが、Security Hubの通知をONにした途端に通知メールが山のようにやってくるのでそこは注意しましょう
山﨑 翔平 (Shohei Yamasaki) 記事一覧はコチラ
カスタマーサクセス部所属。2019年12月にインフラ未経験で入社し、AWSエンジニアとしてのキャリアを始める。2023 Japan AWS Ambassadors/2023-2024 Japan AWS Top Engineers