BatchUpdateFindings を使用して結果を更新する - AWS Security Hub

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

BatchUpdateFindings を使用して結果を更新する

BatchUpdateFindings アクションは、検出結果プロバイダーからの結果をお客様が処理する場合の情報を更新するために使用します。これは、お客様や、お客様の代行として動作する SIEM、チケット発券、インシデント管理、または SOAR ツールが使用します。BatchUpdateFindingsを使用して、 AWS セキュリティ結果フォーマット (ASFF) の特定のフィールドを更新できます。

BatchUpdateFindings を使用して、新しい検出結果を作成することはできません。これを使用すると、一度に 100 件までの検出結果を更新できます。

Security Hub BatchUpdateFindings は結果の更新リクエストを受信するたびに、Amazon Security Hub Findings - Importedで自動的にイベントを生成します EventBridge。「自動応答および自動修復」を参照してください。

BatchUpdateFindings は、結果の UpdatedAt フィールドを変更しません。UpdatedAt は、結果プロバイダーからの最新の更新のみを反映します。

BatchUpdateFindings の使用可能なフィールド

管理者アカウントは、>BatchUpdateFindings を使用して、自分のアカウントまたはメンバーアカウントの検出結果を更新できます。メンバーアカウントは、>BatchUpdateFindings を使用して、自分のアカウントの検出結果を更新できます。

お客様のみ > BatchUpdateFindings を使用して、以下のフィールドとオブジェクトを更新できます。

  • Confidence

  • Criticality

  • Note

  • RelatedFindings

  • Severity

  • Types

  • UserDefinedFields

  • VerificationState

  • Workflow

デフォルトでは、管理者アカウントとメンバーアカウントは、上記のすべてのフィールドとフィールド値にアクセスできます。Security Hub では、フィールドとフィールド値へのアクセスを制限するためのコンテキストキーも提供されています。

例えば、メンバーアカウントが Workflow.StatusRESOLVED のみに設定できるようにする場合などです。または、メンバーアカウントに Severity.Label の変更を許可したくない場合などもあります。

BatchUpdateFindings へのアクセスの設定

IAM ポリシーを設定してアクセスを制限し、フィールドとフィールド値を更新するための BatchUpdateFindings の使用を制限できます。

BatchUpdateFindings へのアクセスを制限するステートメントで、以下の値を使用します:

  • Actionsecurityhub:BatchUpdateFindings

  • EffectDeny

  • Condition では、以下に基づいて BatchUpdateFindings リクエストを拒否できます。

    • 結果に特定のフィールドが含まれる。

    • 結果に特定のフィールド値が含まれる。

条件キー

これらは、BatchUpdateFindings へのアクセスを制限するための条件キーです。

ASFF フィールド

ASFF フィールドの条件キーは以下のとおりです:

securityhub:ASFFSyntaxPath/<fieldName>

<fieldName> を ASFF フィールドで置き換えます。BatchUpdateFindings へのアクセスを設定する場合は、1 つの親レベルのフィールドではなく、IAM ポリシーに 1 つ以上の特定の ASFF フィールドを含めます。例えば、Workflow.Status フィールドへのアクセスを制限するには、Workflow 親レベルフィールドの代わりに securityhub:ASFFSyntaxPath/Workflow.Status をポリシーに含める必要があります。

フィールドに対するすべての更新を禁止する

ユーザーが特定のフィールドを更新できないようにするには、以下のような条件を使用します。

"Condition": { "Null": { "securityhub:ASFFSyntaxPath/<fieldName>": "false" } }

例えば、以下のステートメントは、BatchUpdateFindings を使用してワークフローの状態を更新できないことを示しています。

{ "Sid": "VisualEditor0", "Effect": "Deny", "Action": "securityhub:BatchUpdateFindings", "Resource": "*", "Condition": { "Null": { "securityhub:ASFFSyntaxPath/Workflow.Status": "false" } } }

特定のフィールド値の許可を禁止する

ユーザーがフィールドを特定の値に設定できないようにするには、以下のような条件を使用します:

"Condition": { "StringEquals": { "securityhub:ASFFSyntaxPath/<fieldName>": "<fieldValue>" } }

例えば、以下のステートメントは、BatchUpdateFindings を使用して Workflow.StatusSUPPRESSED を設定できないことを示しています。

{ "Sid": "VisualEditor0", "Effect": "Deny", "Action": "securityhub:BatchUpdateFindings", "Resource": "*", "Condition": { "StringEquals": { "securityhub:ASFFSyntaxPath/Workflow.Status": "SUPPRESSED" } }

許可されていない値のリストを提供することもできます。

"Condition": { "StringEquals": { "securityhub:ASFFSyntaxPath/<fieldName>": [ "<fieldValue1>", "<fieldValue2>", "<fieldValuen>" ] } }

例えば、以下のステートメントは、BatchUpdateFindings を使用して Workflow.StatusRESOLVED または SUPPRESSED に設定できないことを示しています。

{ "Sid": "VisualEditor0", "Effect": "Deny", "Action": "securityhub:BatchUpdateFindings", "Resource": "*", "Condition": { "StringEquals": { "securityhub:ASFFSyntaxPath/Workflow.Status": [ "RESOLVED", "NOTIFIED" ] } }

batch-update-findingsのコマンドを使用する AWS CLI

では AWS Command Line Interface、batch-update-findingsコマンドを使用して結果を更新します。

更新する各検出結果に対して、検出結果を生成した製品の検出結果 ID と ARN の両方を提供します。

--finding-identifiers ID="<findingID1>",ProductArn="<productARN>" ID="<findingID2>",ProductArn="<productARN2>"

更新する属性を提供するときは、JSON 形式またはショートカット形式のどちらかを使用できます。

以下は、JSON 形式を使用する Note オブジェクトの更新例です。

--note '{"Text": "Known issue that is not a risk.", "UpdatedBy": "user1"}'

以下は、同じ更新をショートカット形式を使用した場合の例です。

--note Text="Known issue that is not a risk.",UpdatedBy="user1"

AWS CLI コマンドリファレンスには、各フィールドの JSON とショートカットの構文が記載されています。

以下の > batch-update-findings 例では、2 つの結果を更新して、メモを追加し、重要度ラベルを変更してから、それらを解決します。

aws securityhub batch-update-findings --finding-identifiers Id="arn:aws:securityhub:us-west-1:123456789012:subscription/pci-dss/v/3.2.1/PCI.Lambda.2/finding/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",ProductArn="arn:aws:securityhub:us-west-2::product/aws/securityhub" Id="arn:aws:securityhub:us-west-1:123456789012:subscription/pci-dss/v/3.2.1/PCI.Lambda.2/finding/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",ProductArn="arn:aws:securityhub:us-west-1::product/aws/securityhub" --note '{"Text": "Known issue that is not a risk.", "UpdatedBy": "user1"}' --severity '{"Label": "LOW"}' --workflow '{"Status": "RESOLVED"}'

これは同じ例ですが、JSON の代わりにショートカットを使用しています。

aws securityhub batch-update-findings --finding-identifiers Id="arn:aws:securityhub:us-west-1:123456789012:subscription/pci-dss/v/3.2.1/PCI.Lambda.2/finding/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",ProductArn="arn:aws:securityhub:us-west-1::product/aws/securityhub" Id="arn:aws:securityhub:us-west-1:123456789012:subscription/pci-dss/v/3.2.1/PCI.Lambda.2/finding/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222",ProductArn="arn:aws:securityhub:us-west-1::product/aws/securityhub" --note Text="Known issue that is not a risk.",UpdatedBy="user1" --severity Label="LOW" --workflow Status="RESOLVED"