Terraform Plan mapping
This mapping configuration only applies to Terraform Plan Processor.
Please refer to another mapping file configuration documentation if needed. You can locate each processor's documentation in the left menu under the "StartLeft Processors (SLP)" section.
A source mapping file (or 'mapping file' for short) describes how to find and map components and Trust Zones in source file data structures.
This mapping file is divided into three sections:
trustzones.components.configuration.
Mapping Trust Zones
Trust zones are the different areas within which components are located. They define how trustworthy an area is, based on how accessible it is: the more accessible, the less trustworthy.
The OTM standard defines that every component in the threat model must have a parent.
Although this concept could be confusing as Terraform only defines Infrastructure, all the resources are situated inside a Public Cloud which is represented by a Trust Zone with a certain trustworthy level.
The Default Trust Zone
All the components existing as resources in the Terraform Plan will be associated with this Trust Zone.
This Trust Zone is marked as $default: True and its existence is mandatory
The Internet Trust Zone
This Optional Trust Zone is used to define the Internet Attack Surface, which contains all the components outside the Public Cloud but with the ability to connect with it.
Mapping Components
This processor can map all the resources inside the Terraform Plan file into components.
A mapping list must be defined in the components section to find and configure the mapping behavior.
Mapping by Resource Type
This configuration sets all the resources of type aws_vpc to components of type vpc
Mapping by a list of Resource Types
This configuration sets all the resources of type aws_lb or aws_elb or aws_alb to components of type load-balancer
Mapping as a Singleton
This configuration maps all the available components of type aws_cloudwatch_metric_alarm to a
unique component of type cloudwatch.
The $category is used to name the group of components in the Threat Model.
Mapping by a Regex
This configuration maps all the components whose type matches the regex ^aws_api_gateway\w*$.
It may be used along $singleton to create a unique component of type api-gateway
The $category is used to name the group of components in the Threat Model.
Mapping Configuration
All the configurations are optional.
Attack Surface
This configuration is used to define the Internet Attack Surface.
It sets a trustzone containing the client which has dataflow connections with resources inside the Public Cloud.
Skip
This configuration defines a list of resources that will never be mapped.
Catch All
This configuration defines a default component to map all the resources not skipped or mapped.