【セキュアアカウント切り戻し手順】AWS Security Hub無効化手順のご案内

2023.06.29

当エントリではクラスメソッドメンバーズが提供しているセキュアアカウントサービスにてAWS Security Hub(以降Security Hub)の無効化の手順についてご案内いたします。

セキュアアカウントとは

クラスメソッドでは、セキュリティに関するベストプラクティスをまるっと施した状態のAWSアカウントをお客様に提供しております。

クラスメソッドメンバーズご利用の全てのお客様がご利用可能ですので、この機会にご検討ください。

セキュアアカウントのアーキテクチャ

セキュアアカウントでは下記の設定が施されています。

各設定の詳細は下記記事や仕様書をご参照ください。

今回の切り戻し対象のサービス

今回はセキュアアカウントにて全リージョン有効化されているSecurity Hubの切り戻し手順を紹介いたします。

Security Hubとは?

AWSリソースのセキュリティ設定がベストプラクティスから逸脱していないかを自動でチェックしたり、セキュリティサービスの検出結果を一元管理できるサービスです。

特にAWSリソースのセキュリティ設定がベストプラクティスから逸脱していないかを自動でチェックしてくれるサービスが有用です。

例えば、セキュリティグループの設定でSSHが0.0.0.0/0に設定されてしまっているような状態であったり、S3がパブリックに公開されてしまっていたりするといった状況を検知して通知を行うことができます。正しく設定することで、発見的ガードレールの役割を果たしてくれます。

Security Hubの有用性に関して

よくSecurity Hubの設定を無効化したい理由として、料金が高い(費用対効果に見合っていない)という意見が挙げられます。

Security Hubは非常に有用なサービスです。無効化を実施する前に以下の記事をご参照ください。

コストに見合った必要なサービスであることがわかるかと思います!

Security HubはAWSを利用するにあたり、セキュリティ対策として必須レベルのサービスとなっています。 セキュリティ対策は保険の役割で中々効果を実感しづらいですが、非常に有益なサービスとなっているため有効化を推奨しております。

前提

オプトイン無効化作業

セキュアアカウント設定の切り戻し作業を行う際は、メンバーズポータルサイトのセキュア設定をご確認いただき、オプトインが有効化の場合は無効化にしていただく必要があります

オプトインが有効化状態では毎週土曜日にてメンテナンスが入り、セキュア設定の状態が維持(上書き)されるため、無効化にする必要がございます。
オプトインが無効化状態では毎週土曜日のメンテナンスが実施されなくなりますが、設定自体はそのままとなるため手動切り戻し作業を行う必要がございます。

メンバーズポータルサイトから対象のアカウントIDを選択します。

下記画面から、メンバーズサービス設定を選択します。

新しくタブが開かれるので、セキュリティ設定を選択します。

セキュア設定項目にて、「AWS Security Hub」の項目を無効化にて保存します。

切り戻し作業者に必要なIAM権限

今回の切り戻し作業を行うために、作業者に必要なポリシーは以下となります。

  • AWSCloudShellFullAccess
  • AWSSecurityHubFullAccess
  • AmazonEC2ReadOnlyAccess

無効化手順

Security Hubはリージョン毎に有効化されています。1リージョンを無効化しただけでは課金は止まりませんのでご注意ください。

現在のSecurity Hubのステータスを確認する

CloudShellを開き以下コマンドを入力してください(CloudShellの使い方はこちら)。

Security Hubのステータス確認コマンド

for REGION in $(aws ec2 describe-regions --query "sort(Regions[].RegionName)" --output text); do
    HubArn=$(aws securityhub --region "${REGION}" describe-hub --query HubArn --output text 2>/dev/null)
    if [ -n "$HubArn" ]; then
        # 有効化中のステータスを表示
        echo "${REGION}: Enabled"
    else
        # 無効化中のステータスを表示
        echo "${REGION}: Disabled"
    fi
done

全てのリージョンてSecurity Hubが有効化になっている場合は、下記のような表示結果になります。

