Amazon Security Lake · Arazzo Workflow

Amazon Security Lake Register Custom Source

Version 1.0.0

Register a third-party custom log source and confirm it appears in the source list.

1 workflow 1 source API 1 provider
View Spec View on GitHub Data LakeSecuritySIEMThreat DetectionArazzoWorkflows

Provider

amazon-security-lake

Workflows

register-custom-source
Create a custom log source and verify it is registered in the region.
Adds a third-party custom log source with its configuration, branches on the returned source status, and lists log sources to confirm the custom source is registered.
2 steps inputs: configuration, sourceName, sourceVersion outputs: sourceName, sourceStatus, sources
1
createCustomLogSource
CreateCustomLogSource
Register the third-party custom source so Amazon Security Lake can store its log data.
2
listLogSources
ListLogSources
List the log sources in the current region to confirm the custom source has been registered.

Source API Descriptions

Arazzo Workflow Specification

amazon-security-lake-register-custom-source-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Security Lake Register Custom Source
  summary: Register a third-party custom log source and confirm it appears in the source list.
  description: >-
    Registers a third-party custom source in Amazon Security Lake so external
    log data can be stored in OCSF form, then confirms it is in place. The
    workflow creates the custom log source with its provider configuration,
    captures the returned source name, version, and status, branches on whether
    the source came back active, and lists the region's log sources to confirm
    the custom source is registered. Every 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: securityLakeApi
  url: ../openapi/amazon-security-lake-openapi.yml
  type: openapi
workflows:
- workflowId: register-custom-source
  summary: Create a custom log source and verify it is registered in the region.
  description: >-
    Adds a third-party custom log source with its configuration, branches on the
    returned source status, and lists log sources to confirm the custom source
    is registered.
  inputs:
    type: object
    required:
    - sourceName
    - configuration
    properties:
      sourceName:
        type: string
        description: The name of the custom log source to register.
      sourceVersion:
        type: string
        description: The version of the custom log source.
      configuration:
        type: object
        description: The provider and access configuration for the custom log source.
  steps:
  - stepId: createCustomLogSource
    description: >-
      Register the third-party custom source so Amazon Security Lake can store
      its log data.
    operationId: CreateCustomLogSource
    requestBody:
      contentType: application/json
      payload:
        sourceName: $inputs.sourceName
        sourceVersion: $inputs.sourceVersion
        configuration: $inputs.configuration
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      sourceName: $response.body#/sourceName
      sourceVersion: $response.body#/sourceVersion
      sourceStatus: $response.body#/sourceStatus
    onSuccess:
    - name: sourceActive
      type: goto
      stepId: listLogSources
      criteria:
      - context: $response.body
        condition: $.sourceStatus == "ACTIVE"
        type: jsonpath
    - name: sourcePending
      type: goto
      stepId: listLogSources
      criteria:
      - context: $response.body
        condition: $.sourceStatus == "PENDING"
        type: jsonpath
  - stepId: listLogSources
    description: >-
      List the log sources in the current region to confirm the custom source
      has been registered.
    operationId: ListLogSources
    parameters:
    - name: maxResults
      in: query
      value: 50
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      sources: $response.body#/sources
      nextToken: $response.body#/nextToken
  outputs:
    sourceName: $steps.createCustomLogSource.outputs.sourceName
    sourceStatus: $steps.createCustomLogSource.outputs.sourceStatus
    sources: $steps.listLogSources.outputs.sources