Amazon Security Hub · Arazzo Workflow

Amazon Security Hub Triage and Update Findings

Version 1.0.0

Retrieve high-severity findings and update them by re-importing the modified records.

1 workflow 1 source API 1 provider
View Spec View on GitHub ComplianceMonitoringSecurityArazzoWorkflows

Provider

amazon-security-hub

Workflows

triage-and-update-findings
Get findings by severity, then update them via re-import.
Retrieves findings filtered by severity label and compliance status, then re-imports the supplied set of updated findings to apply new workflow and severity values.
2 steps inputs: complianceStatus, maxResults, severityLabel, updatedFindings outputs: failedCount, reviewedFindings, successCount
1
getFindings
GetFindings
Query Security Hub for findings matching the requested severity label and compliance status so they can be reviewed before updating.
2
updateFindings
BatchImportFindings
Re-import the supplied finding objects with their revised workflow status and severity so Security Hub applies the updated attributes.

Source API Descriptions

Arazzo Workflow Specification

amazon-security-hub-triage-and-update-findings-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Security Hub Triage and Update Findings
  summary: Retrieve high-severity findings and update them by re-importing the modified records.
  description: >-
    A findings triage loop. The workflow queries Security Hub for findings that
    match a severity filter, then updates the matched findings by re-importing
    them through the batch import operation with revised workflow status and
    severity fields. The specification exposes batch import rather than a
    dedicated batch update operation, so the supported update path is to
    re-import the same finding identifiers with the changed attributes; this
    adaptation is noted here. Each step spells out its request inline so the
    flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: securityHubApi
  url: ../openapi/amazon-security-hub-openapi.yml
  type: openapi
workflows:
- workflowId: triage-and-update-findings
  summary: Get findings by severity, then update them via re-import.
  description: >-
    Retrieves findings filtered by severity label and compliance status, then
    re-imports the supplied set of updated findings to apply new workflow and
    severity values.
  inputs:
    type: object
    required:
    - severityLabel
    - updatedFindings
    properties:
      severityLabel:
        type: string
        description: The severity label value used to filter the returned findings.
      complianceStatus:
        type: string
        description: The compliance status value used to further filter the returned findings.
        default: FAILED
      maxResults:
        type: integer
        description: The maximum number of findings to return.
        default: 100
      updatedFindings:
        type: array
        description: The list of ASFF finding objects, with revised fields, to re-import.
        items:
          type: object
  steps:
  - stepId: getFindings
    description: >-
      Query Security Hub for findings matching the requested severity label and
      compliance status so they can be reviewed before updating.
    operationId: GetFindings
    requestBody:
      contentType: application/json
      payload:
        Filters:
          SeverityLabel:
          - Value: $inputs.severityLabel
            Comparison: EQUALS
          ComplianceStatus:
          - Value: $inputs.complianceStatus
            Comparison: EQUALS
        MaxResults: $inputs.maxResults
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      findings: $response.body#/Findings
      firstFindingId: $response.body#/Findings/0/Id
      nextToken: $response.body#/NextToken
  - stepId: updateFindings
    description: >-
      Re-import the supplied finding objects with their revised workflow status
      and severity so Security Hub applies the updated attributes.
    operationId: BatchImportFindings
    requestBody:
      contentType: application/json
      payload:
        Findings: $inputs.updatedFindings
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      successCount: $response.body#/SuccessCount
      failedCount: $response.body#/FailedCount
      failedFindings: $response.body#/FailedFindings
  outputs:
    reviewedFindings: $steps.getFindings.outputs.findings
    successCount: $steps.updateFindings.outputs.successCount
    failedCount: $steps.updateFindings.outputs.failedCount