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

このページでは、Amazon Web Services(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 colunn 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. lambda メニューで Service or Use Case を選択します
    3. 次の権限ポリシーを追加します。
      • AmazonSSMManagedInstanceCore
      • AWSLambdaBasicExecutionRole
      • AWSLambdaVPCAccessExecutionRole
    4. [権限を追加] > [インライン ポリシーを作成] をクリックして、新しい権限ポリシーを作成します。
      1. 次のページを開き、AWS の脆弱性評価のロールポリシーをコピーします。
      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. [Amazon Web Services] タブを選択します。

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

    7. [AWS コネクタ] セクションで、ステータスに [AWS コネクタが追加されている] と表示されていることを確認します。ステータスに [AWS コネクタが追加されていない] と表示されている場合は、[AWS コネクタを追加] をクリックします。次のステップに進む前に、脆弱性の検出とリスク評価のために AWS に接続するの手順を完了します。

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

    9. [スキャン設定] セクションで、[CloudFormation テンプレートをダウンロード] をクリックします。JSON テンプレートがワークステーションにダウンロードされます。脆弱性をスキャンする必要がある各 AWS アカウントにテンプレートをデプロイする必要があります。

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

    このセクションでは、AWS リソースのスキャンをカスタマイズするために使用できるオプションについて説明します。これらのカスタム オプションは、AWS の脆弱性評価スキャンを編集するときに [Scan settings for AWS compute and storage] セクションにあります。

    最大 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 インスタンスの詳細

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

    1. AWS Management Console の [AWS CloudFormation テンプレート] ページに移動します。
    2. [Stacks] > [With new resources (standard)] をクリックします。
    3. [Create stack] ページで、[Choose an existing template] を選択し、[Upload a template file] をクリックして CloudFormation テンプレートをアップロードします。
    4. アップロードが完了したら、一意のスタック名を入力します。テンプレートの他のパラメータは変更しないでください。
    5. [スタックの詳細を指定] を選択します。[Configure stack options] ページが開きます。
    6. [権限] で、前に作成した IAM Vulnerability Assessment Role を選択します。
    7. [次へ] をクリックします。
    8. 確認のチェックボックスをオンにします。
    9. [送信] をクリックしてテンプレートをデプロイします。スタックの実行が開始されるまでに数分かかります。

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

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

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

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

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

    Google Cloud コンソール

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

      [検出結果] に移動

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

    Security Operations コンソール

    1. Security Operations コンソールで、[検出結果] ページに移動します。
      https://CUSTOMER_SUBDOMAIN.backstory.chronicle.security/posture/findings
      

      CUSTOMER_SUBDOMAIN は、お客様固有の ID に置き換えます。

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

    トラブルシューティング

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

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