Security Hub中央設定でセルフマネージドにしたメンバーアカウントのSecurity Hubを無効化できないときの対処法

2024.05.13

こんにちは。たかやまです。

Security Hub 中央設定では各メンバーアカウントで自由にSecurity Hubを設定できるセルフマネージドポリシーが提供されています。

今回このセルフマネージドポリシーを適用したアカウントでSecurity Hubを無効化できない事象に遭遇したのでその対処法をご紹介します。

さきにまとめ

  • 一度設定ポリシーを適用したメンバーアカウントは管理アカウントと関連付けが行われる
  • セルフマネージド後も関連付けが残ったままになる
  • メンバーアカウントでSecurity Hubを無効化する場合は、管理アカウントでリージョン毎にdisassociate-membersを実行し関連付けを解除する必要がある

確認してみる

メンバーアカウントでSecurity Hubが無効化できないことを確認する

管理アカウントで Sandbox-1 アカウントに対してセルフマネージドポリシーを適用します。

Sandbox-1アカウントで Security Hub の設定画面を確認してみます。

管理アカウントの関連付けと、それに伴い「Security Hubの無効化」ボタンが非活性化されていることが確認できます。

管理アカウントで関連付けを解除する

それでは、管理アカウントとメンバーアカウントの関連付けを解除してみます。

まずは、管理アカウントからメンバーアカウントの関連状況を確認しますlist-membersで現在関連付けられているアカウントを確認することができます。

Sandbox-1(80xxxxxxxx71)アカウントが関連付けられていることが確認できます。

aws securityhub list-members --region ap-northeast-1
{
    "Members": [
        {
            "AccountId": "73xxxxxxxx81",
            "MasterId": "77xxxxxxxx59",
            "AdministratorId": "77xxxxxxxx59",
            "MemberStatus": "Enabled",
            "UpdatedAt": "2024-05-08T19:13:08.272000+00:00"
        },
        {
            "AccountId": "74xxxxxxxx44",
            "MasterId": "77xxxxxxxx59",
            "AdministratorId": "77xxxxxxxx59",
            "MemberStatus": "Enabled",
            "UpdatedAt": "2024-05-08T19:13:08.636000+00:00"
        },
        {
            "AccountId": "80xxxxxxxx71", # こちらがSandbox-1アカウント
            "MasterId": "77xxxxxxxx59",
            "AdministratorId": "77xxxxxxxx59",
            "MemberStatus": "Enabled",
            "UpdatedAt": "2024-03-12T14:43:52.015000+00:00"
        }
    ]
}

次にdisassociate-membersを実行して、関連付けを解除します。
複数のリージョンでSecurity Hubの関連付けを解除したい場合は、リージョンごとにコマンドを実行する必要があります。

aws securityhub disassociate-members --account-ids 80xxxxxxxx71 --region ap-northeast-1

※この時コマンドが正常終了した場合、レスポンスは特に帰ってきません。

メンバーアカウントでSecurity Hubを無効化する

関連付けが解除されたことを確認したら、Sandbox-1アカウントでSecurity Hubを無効化します。

Sandbox-1アカウントのSecurity Hubの設定上で、「Security Hubの無効化」ボタンが活性化されていることが確認できます。

その後は問題なくSecurity Hubが無効化されていることが確認できます。

aws securityhub describe-hub --region ap-northeast-1

An error occurred (InvalidAccessException) when calling the DescribeHub operation: Account 80xxxxxxxx71 is not subscribed to AWS Security Hub

最後に

セルフマネージドを適用した場合、そのままメンバーアカウントでSecurity Hubを無効化できると思っていたのでこの関連付けに気づかずにハマってしまいました。

ちなみに管理アカウントでSecurity Hubを無効化するポリシーも提供されているので、管理アカウントの管理下においたまま無効化したい場合にはこちらをご利用ください。

こちらの内容がどなたかのお役に立てれば幸いです。

以上、たかやま(@nyan_kotaroo)でした。