Amazon Lake Formation · Arazzo Workflow

Amazon Lake Formation Audit Resource Permissions

Version 1.0.0

Enumerate registered data lake locations and list the permissions on a selected resource.

1 workflow 1 source API 1 provider
View Spec View on GitHub Access ControlAnalyticsData GovernanceData LakeS3ArazzoWorkflows

Provider

amazon-lake-formation

Workflows

audit-resource-permissions
Inventory registered locations and audit permissions on a selected resource.
Lists registered data lake locations, describes a target location, and lists the permissions on a Data Catalog resource for an access review.
3 steps inputs: principal, resource, resourceArn outputs: principalResourcePermissions, resourceInfo, resourceInfoList
1
listResources
ListResources
List all resources currently registered with Lake Formation to establish the audit scope.
2
describeResource
DescribeResource
Describe the target registered location to capture its current data access role.
3
listPermissions
ListPermissions
List the principal permissions on the Data Catalog resource for the access review.

Source API Descriptions

Arazzo Workflow Specification

amazon-lake-formation-audit-resource-permissions-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Lake Formation Audit Resource Permissions
  summary: Enumerate registered data lake locations and list the permissions on a selected resource.
  description: >-
    A read-only governance audit flow. The workflow lists every resource
    registered with Lake Formation, describes the resource the auditor is
    interested in to capture its data access role, and lists the principal
    permissions on a Data Catalog resource so an access review can be performed.
    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: lakeFormationApi
  url: ../openapi/amazon-lake-formation-openapi.yml
  type: openapi
workflows:
- workflowId: audit-resource-permissions
  summary: Inventory registered locations and audit permissions on a selected resource.
  description: >-
    Lists registered data lake locations, describes a target location, and lists
    the permissions on a Data Catalog resource for an access review.
  inputs:
    type: object
    required:
    - resourceArn
    - resource
    properties:
      resourceArn:
        type: string
        description: The ARN of the registered data lake location to describe.
      resource:
        type: object
        description: The Data Catalog Resource whose permissions are being audited.
      principal:
        type: object
        description: Optional principal to scope the permission listing to a single identity.
  steps:
  - stepId: listResources
    description: >-
      List all resources currently registered with Lake Formation to establish
      the audit scope.
    operationId: ListResources
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      resourceInfoList: $response.body#/ResourceInfoList
  - stepId: describeResource
    description: >-
      Describe the target registered location to capture its current data
      access role.
    operationId: DescribeResource
    parameters:
    - name: resourceArn
      in: path
      value: $inputs.resourceArn
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      resourceInfo: $response.body#/ResourceInfo
  - stepId: listPermissions
    description: >-
      List the principal permissions on the Data Catalog resource for the access
      review.
    operationId: ListPermissions
    requestBody:
      contentType: application/json
      payload:
        Principal: $inputs.principal
        Resource: $inputs.resource
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      principalResourcePermissions: $response.body#/PrincipalResourcePermissions
  outputs:
    resourceInfoList: $steps.listResources.outputs.resourceInfoList
    resourceInfo: $steps.describeResource.outputs.resourceInfo
    principalResourcePermissions: $steps.listPermissions.outputs.principalResourcePermissions