AWS の脆弱性評価を有効にして使用する

このページでは、アマゾン ウェブ サービス(AWS)サービスの脆弱性評価を設定して使用する方法について説明します。

AWS の脆弱性評価を有効にするには、AWS プラットフォームで AWS IAM ロールを作成し、Security Command Center で AWS サービスの脆弱性評価を有効にして、AWS に CloudFormation テンプレートをデプロイする必要があります。

始める前に

AWS サービスの脆弱性評価を有効にするには、特定の IAM 権限が必要です。また、Security Command Center が AWS に接続されている必要があります。

ロールと権限

AWS サービスの脆弱性評価の設定を完了するには、Google Cloud と AWS の両方で必要な権限を持つロールが付与されている必要があります。

Google Cloud ロール

Make sure that you have the following role or roles on the organization: Security Center Admin Editor (roles/securitycenter.adminEditor)

Check for the roles

  1. In the Google Cloud console, go to the IAM page.

    Go to IAM
  2. Select the organization.
  3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

  4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

Grant the roles

  1. In the Google Cloud console, go to the IAM page.

    IAM に移動
  2. 組織を選択します。
  3. [ アクセスを許可] をクリックします。
  4. [新しいプリンシパル] フィールドに、ユーザー ID を入力します。 これは通常、Google アカウントのメールアドレスです。

  5. [ロールを選択] リストでロールを選択します。
  6. 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
  7. [保存] をクリックします。
  8. AWS のロール

    AWS では、スキャンを有効にするために必要な AWS アカウントを AWS 管理ユーザーが作成する必要があります。

    AWS で脆弱性評価のロールを作成する手順は次のとおりです。

    1. AWS 管理ユーザー アカウントを使用して、AWS Management Console で IAM ロールのページに移動します。
    2. [Service or Use Cas] メニューから [lambda] を選択します。
    3. 次の権限ポリシーを追加します。
      • AmazonSSMManagedInstanceCore
      • AWSLambdaBasicExecutionRole
      • AWSLambdaVPCAccessExecutionRole
    4. [Add Permission] > [Create Inline policy] をクリックして、新しい権限ポリシーを作成します。
      1. 次のページを開き、AWS と VM Threat Detection の脆弱性評価のロールポリシーをコピーします。
      2. JSON エディタにポリシーを貼り付けます。
      3. ポリシーの名前を指定します。
      4. ポリシーを保存します。
    5. [Trust Relationships] タブを開きます。
    6. 次の JSON オブジェクトを貼り付けて、既存のステートメント配列に追加します。

      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Sid": "Statement1 or replace with a unique statementId",
            "Effect": "Allow",
            "Principal": {
              "Service": "cloudformation.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      
    7. ロールを保存します。

    このロールは、AWS に CloudFormation テンプレートをインストールするときに割り当てます。

    スキャンする AWS リソースに関する情報を収集する

    AWS の脆弱性評価を有効にする手順では、特定の AWS リージョン、AWS リソースを識別する特定のタグ、特定のハードディスク ドライブ(HDD)ボリューム(SC1 と ST1 の両方)をスキャンするように構成をカスタマイズできます。

    AWS の脆弱性評価を構成する前に、この情報を確認しておくことをおすすめします。

    Security Command Center が AWS に接続されていることを確認する

    AWS サービスの脆弱性評価では、Security Command Center が AWS に接続されているときに Cloud Asset Inventory が維持する AWS リソースのインベントリにアクセスする必要があります。

    接続がまだ確立されていない場合は、AWS サービスの脆弱性評価を有効にするときに、接続を設定する必要があります。

    接続を設定するには、AWS に接続して構成データとリソースデータの収集を行うをご覧ください。

    Security Command Center で AWS の脆弱性評価を有効にする

    AWS の脆弱性評価は、 Google Cloud で組織レベルで有効にする必要があります。

    1. Security Command Center の [リスクの概要] ページに移動します。

      [リスクの概要] に移動

    2. AWS の脆弱性評価を有効にする組織を選択します。

    3. [設定] をクリックします。

    4. [脆弱性評価] カードで、[設定を管理] をクリックします。[脆弱性評価] ページが開きます。

    5. [アマゾン ウェブ サービス] タブを選択します。

    6. [サービスの有効化] セクションで、[ステータス] フィールドを [有効] に変更します。

    7. [AWS コネクタ] セクションで、ステータスに「AWS コネクタが追加されている」と表示されていることを確認します。ステータスに [AWS コネクタが追加されていない] と表示された場合は、[AWS コネクタを追加] をクリックします。次のステップに進む前に、AWS に接続して構成データとリソースデータの収集を行うの手順を完了します。

    8. [AWS のコンピューティングとストレージのスキャン設定] を構成します。デフォルトの構成を変更するには、[スキャン設定を編集] をクリックします。各オプションの詳細については、AWS のコンピューティングとストレージのスキャン設定をカスタマイズするをご覧ください。

    9. AWS 用 VM Threat Detection をすでに有効にしており、その機能の一部として CloudFormation テンプレートをデプロイしている場合は、この手順をスキップします。[スキャン設定] セクションで、[CloudFormation テンプレートをダウンロード] をクリックします。JSON テンプレートがワークステーションにダウンロードされます。脆弱性をスキャンする必要のある各 AWS アカウントにテンプレートをデプロイする必要があります。

    AWS のコンピューティングとストレージのスキャン設定をカスタマイズする

    このセクションでは、AWS リソースのスキャンをカスタマイズするために使用できるオプションについて説明します。これらのカスタム オプションは、AWS の脆弱性評価スキャンを編集するときに [AWS のコンピューティングとストレージのスキャン設定] セクションにあります。

    最大 50 個の AWS タグと Amazon EC2 インスタンス ID を定義できます。スキャン設定の変更は、AWS CloudFormation テンプレートに影響しません。テンプレートを再デプロイする必要はありません。 タグまたはインスタンス ID の値が正しくなく(値のスペルが間違っているなど)、指定されたリソースが存在しない場合、その値はスキャン中に無視されます。
    オプション 説明
    スキャン間隔 各スキャンの時間間隔を入力します。有効な値の範囲は 6~24 です。デフォルト値は 6 です。スキャンの頻度を上げると、リソースの使用量が増加し、請求額が増加する可能性があります。
    AWS リージョン

    脆弱性評価スキャンに含めるリージョンのサブセットを選択します。

    選択したリージョンのインスタンスのみがスキャンされます。スキャンに含める 1 つ以上の AWS リージョンを選択します。

    Amazon Web Services(AWS)コネクタで特定のリージョンを構成した場合は、ここで選択したリージョンが、AWS への接続を構成したときに定義したリージョンと同じか、そのサブセットであることを確認してください。

    AWS タグ スキャンされるインスタンスのサブセットを識別するタグを指定します。これらのタグを持つインスタンスのみがスキャンされます。各タグの Key-Value ペアを入力します。無効なタグが指定されている場合、無視されます。指定できるタグは最大 50 個です。タグの詳細については、Amazon EC2 リソースにタグ付けするAmazon EC2 リソースのタグを追加または削除するをご覧ください。
    インスタンス ID で除外

    EC2 インスタンス ID を指定して、各スキャンから EC2 インスタンスを除外します。最大 50 個のインスタンス ID を指定できます。無効な値が指定された場合は、無視されます。複数のインスタンス ID を定義すると、それらは AND 演算子を使用して結合されます。

    • [ID でインスタンスを除外する] を選択した場合は、[AWS EC2 インスタンスを追加] をクリックして各インスタンスの ID を手動で入力してから、値を入力します。
    • [除外するインスタンス ID のリストを JSON 形式でコピーして貼り付ける] を選択した場合は、次のいずれかを行います。

      • インスタンス ID の配列を入力します。例:

        [ "instance-id-1", "instance-id-2" ]
      • インスタンス ID のリストを含むファイルをアップロードします。ファイルの内容は、インスタンス ID の配列にする必要があります(例: )。

        [ "instance-id-1", "instance-id-2" ]
    SC1 インスタンスをスキャンする [SC1 インスタンスをスキャンする] を選択して、これらのインスタンスを含めます。SC1 インスタンスはデフォルトで除外されます。SC1 インスタンスの詳細
    ST1 インスタンスをスキャンする [ST1 インスタンスをスキャンする] を選択して、これらのインスタンスを含めます。ST1 インスタンスはデフォルトで除外されます。ST1 インスタンスの詳細
    Elastic Container Registry(ECR)のスキャン [Elastic Container Registry インスタンスをスキャンする] を選択して、ECR に保存されているコンテナ イメージとそのインストール済みパッケージをスキャンします。Elastic Container Registry の詳細

    AWS CloudFormation テンプレートをデプロイする

    AWS コネクタを作成してから少なくとも 6 時間経過したら、次の手順を実施します。

    CloudFormation テンプレートをデプロイする方法の詳細については、AWS ドキュメントの CloudFormation コンソールからスタックを作成するをご覧ください。

    1. AWS Management Console の [AWS CloudFormation Template] ページに移動します。
    2. [Stacks] > [With new resources (standard)] をクリックします。
    3. [Create stack] ページで、[Choose an existing template] と [Upload a template file] を選択して、CloudFormation テンプレートをアップロードします。
    4. アップロードが完了したら、一意のスタック名を入力します。テンプレート内の他のパラメータは変更しないでください。
    5. [Specify stack details] を選択します。[Configure stack options] ページが開きます。
    6. [Permissions] で、前に作成した AWS ロールを選択します。
    7. メッセージが表示されたら、確認のチェックボックスをチェックします。
    8. [Submit] をクリックしてテンプレートをデプロイします。スタックの実行が開始されるまでに数分かかります。

    デプロイのステータスが AWS コンソールに表示されます。CloudFormation テンプレートのデプロイが失敗した場合は、トラブルシューティングをご覧ください。

    スキャンの開始後に脆弱性が検出されると、対応する検出結果が生成され、Google Cloud コンソールの Security Command Center の [検出結果] ページに表示されます。

    コンソールで検出結果を確認する

    AWS の脆弱性評価の検出結果は、 Google Cloud コンソールで確認できます。検出結果を表示するために必要な最小限の IAM ロールは、セキュリティ センターの検出閲覧者roles/securitycenter.findingsViewer)です。

    Google Cloud コンソールで AWS の脆弱性評価の検出結果を確認する手順は次のとおりです。

    1. Google Cloud コンソールで、Security Command Center の [検出結果] ページに移動します。

      [検出結果] に移動

    2. Google Cloud プロジェクトまたは組織を選択します。
    3. [クイック フィルタ] セクションの [ソースの表示名] サブセクションで、[EC2 脆弱性評価] を選択します。検出結果クエリの結果が更新され、このソースからの検出結果のみが表示されます。
    4. 特定の検出結果の詳細を表示するには、[カテゴリ] 列にある検出結果の名前をクリックします。検出結果の詳細パネルが開き、[概要] タブが表示されます。
    5. [概要] タブで、検出された内容、影響を受けるリソース、検出結果の修正手順(ある場合)など、検出結果の詳細を確認します。
    6. 省略可: 検出結果の完全な JSON 定義を表示するには、[JSON] タブをクリックします。

    トラブルシューティング

    脆弱性評価サービスを有効にしてもスキャンが実行されない場合は、次の点を確認してください。

    • AWS コネクタが正しく設定されていることを確認します。
    • CloudFormation テンプレート スタックが完全にデプロイされていることを確認します。AWS アカウントでのステータスは CREATION_COMPLETE になります。