ap-northeast-1: Enabled
ap-northeast-2: Enabled
ap-northeast-3: Enabled
ap-south-1: Enabled
ap-southeast-1: Enabled
ap-southeast-2: Enabled
ca-central-1: Enabled
eu-central-1: Enabled
eu-north-1: Enabled
eu-west-1: Enabled
eu-west-2: Enabled
eu-west-3: Enabled
sa-east-1: Enabled
us-east-1: Enabled
us-east-2: Enabled
us-west-1: Enabled
us-west-2: Enabled
表示ステータス 説明
Enabled 有効化状態
Disabled 無効化状態

実際にCloudShellで実行した時の様子です。

CloudShellで無効化する場合

複数のリージョンを無効化する場合はこちらがおすすめです。 コンソールから温もりのある手作業でも対応ができますが、リージョン数分の無効化対応が必要になります。

無効化手順

全リージョン無効化コマンド

aws ec2 describe-regions --query Regions[*].RegionName \
  | jq -r '.[]' \
  | while read -r REGION 
    do
      HubArn=$(aws securityhub --region "${REGION}" describe-hub --query HubArn --output text 2>/dev/null)
      if [ -n "$HubArn" ]; then
        aws --region "${REGION}" securityhub disable-security-hub
        echo "${REGION}: Disabled"
      fi
    done

特定のリージョン以外を一括で停止したい場合(例:東京、バージニア北部以外のリージョンを一括停止)
※リージョンカスタマイズ可能です

aws ec2 describe-regions --query Regions[*].RegionName \
  | jq -r '.[]' \
  | grep -v -e 'ap-northeast-1' -e 'us-east-1' \
  | while read -r REGION 
    do
      HubArn=$(aws securityhub --region "${REGION}" describe-hub --query HubArn --output text 2>/dev/null)
      if [ -n "$HubArn" ]; then
        aws --region "${REGION}" securityhub disable-security-hub
        echo "${REGION}: Disabled"
      fi
    done

実際にCloudShellで全リージョン無効化した時の様子です。

コンソールで無効化する場合

コンソールにてSecurity Hubを無効化する場合、前述の通りリージョン毎に操作する必要があるので手間がかかります。 操作リージョンが数ヶ所程度の場合にコンソールで操作することをお勧めします。

まずはコンソール画面よりSecurity Hubを開き、メニューより「設定」を選択してください。

設定画面より一般を選択します。                                                 

AWS Security Hubの無効化を選択します。

AWS Security Hubの無効化を押下して無効化します。

無効化するとSecurity Hubのトップページに遷移します。

ステータスを確認する

全リージョンのSecurity Hubステータス確認コマンド

for REGION in $(aws ec2 describe-regions --query "sort(Regions[].RegionName)" --output text); do
    HubArn=$(aws securityhub --region "${REGION}" describe-hub --query HubArn --output text 2>/dev/null)
    if [ -n "$HubArn" ]; then
        # 有効化中のステータスを表示
        echo "${REGION}: Enabled"
    else
        # 無効化中のステータスを表示
        echo "${REGION}: Disabled"
    fi
done

全て停止状態の時はこのように表示されます。

ap-northeast-1: Disabled
ap-northeast-2: Disabled
ap-northeast-3: Disabled
ap-south-1: Disabled
ap-southeast-1: Disabled
ap-southeast-2: Disabled
ca-central-1: Disabled
eu-central-1: Disabled
eu-north-1: Disabled
eu-west-1: Disabled
eu-west-2: Disabled
eu-west-3: Disabled
sa-east-1: Disabled
us-east-1: Disabled
us-east-2: Disabled
us-west-1: Disabled
us-west-2: Disabled
表示ステータス 説明
Enabled 有効化状態
Disabled 無効化状態

【おまけ】再度有効化したい場合

切り戻したセキュア設定を元に戻したい場合、メンバーズポータルサイトから再有効化することが可能です。
設定反映は毎週土曜日午前2時ごろから順次開始されます。

メンバーズポータルサイトから対象のアカウントIDを選択します。

下記画面から、メンバーズサービス設定を選択します。

新しくタブが開かれるので、セキュリティ設定を選択します。

セキュア設定項目にて、「AWS Security Hub」の項目を有効化にて保存します。