AWS Security Hub のInspectorコントロールにおけるマルチアカウント環境の有無による検出結果の違いを確認してみた
はじめに
本記事では、AWS Security Hub の Inspector コントロールにおける、マルチアカウント環境とスタンドアローン環境での検出結果の違いを検証しました。
Security Hub のコントロールのうち、Amazon Inspector に関連するものでは、以下の機能が有効化されているかをチェックします(執筆時点)。
- Amazon EC2 スキャン
- コントロールID:Inspector.1
- Amazon ECR スキャン
- コントロールID:Inspector.2
- AWS Lambda コードスキャン
- コントロールID:Inspector.3
- AWS Lambda 標準スキャン
- コントロールID:Inspector.4
マルチアカウント環境における Inspector のコントロールの検出結果の動作について、AWS のドキュメントには以下の記載がありました。
マルチアカウント環境では、このコントロールは委任された Amazon Inspector 管理アカウントのみを評価します。
組織内のメンバーアカウントのEC2スキャン機能を有効または無効にできるのは、委任された管理のみです。
Amazon Inspector メンバーアカウントは、自分のアカウントからこの設定を変更することはできません。
ドキュメントには「Inspector 管理アカウントのみが評価される」と記載されていますが、メンバーアカウントのステータスはどうなるのか?スタンドアローン環境の場合、どのように評価されるのか?などが気になったため、検証してみます。
先に結論
-
マルチアカウント環境
a. 委任管理者アカウントと管理下のすべてのメンバーアカウントでコントロールが成功の場合
→ 全アカウントで検出結果のステータスは成功(PASSED
)
b. 上記以外の場合
→ 委任管理者アカウントのみ失敗(FAILED
)、メンバーアカウントは成功(PASSED
) -
スタンドアローン環境
- 各アカウントが個別に評価される
前提条件
今回検証した環境は、以下の通りです。
- AWS Organizations を有効化し、3つのAWSアカウントを使用
- 管理アカウント1つ
- メンバーアカウント2つ
- 各アカウントは、Inspectorをアクティブ化済み
- 東京リージョンでは、委任されたInspector管理アカウントを設定済み(マルチアカウント環境)
- バージニアリージョンでは、委任されたInspector管理アカウントは未設定(スタンドアローン環境)
東京リージョンでは、マルチアカウント環境での動作確認を行い、バージニアリージョンでは、スタンドアローン環境での動作を確認します。
マルチアカウント環境の場合
マルチアカウント環境では、Inspector の[アカウント管理]画面において、管理アカウントから以下のようにメンバーアカウントを含めたすべてのアカウントの状況を確認できます。
一方、メンバーアカウントでは以下の通り、自身のアカウントしか確認できません。
Inspector の各機能(Security Hubのコントロールに記載されているもの)が1つのアカウントでも無効化されている場合、各アカウントの結果は以下のようになります
- 委任されたInspector管理アカウント
- ステータス:
FAILED
- ワークフロー:
NEW
- ステータス:
- 各メンバーアカウント
- ステータス:
PASSED
- ワークフロー:
RESOLVED
- ステータス:
例えば、一部のメンバーアカウントでInspectorのEC2スキャン機能が無効の場合(コントロールが失敗)、委任されたInspector管理アカウントの検出結果のみが失敗(FAILED
)となり、各メンバーアカウント(EC2スキャンが無効のアカウントも含む)の検出結果は成功(PASSED
)となります。
- 委任されたInspector管理アカウント
- ステータス:
FAILED
- ワークフロー:
NEW
- ステータス:
- 各メンバーアカウント
- ステータス:
PASSED
- ワークフロー:
RESOLVED
[Inspector.1]の場合、管理アカウントのみ失敗
- ステータス:
検出結果のステータスを成功にさせる
検出結果が失敗の場合、管理アカウントのInspectorの[アカウント管理]から、各メンバーアカウントを確認し、無効化されているアカウントを確認します。
以下から、コントロールIDがInspector.1の失敗している原因は、アカウント名がSandbox02のEC2スキャンが無効化されているためであると分かります。
そのため、管理アカウントから、Sandbox02のEC2スキャンを有効化すると、検出結果が成功します。
管理アカウントの検出結果を成功させる方法には、他には以下が考えられます。(管理アカウントはコントロールが成功している前提)
- 委任されたInspector管理アカウントからメンバーアカウント(Sandbox02)の関連付けを解除する
- 委任されたInspector管理アカウントの設定を削除し、3アカウントをそれぞれスタンドアローン環境にする
- 各アカウントごとにコントロールが評価されます。
メンバーアカウントの関連付け解除は、管理アカウントから可能です。
「Not a member」になると解除完了です。
Inpectorの機能をアクティブにすると、再度関連付けられます。
コントロール無効化
ちなみに、EC2 スキャンを無効化しているメンバーアカウント(例:Sandbox02)の Security Hub で、コントロール ID Inspector.1 を無効化しても、管理アカウントの検出結果は失敗のままです。
スタンドアローン環境の場合
スタンドアローン環境では、Inspector の[アカウント管理]画面で各アカウントは以下のように自身のアカウント情報のみを確認できます。
スタンドアローン環境では、各アカウントが個別にコントロールの評価対象となります。
[Inspector.1]の場合、アカウントごとに評価
最後に
本記事では、AWS Security HubにおけるAmazon Inspectorのコントロールの動作を、マルチアカウント環境とスタンドアローン環境で検証しました。動作は以下の通りです。
- マルチアカウント環境
- すべてのアカウントでコントロールが成功すると、委任管理アカウントの検出結果が成功となる
- 検出結果を成功させるには、全アカウントで Inspector の機能を有効化する必要がある
- スタンドアローン環境
- 各アカウントが個別に評価される
参考