Amazon Inspector による Amazon EC2 インスタンスのスキャン
Amazon Inspector EC2 スキャンは、EC2 インスタンスからメタデータを抽出し、このメタデータをセキュリティアドバイザリから収集されたルールと比較します。Amazon Inspector はインスタンスをスキャンして、パッケージの脆弱性とネットワーク到達可能性の問題について調べ、検出結果を生成します。Amazon Inspector は、24 時間ごとにネットワーク到達可能性のスキャンを実行し、EC2 インスタンスに関連付けられたスキャン方式に応じてさまざまな頻度で、パッケージの脆弱性スキャンを実行します。
パッケージの脆弱性スキャンは、エージェントベースまたはエージェントレスのスキャン方式を使用して実行できます。これらのいずれのスキャン方式でも、Amazon Inspector がパッケージの脆弱性スキャンのために EC2 インスタンスからソフトウェアインベントリを収集する方法とタイミングが決まります。エージェントベースのスキャンは SSM Agent を使用してソフトウェアインベントリを収集し、エージェントレススキャンは Amazon EBS スナップショットを使用してソフトウェアインベントリを収集します。
Amazon Inspector は、アカウントに対してアクティブ化したスキャン方式を使用します。初めて Amazon Inspector をアクティブ化すると、アカウントは両方のスキャン方式を使用するハイブリッドスキャンに自動的に登録されます。ただし、いつでもこの設定を変更できます。スキャンタイプをアクティブ化する方法の詳細については、「スキャンタイプをアクティブ化する」を参照してください。このセクションでは、Amazon EC2 スキャンについて説明します。
エージェントベースのスキャン
エージェントベースのスキャンは、対象となるすべてのインスタンスで SSM エージェントを使用して継続的に実行されます。エージェントベースのスキャンの場合、Amazon Inspector は SSM 関連付けと、これらの関連付けを通じてインストールされたプラグインを使用して、インスタンスからソフトウェアインベントリを収集します。Amazon Inspector のエージェントベースのスキャンでは、オペレーティングシステムパッケージに対するパッケージの脆弱性スキャンに加えて、Linux ベースのインスタンス内のアプリケーションプログラミング言語パッケージに対するパッケージの脆弱性も Linux ベースの Amazon EC2 インスタンス向け Amazon Inspector 詳細検査 によって検出できます。
以下のプロセスでは、Amazon Inspector が SSM を使用してインベントリを収集し、エージェントベースのスキャンを実行する方法について説明します。
-
Amazon Inspector は、インスタンスからインベントリを収集するために、アカウントに SSM 関連付けを作成します。一部のインスタンスタイプ (Windows および Linux) では、これらの関連付けによって、インベントリが収集するために個々のインスタンスにプラグインがインストールされます。
-
Amazon Inspector は SSM を使用してインスタンスからパケージインベントリを抽出します。
-
Amazon Inspector は抽出されたインベントリを評価し、検出された脆弱性について検出結果を生成します。
対象インスタンス
Amazon Inspector は、インスタンスが以下の条件を満たす場合、エージェントベース方式でスキャンします。
-
サポートされている OS がインスタンスに備わっている。サポートされている OS のリストについては、「サポートされているオペレーティングシステム: Amazon EC2スキャン」の「エージェントベースのスキャンのサポート」コラムを参照してください。
-
インスタンスが Amazon Inspector の EC2 除外タグによってスキャンから除外されていない。
-
SSM マネージドインスタンスである。エージェントを確認および設定する手順については、「SSM Agent の設定」を参照してください。
エージェントベーススキャンの動作
エージェントベースのスキャン方式を使用する場合、Amazon Inspector は、以下の状況において EC2 インスタンスの脆弱性スキャンを新たに開始します。
-
新しい EC2 インスタンスを起動するとき。
-
既存の EC2 インスタンス (Linux および Mac) に新しいソフトウェアをインストールするとき。
-
Amazon Inspector がデータベースに新しい共通脆弱性識別子 (CVE) 項目を追加し、その CVE が EC2 インスタンス (Linux と Mac) に関連する場合。
Amazon Inspector は、初回スキャンが完了すると EC2 インスタンスの [最終スキャン日] フィールドを更新します。この後、Amazon Inspector が SSM インベントリを評価したとき (デフォルトでは 30 分ごと)、またはインスタンスに影響を与える CVE が Amazon Inspector データベースに新たに追加されたためにインスタンスが再スキャンされたときに、[最終スキャン日] フィールドが更新されます。
EC2 インスタンスの脆弱性の最終スキャン日は、[アカウント管理] ページの [インスタンス] タブから、または ListCoverage コマンドを使用して確認できます。
SSM Agent の設定
Amazon Inspector がエージェントベースのスキャン方式を使用して Amazon EC2 インスタンスのソフトウェア脆弱性を検出するには、そのインスタンスが Amazon EC2 Systems Manager (SSM) のマネージドインスタンスである必要があります。SSM マネージドインスタンスには SSM Agent がインストールされ実行されており、SSM にはインスタンスを管理するアクセス許可があります。すでに SSM を使用してインスタンスを管理している場合、エージェントベースのスキャンのために必要な他の手順はありません。
SSM Agent は、一部の Amazon マシンイメージ (AMI) から作成された EC2 インスタンスにデフォルトでインストールされます。詳細については、「AWS Systems Manager ユーザーガイド」の「SSM Agent について」を参照してください。ただし、SSM Agent がインストールされている場合でも、それを手動でアクティブ化し、SSM にインスタンスを管理するためのアクセス許可の付与が必要の場合があります。
以下の手順では、IAM インスタンスプロファイルを使用して Amazon EC2 インスタンスをマネージドインスタンスとして設定する方法について説明します。この手順では、「AWS Systems Manager ユーザーガイド」にあるより詳細な情報のリンクも提供しています。
AmazonSSMManagedInstanceCore は、インスタンスプロファイルをアタッチするときに使用する推奨ポリシーです。このポリシーには、Amazon Inspector EC2 スキャンに必要なすべてのアクセス許可が含まれています。
注記
SSM デフォルトのホスト管理設定を使用すると、IAM インスタンスプロファイルを使用しなくても、すべての EC2 インスタンスの SSM 管理を自動化できます。詳細については、「デフォルトのホスト管理設定」を参照してください。
Amazon EC2 インスタンス用に SSM を設定する方法
-
オペレーティングシステムベンダーがまだ SSM Agent をインストールしていない場合は、SSM Agent をインストールします。詳細については、「SSM Agent の使用」を参照してください。
-
AWS CLI を使用して、SSM Agent が実行されていることを確認します。詳細については、「SSM Agent ステータスの確認とエージェントの起動」を参照してください。
-
SSM にインスタンスを管理するアクセス許可を付与します。IAM インスタンスプロファイルを作成してインスタンスにアタッチすることで、アクセス許可を付与できます。AmazonSSMManagedInstanceCore ポリシーを使用することをお勧めします。このポリシーには、Amazon Inspector がスキャンに必要な SSM ディストリビューター、SSM インベントリ、および SSM ステートマネージャーのアクセス許可があるためです。これらの許可を持つインスタンスプロファイルを作成してインスタンスにアタッチする手順については、「Configure instance permissions for Systems Manager」を参照してください。
-
(オプション) SSM Agent の自動アップデートをアクティブ化にします。詳細については、「SSM Agent への更新の自動化」を参照してください。
-
(オプション) Amazon Virtual Private Cloud (Amazon VPC) エンドポイントを使用するように Systems Manager を設定します。詳細については、「Create Amazon VPC endpoints」を参照してください。
重要
Amazon Inspector では、ソフトウェアアプリケーションインベントリを収集するために、お客様のアカウントに Systems Manager ステートマネージャーの関連付けが必要です。まだ存在しない場合は、Amazon Inspector によって InspectorInventoryCollection-do-not-delete
という名前の関連付けが自動的に作成されます。
Amazon Inspector ではリソースデータの同期も必要で、まだ存在しない場合は自動的に InspectorResourceDataSync-do-not-delete
という名前で作成されます。詳細については、「AWS Systems Manager ユーザーガイド」の「インベントリのリソースデータの同期の設定」を参照してください。各アカウントは、リージョンごとに設定された数のリソースデータを同期することができます。詳細については、「AWS Systems Manager エンドポイントとクォータ」の「リソースデータの同期の最大数 (各リージョンの AWS アカウントあたり)」を参照してください。
スキャン用に作成された SSM リソース
Amazon Inspector では、Amazon EC2 スキャンを実行するためにアカウントに多数の SSM リソースが必要です。Amazon Inspector EC2 スキャンを初めてアクティブ化すると、以下のリソースが作成されます。
注記
アカウントで Amazon Inspector Amazon EC2 スキャンがアクティブ化されている間にこれらの SSM リソースのいずれかが削除された場合、Amazon Inspector は次のスキャン間隔でそれらのリソースの再作成を試みます。
InspectorInventoryCollection-do-not-delete
-
これは Amazon Inspector が Amazon EC2 インスタンスからソフトウェアアプリケーションインベントリを収集するために使用するSystems Manager ステートマネージャー (SSM) 関連付けです。
InstanceIds*
からインベントリを収集するための SSM 関連付けがすでにアカウントに存在する場合、Amazon Inspector は独自のものを作成する代わりにその関連付けを使用します。 InspectorResourceDataSync-do-not-delete
-
これは Amazon Inspector が、Amazon EC2 インスタンスから収集したインベントリデータを所有する Amazon S3 バケットに送信するために使用するリソースデータ同期です。詳細については、「AWS Systems Manager ユーザーガイド」の「インベントリのリソースデータの同期の設定」を参照してください。
InspectorDistributor-do-not-delete
-
これは Amazon Inspector が Windows インスタンスのスキャンに使用する SSM 関連付けです。この関連付けにより、Windows インスタンスに Amazon Inspector SSM プラグインがインストールされます。プラグインファイルが誤って削除された場合、この関連付けは次の関連付け間隔でプラグインを再インストールします。
InvokeInspectorSsmPlugin-do-not-delete
-
これは Amazon Inspector が Windows インスタンスのスキャンに使用する SSM 関連付けです。この関連付けにより、Amazon Inspector はプラグインを使用してスキャンを開始できます。また、これを使用して Windows インスタンスのスキャンのカスタム間隔を設定することもできます。詳細については、「Windows インスタンススキャンのカスタムスケジュールの設定」を参照してください。
InspectorLinuxDistributor-do-not-delete
-
これは Amazon Inspector が Amazon EC2 Linux 詳細検査に使用する SSM 関連付けです。この関連付けにより、Amazon Inspector SSM プラグインが Linux インスタンスにインストールされます。
InvokeInspectorLinuxSsmPlugin-do-not-delete
-
これは Amazon Inspector が Amazon EC2 Linux 詳細検査に使用する SSM 関連付けです。この関連付けにより、Amazon Inspector はプラグインを使用してスキャンを開始できます。
注記
Amazon Inspector Amazon EC2 のスキャンまたは詳細検査を非アクティブ化すると、SSM リソース InvokeInspectorLinuxSsmPlugin-do-not-delete
は呼び出されなくなります。
エージェントレススキャン
アカウントがハイブリッドスキャンモードの場合、Amazon Inspector は対象となるインスタンスに対してエージェントレススキャン方式を使用します。ハイブリッドスキャンモードには、エージェントベースのスキャンとエージェントレススキャンが含まれ、Amazon EC2 スキャンをアクティブ化すると自動的に有効になります。
エージェントレススキャンの場合、Amazon Inspector は EBS スナップショットを使用してインスタンスからソフトウェアインベントリを収集します。エージェントレススキャンでは、オペレーティングシステムとアプリケーションプログラミング言語パッケージの脆弱性についてインスタンスがスキャンされます。
注記
Linux インスタンスのアプリケーションプログラミング言語パッケージの脆弱性をスキャンする場合、エージェントレス方式では使用可能なすべてのパスがスキャンされます。一方、エージェントベーススキャンでは、デフォルトパスと、Linux ベースの Amazon EC2 インスタンス向け Amazon Inspector 詳細検査 の一部として指定した追加パスのみがスキャンされます。これにより、同じインスタンスでも、エージェントベース方式を使用してスキャンされたか、エージェントレス方式を使用してスキャンされたかによって、異なる検出結果が得られる可能性があります。
以下のプロセスでは、Amazon Inspector が EBS スナップショットを使用してインベントリを収集し、エージェントレススキャンを実行する方法について説明します。
-
Amazon Inspector は、インスタンスにアタッチされたすべてのボリュームの EBS スナップショットを作成します。Amazon Inspector が使用している間、スナップショットはアカウントに保存され、タグキーとして
InspectorScan
、タグ値として一意のスキャン ID でタグ付けされます。 -
Amazon Inspector は、EBS ダイレクト API を使用してスナップショットからデータを取得し、脆弱性がないか評価します。検出された脆弱性に対して検出結果が生成されます。
-
Amazon Inspector は、アカウント内に作成した EBS スナップショットを削除します。
対象インスタンス
Amazon Inspector は、インスタンスが以下の条件を満たす場合、エージェントレス方式でスキャンします。
-
サポートされている OS がインスタンスに備わっている。詳細については、「サポートされているオペレーティングシステム: Amazon EC2スキャン」の「エージェントベースのスキャンサポート」列を参照してください。
-
インスタンスのステータスが
Unmanaged EC2 instance
、Stale inventory
、またはNo inventory
である。 -
インスタンスが Amazon EBS によってバックアップされ、以下のいずれかのファイルシステム形式である。
-
ext3
-
ext4
-
xfs
-
-
インスタンスが Amazon EC2 除外タグを通じてスキャンから除外されていない。
-
インスタンスにアタッチされたボリュームの数が 8 未満で、合計サイズが 1200 GB 以下である。
エージェントレススキャンの動作
アカウントが [ハイブリッドスキャン] 用に設定されている場合、Amazon Inspector は 24 時間ごとに対象インスタンスに対してエージェントレススキャンを実行します。Amazon Inspector は、新たに対象となるインスタンスを 1 時間ごとに検出してスキャンします。これには、SSM エージェントのない新しいインスタンス、またはステータスが SSM_UNMANAGED
に変わった既存のインスタンスが含まれます。
Amazon Inspector は、エージェントレススキャンの後にインスタンスから抽出されたスナップショットをスキャンするたびに、Amazon EC2 インスタンスの [最終スキャン日] フィールドを更新します。
EC2 インスタンスの脆弱性の最終スキャン日は、[アカウント管理] ページの [インスタンス] タブから、または ListCoverage コマンドを使用して確認できます。
スキャンモードの管理
アカウントで EC2 スキャンを実行するときに Amazon Inspector がどのスキャン方式を使用するかは、EC2 スキャンモードで決まります。アカウントのスキャンモードは、[全般設定] の [EC2 スキャン設定] ページで確認できます。スタンドアロンアカウントまたは Amazon Inspector の委任管理者は、スキャンモードを変更できます。Amazon Inspector の委任管理者としてスキャンモードを設定すると、そのスキャンモードが組織内のすべてのメンバーアカウントに設定されます。Amazon Inspector には以下のスキャンモードがあります。
エージェントベースのスキャン — このスキャンモードでは、Amazon Inspector はパッケージの脆弱性をスキャンする際にエージェントベースのスキャン方式のみを使用します。このスキャンモードは、アカウント内の SSM マネージドインスタンスのみをスキャンしますが、新しい CVE やインスタンスへの変更に応じて継続的にスキャンできるという利点があります。エージェントベースのスキャンでは、対象となるインスタンスに対して Amazon Inspector の詳細検査を行うこともできます。これは、新しくアクティブ化されたアカウントではデフォルトのスキャンモードです。
ハイブリッドスキャン — このスキャンモードでは、Amazon Inspector はエージェントベースの方式とエージェントレス方式の両方を組み合わせてパッケージの脆弱性をスキャンします。SSM エージェントがインストールおよび設定されている適格な EC2 インスタンスでは、Amazon Inspector はエージェントベースの方式を使用します。SSM マネージドではない対象インスタンスの場合、Amazon Inspector は対象の EBS-backed インスタンスに対してエージェントレス方式を使用します。
スキャンモードを変更するには
-
認証情報を使用してサインインし、Amazon Inspector コンソール (https://console.aws.amazon.com/inspector/v2/home
) を開きます。 -
ページの右上隅にある AWS リージョンセレクターを使って、EC2 のスキャンモードを変更したいリージョンを選択します。
-
サイドナビゲーションパネルの [全般設定] から、[EC2 スキャン設定] を選択します。
-
[スキャンモード] で [編集] を選択します。
-
スキャンモードを選択し、[変更を保存] を選択します。
Amazon Inspector スキャンからのインスタンスの除外
Linux および Windows インスタンスを Amazon Inspector スキャンから除外するには、これらのインスタンスに InspectorEc2Exclusion
キーをタグ付けします。タグ値を含めることはオプションです。タグの追加の詳細については、「Amazon EC2 リソースのタグ付け」を参照してください。
Amazon Inspector スキャンから除外するようにインスタンスにタグ付けすると、Amazon Inspector はインスタンスを除外済みとしてマークし、その検出結果を作成しません。ただし、Amazon Inspector SSM プラグインは引き続き呼び出されます。プラグインが呼び出されないようにするには、インスタンスメタデータのタグへのアクセスを許可する必要があります。
注記
除外されたインスタンスには課金されません。
さらに、暗号化された EBS ボリュームをエージェントレススキャンから除外するには、そのボリュームの暗号化に使用された AWS KMS キーに InspectorEc2Exclusion
タグを付けます。詳細については、「キーのタグ付け」を参照してください。
サポートされるオペレーティングシステム
Amazon Inspector は、サポートされている Mac、Windows、Linux の EC2 インスタンスをスキャンして、オペレーティングシステムパッケージの脆弱性を検出します。Linux インスタンスの場合、Amazon Inspector では Linux ベースの Amazon EC2 インスタンス向け Amazon Inspector 詳細検査 を使用してアプリケーションプログラミング言語パッケージの結果を生成できます。Mac および Windows インスタンスの場合、オペレーティングシステムパッケージのみがスキャンされます。
SSM エージェントなしでスキャンできるオペレーティングシステムなど、サポートされているオペレーティングシステムについては、「Amazon EC2 インスタンスのステータス値」を参照してください。