Download OpenAPI specification:Download
The Otis service manages tuning options specified by a customer. The defined options are consumed by various services to operate in accordance with the customer's preferences.
An option is a container for the following properties:
The option ID is a hash calculated by the service based on the option name and scope combination. It is possible to define only one value for one unique scope.
A client can provide multiple option values with different scope. Consumers can use the resolve endpoint to find the most suitable option value for a target scope. If scope is missing then an option is applied on the account level.
Values can be provided on the deployment level and override the account level values, for example:
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"
}
The region level values have higher priority, for example:
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"region_key": "/aws/us-east-1"
}
The VPC level values have the highest priority, for example:
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
}
A value depends on the option name and can contain arbitrary JSON data. Please see the section Supported Options for information about valid option values.
The service provides the resolve endpoint that helps to find the most specific option value for the target scope in case of multiple values specified in different scope.
The algorithm consists of two parts:
For example, there are 3 values for the same option defined in the different scope:
scope/value | 1 | 2 | 3 |
account_id | 12345678 | 12345678 | 12345678 |
deployment_id | AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA | AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA | |
region_key | /aws/us-east-1 |
If the target scope is: {"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"}
then the value 2
wins because the value 3
is defined for the more narrow
scope and the value 1
has fewer matching scope properties.
A client is allowed to specify the following options:
This option tells an ABS agent to follow either internal-network scanning schedules or agent-based scanning schedules configured.
For example, a deployment may be configured to apply the same set of schedules defined for internal network scanning. In this case any existing agent-based scanning schedules are ignored.
{
"name": "abs_follow_internal_scan_schedules",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"
},
"value": true
}
By default, agent configurations are generated out of agent-based scanning
schedules, and the assumed value is false
if the option is undefined.
This option declares that a given scope is protected by remote IDS appliances from security infrastructure deployed inside another network. All agents running inside the protected scope connect to IDS appliances running in the protecting network.
A value is an object containing a deployment ID and and asset key of the assigned protecting network, for example, a protected network can be declared like this:
{
"name": "cross_network_protection",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": {
"deployment_id": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB"
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000002"
}
}
or some protected region can be declared as below:
{
"name": "cross_network_protection",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"region_key": "/aws/us-east-1"
},
"value": {
"deployment_id": "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB"
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000002"
}
}
This option specifies the number of discovery scans to be performed during a day.
The value can be either the string "automatic"
or an integer from [1
, 2
, 3
, 4
],
for example:
{
"name": "discovery_scan_frequency",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"
},
"value": 1
}
This option specifies the external scan frequency.
The value can be one of the strings ["automatic"
, "daily"
, "weekly"
, "monthly"
],
for example:
{
"name": "external_scan_frequency",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"
},
"value": "daily"
}
This option specifies an instance type that the installation services shall use to launch IDS appliances inside the defined scope. The option affects deployments in automatic mode only.
The value is a string containing a value from the following supported range:
type | size |
t3 | t3.medium, t3.large, t3.xlarge, t3.2xlarge |
m4 | m4.large, m4.xlarge, m4.2xlarge, m4.4xlarge, m4.10xlarge, m4.16xlarge |
m5 | m5.large, m5.xlarge, m5.2xlarge, m5.4xlarge, m5.12xlarge, m5.24xlarge |
c4 | c4.large, c4.xlarge, c4.2xlarge, c4.4xlarge, c4.8xlarge |
c5 | c5.large, c5.xlarge, c5.2xlarge, c5.4xlarge, c5.9xlarge, c5.18xlarge |
for example:
{
"name": "ids_appliance_instance_type",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": "c5.large"
}
The following instance types are used as defaults: c5.xlarge
, m5.xlarge
, c4.xlarge
depending on availability, if the option is not defined.
Please notice, this is a BETA option that may be a subject for change.
This option declares placement policy
for a selected scope. There are two
policies supported so far:
automatic
- placement managed by Alert Logic
By default, we deploy one IDS appliance per every inhabited availability zone inside a protected VPC. Useless appliances are removed, when there are no hosts inside availability zones. Also, one hot appliance is never terminated in one of availability zones for empty VPC.
Two flavors of automatic management supported now:
Automatic with maximum number of protected zones
A customer can protect some VPC by IDS appliances running in a limited number
of availability zones. An optional integer property max_zones
defines the
maximum number of zones allowed to have appliances inside. Security
infrastructure is removed from empty zones automatically.
For example:
{
"name": "ids_appliances_placement",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"
},
"value": {
"policy": "automatic",
"max_zones": 1
}
}
Automatic with a list of protected zones defined explicitly
A customer can also protect some VPC by appliances inside the specific
availability zones only. A policy option zone_keys
defines zones allowed
to deploy IDS appliances. Security infrastructure is automatically removed
from empty zones automatically.
For example:
{
"name": "ids_appliances_placement",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": {
"policy": "automatic",
"zone_keys": [
"/aws/us-east-1/zone/us-east-1a"
]
}
}
constant
- placement predefined by a customer
Sometimes customers know that there are availability zones with stable
infrastructure generating traffic, so IDS appliances should be deployed to the
preferred zones only and never removed regardless zone population. A policy
option zone_keys
defines zones where IDS appliances need to be deployed. Traffic
from the rest of availability zones will be handled by the appliances living in
the preferred zones.
For example:
{
"name": "ids_appliances_placement",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": {
"policy": "constant",
"zone_keys": [
"/aws/us-east-1/zone/us-east-1a",
"/aws/us-east-1/zone/us-east-1b"
]
}
}
Please notice, this is a BETA option that may be a subject for change.
The option affects AWS deployments in the automatic mode only.
This option declares IDS appliances scaling for a selected scope. The option
value is an object that specifies the desired policy. There are two policies
available so far, automatic
and constant
.
automatic
- the number of appliances adjusted automatically
Once it is selected, then auto-scaling groups in the protected zones will be automatically adjusted to the actual load (the number of agents collecting traffic) respecting the predefined limits.
For example:
{
"name": "ids_appliances_scaling",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": {
"policy": "automatic",
"max_instances": 3
}
}
If it is detected that all existing appliances inside the protected zone are
too close to overloaded state, a new IDS appliance is launched and existing
agents are rebalanced accordingly. The number of appliances can be limited
with extra options min_instances
affecting the lower boundary, and
max_instances
(8 by default) for the upper boundary. When it is detected
that some appliance is idle or its termination will not affect traffic
analysis, the useless appliance is terminated to save resources.
constant
- the constant number of appliances predefined in advance
Sometimes it is well known that there is a network with a stable load (the
number of agents collecting traffic) inside the protected infrastructure, so
the appropriate number of IDS appliances can be deployed to the preferred
zones and never scaled down. A policy option num_instances
defines the
number of appliances to be launched by the auto-scaling group inside every
protected zone.
For example:
{
"name": "ids_appliances_scaling",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": {
"policy": "constant",
"num_instances": 1
}
}
This option specifies additional tags to be associated with resources deployed automatically as parts of the IDS security infrastructure. The option affects AWS deployments in the automatic and guided mode only.
Please see security_resource_tags for details.
This option specifies the number of vulnerability scan jobs that can be performed concurrently by a scanner.
The value is an integer, for example:
{
"name": "max_vulnerability_scan_jobs",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"
},
"value": 10
}
This option specifies the number of discovery scan jobs that can be performed concurrently by a scanner.
The value is an integer, for example:
{
"name": "max_discovery_scan_jobs",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": 10
}
This option specifies for how long the statistics (log or IDS) should be 0 before joey declares a corresponding vulnerability.
The value is integer and specifies the time interval, in hours. Default (also the maximum) value is 24 hours.
For for example:
{
"name": "no_start_interval_min",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": 24
}
This option specifies what subnet shall be used as a security subnet by automatic installation services to deploy scan appliances. The option affects deployments in guided mode only.
The value is a string containing a subnet asset key, for example:
{
"name": "predefined_security_subnet",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": "/aws/us-east-1/subnet/subnet-00000001"
}
This option specifies an instance type that the installation services shall use to launch scan appliances inside the defined scope. The option affects deployments in automatic or guided mode only.
The value is a string containing a value from the following supported range:
type | size |
m3 | m3.medium |
t3 | t3.medium,t3.large |
c4 | c4.large |
c5 | c5.large,c5.xlarge |
for example:
{
"name": "scan_appliance_instance_type",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": "c5.large"
}
The following instance types are used as defaults: m3.medium
, c5.large
, c4.large
depending on availability, if the option is not defined.
This option specifies a scaling policy that deployment services shall follow launching scan appliances inside the protected scope. The option affects AWS deployments in automatic, guided and manual mode only.
The option value is an object that specifies the desired policy. There are two
policies available so far, automatic
and constant
.
If the policy automatic
is selected, then auto-scaling groups will be
automatically configured to run one scan appliance while not-scanned instances
found in the protected VPC, and scaled down to zero once all the targets are
scanned,
for example:
{
"name": "scan_appliances_scaling",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": {
"policy": "automatic"
}
}
If the policy constant
is set, then auto-scaling groups will be configured to
run the desired number of scan appliances and never scaled down, for example:
{
"name": "scan_appliances_scaling",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": {
"policy": "constant",
"num_instances": 1
}
}
By default, our deployment service follows the policy automatic
.
This option specifies additional tags to be associated with resources deployed automatically as parts of the Scan security infrastructure. The option affects AWS deployments in the automatic and guided mode only.
Please see security_resource_tags for details.
This option specifies a CIDR block to be assigned to a security subnet. A deployment service creates a security subnet in the protected VPC to deploy scan appliances, the created subnet is configured to use some free block of /28 size. Once the option is defined, the created security subnet will be configured with the predefined CIDR block. The option affects AWS deployments in the automatic mode only.
The value is a string specifying a CIDR block with the allowed netmask between
/16
and /28
, for example:
{
"name": "scan_security_subnet_cidr_block",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
},
"value": "10.0.1.0/28"
}
This option specifies additional tags to be associated with security resources deployed by deployment services. The option affects AWS deployments in the automatic and guided mode only.
The value is an array of objects specifying desired tag keys and values, for example:
{
"name": "security_resource_tags",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"
},
"value": [
{
"key": "Key",
"value": "Value"
}
]
}
All the list items must be unique. The maximum number of tags allowed is 30.
Also, the key prefix AlertLogic
is reserved and any prefixed tags will be rejected.
This option is a hint that IDS appliances detected in VPC must be configured as span port connected.
The value is boolean, for example:
{
"name": "span_port_enabled",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA",
"vpc_key": "/dc/network/BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB"
},
"value": true
}
This option specifies the vulnerability scan frequency.
The value can be one of the strings ["automatic"
, "daily"
, "weekly"
, "monthly"
],
for example:
{
"name": "vulnerability_scan_frequency",
"scope": {
"deployment_id": "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"
},
"value": "daily"
}
List protected networks
account_id required | string (AccountId) non-empty Example: 12345678 Alert Logic account ID |
deployment_id | string (DeploymentId) non-empty Example: deployment_id=FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF |
option_id | string (Uuid) ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{... Example: option_id=FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF UUID of an option item stored in the database |
vpc_key | string (VpcKey) non-empty Example: vpc_key=/aws/us-east-1/vpc/vpc-00000000000000001 |
[- {
- "account_id": "12345678",
- "deployment_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001",
- "option_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "protecting_network": {
- "account_id": "12345678",
- "deployment_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
}
}
]
List protecting networks
account_id required | string (AccountId) non-empty Example: 12345678 Alert Logic account ID |
deployment_id | string (DeploymentId) non-empty Example: deployment_id=FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF |
option_id | string (Uuid) ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{... Example: option_id=FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF UUID of an option item stored in the database |
vpc_key | string (VpcKey) non-empty Example: vpc_key=/aws/us-east-1/vpc/vpc-00000000000000001 |
[- {
- "account_id": "12345678",
- "deployment_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001",
- "option_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "protected_network": {
- "account_id": "12345678",
- "deployment_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
}
}
]
Create option.
account_id required | string (AccountId) non-empty Example: 12345678 Alert Logic account ID |
Create option request body
name | string Value: "abs_follow_internal_scan_schedules" |
value required | boolean |
required | object |
{- "name": "abs_follow_internal_scan_schedules",
- "value": true,
- "scope": {
- "deployment_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
}
}
{- "id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "name": "custom_routing",
- "value": true,
- "scope": {
- "deployment_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "region_key": "/aws/us-east-1",
- "vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
}
}
List options.
account_id required | string (AccountId) non-empty Example: 12345678 Alert Logic account ID |
[- {
- "id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "name": "custom_routing",
- "value": true,
- "scope": {
- "deployment_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "region_key": "/aws/us-east-1",
- "vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
}
}
]
Update option value
account_id required | string (AccountId) non-empty Example: 12345678 Alert Logic account ID |
option_id required | string (Uuid) ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{... Example: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF Otis option ID. |
Update option request body
name | string Value: "abs_follow_internal_scan_schedules" |
value required | boolean |
required | object |
{- "name": "abs_follow_internal_scan_schedules",
- "value": true,
- "scope": {
- "deployment_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF"
}
}
{- "value": "string"
}
Get option by id.
account_id required | string (AccountId) non-empty Example: 12345678 Alert Logic account ID |
option_id required | string (Uuid) ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{... Example: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF Otis option ID. |
{- "id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "name": "custom_routing",
- "value": true,
- "scope": {
- "deployment_id": "FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF",
- "region_key": "/aws/us-east-1",
- "vpc_key": "/aws/us-east-1/vpc/vpc-00000000000000001"
}
}
Delete option by id.
account_id required | string (AccountId) non-empty Example: 12345678 Alert Logic account ID |
option_id required | string (Uuid) ^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{... Example: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF Otis option ID. |