./HAVOC DynamoDB Tables

Details about AWS DynamoDB Tables created in a ./HAVOC deployment

When creating a new ./HAVOC deployment, a series DynamoDB Tables are created in your AWS account. Below is a list of the DynamoDB Tables that are created.

The Terraform configuration file that is used to create the DynamoDB Tables is available here: https://github.com/havocsh/havoc/blob/main/havoc_deploy/aws/terraform/dynamodb.tf

Authorizer DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-authorizer

Key Attributes

  • Hash Key: user_id (String)
  • Secondary Index: ApiKeyIndex (Hash Key: api_key, Projection Type: ALL)

This table stores user authorization data and allows for fast lookups based on user IDs and API keys.

Deployment DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-deployment

Key Attributes

  • Hash Key: deployment_name (String)

This table stores deployment-specific information, primarily the deployment name.

Domains DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-domains

Key Attributes

  • Hash Key: domain_name (String)

This table stores information about domains used in the ./HAVOC deployment, including domain names and hosted zones.

Playbooks DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-playbooks

Key Attributes

  • Hash Key: playbook_name (String)

This table stores ./HAVOC playbooks and their versions.

Playbook Types DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-playbook-types

Key Attributes

  • Hash Key: playbook_type (String)

This table stores information about ./HAVOC playbook types.

Portgroups DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-portgroups

Key Attributes

  • Hash Key: portgroup_name (String)

This table stores portgroup information for the ./HAVOC deployment.

Task Types DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-task-types

Key Attributes

  • Hash Key: task_type (String)

This table stores information about different task types supported by the ./HAVOC application, including their capabilities and source images.

Tasks DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-tasks

Key Attributes

  • Hash Key: task_name (String)
  • Range Key: run_time (Number)

This table stores information about tasks in the ./HAVOC application, including their names and run times. It is used to manage task execution.

Triggers DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-triggers

Key Attributes

  • Hash Key: trigger_name (String)
  • Range Key: run_time (Number)

This table stores information about triggers in the ./HAVOC application, including their names and run times. It is used to manage trigger execution.

Workspace Access DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-workspace-access

Key Attributes

  • Hash Key: object_access (String)
  • Range Key: create_time (Number)

This table manages access to workspace objects, including their creation and expiration times.

Terraform Locks DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-terraform-state-locks

Key Attributes

  • Hash Key: LockID (String)

This table is used to manage state locks for Terraform deployments.

Task Queue DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-task-queue

Key Attributes

  • Hash Key: task_name (String)
  • Range Key: run_time (Number)

This table manages the queue of tasks to be executed, including their names and run times.

Playbook Queue DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-playbook-queue

Key Attributes

  • Hash Key: playbook_name (String)
  • Range Key: run_time (Number)

This table manages the queue of playbooks to be executed, including their names and run times.

Trigger Queue DynamoDB Table

Table Name

  • Name: ${var.deployment_name}-trigger-queue

Key Attributes

  • Hash Key: trigger_name (String)
  • Range Key: run_time (Number)

This table manages the queue of triggers to be executed, including their names and run times.

These DynamoDB tables are crucial for storing and managing data and configuration details for the ./HAVOC application.