SecurityHub / Client / create_automation_rule_v2
create_automation_rule_v2¶
- SecurityHub.Client.create_automation_rule_v2(**kwargs)¶
Creates a V2 automation rule. This API is in private preview and subject to change.
See also: AWS API Documentation
Request Syntax
response = client.create_automation_rule_v2( RuleName='string', RuleStatus='ENABLED'|'DISABLED', Description='string', RuleOrder=..., Criteria={ 'OcsfFindingCriteria': { 'CompositeFilters': [ { 'StringFilters': [ { 'FieldName': 'metadata.uid'|'activity_name'|'cloud.account.uid'|'cloud.provider'|'cloud.region'|'compliance.assessments.category'|'compliance.assessments.name'|'compliance.control'|'compliance.status'|'compliance.standards'|'finding_info.desc'|'finding_info.src_url'|'finding_info.title'|'finding_info.types'|'finding_info.uid'|'finding_info.related_events.uid'|'finding_info.related_events.product.uid'|'finding_info.related_events.title'|'metadata.product.name'|'metadata.product.uid'|'metadata.product.vendor_name'|'remediation.desc'|'remediation.references'|'resources.cloud_partition'|'resources.region'|'resources.type'|'resources.uid'|'severity'|'status'|'comment'|'vulnerabilities.fix_coverage'|'class_name', 'Filter': { 'Value': 'string', 'Comparison': 'EQUALS'|'PREFIX'|'NOT_EQUALS'|'PREFIX_NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'|'CONTAINS_WORD' } }, ], 'DateFilters': [ { 'FieldName': 'finding_info.created_time_dt'|'finding_info.first_seen_time_dt'|'finding_info.last_seen_time_dt'|'finding_info.modified_time_dt', 'Filter': { 'Start': 'string', 'End': 'string', 'DateRange': { 'Value': 123, 'Unit': 'DAYS' } } }, ], 'BooleanFilters': [ { 'FieldName': 'compliance.assessments.meets_criteria'|'vulnerabilities.is_exploit_available'|'vulnerabilities.is_fix_available', 'Filter': { 'Value': True|False } }, ], 'NumberFilters': [ { 'FieldName': 'activity_id'|'compliance.status_id'|'confidence_score'|'severity_id'|'status_id'|'finding_info.related_events_count', 'Filter': { 'Gte': 123.0, 'Lte': 123.0, 'Eq': 123.0, 'Gt': 123.0, 'Lt': 123.0 } }, ], 'MapFilters': [ { 'FieldName': 'resources.tags', 'Filter': { 'Key': 'string', 'Value': 'string', 'Comparison': 'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS' } }, ], 'Operator': 'AND'|'OR' }, ], 'CompositeOperator': 'AND'|'OR' } }, Actions=[ { 'Type': 'FINDING_FIELDS_UPDATE'|'EXTERNAL_INTEGRATION', 'FindingFieldsUpdate': { 'SeverityId': 123, 'Comment': 'string', 'StatusId': 123 }, 'ExternalIntegrationConfiguration': { 'ConnectorArn': 'string' } }, ], Tags={ 'string': 'string' }, ClientToken='string' )
- Parameters:
RuleName (string) –
[REQUIRED]
The name of the V2 automation rule.
RuleStatus (string) – The status of the V2 automation rule.
Description (string) –
[REQUIRED]
A description of the V2 automation rule.
RuleOrder (float) –
[REQUIRED]
The value for the rule priority.
Criteria (dict) –
[REQUIRED]
The filtering type and configuration of the automation rule.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:
OcsfFindingCriteria
.OcsfFindingCriteria (dict) –
The filtering conditions that align with OCSF standards.
CompositeFilters (list) –
Enables the creation of complex filtering conditions by combining filter criteria.
(dict) –
Enables the creation of filtering criteria for security findings.
StringFilters (list) –
Enables filtering based on string field values.
(dict) –
Enables filtering of security findings based on string field values in OCSF.
FieldName (string) –
The name of the field.
Filter (dict) –
A string filter for filtering Security Hub findings.
Value (string) –
The string filter value. Filter values are case sensitive. For example, the product name for control-based findings is
Security Hub
. If you providesecurity hub
as the filter value, there’s no match.Comparison (string) –
The condition to apply to a string value when filtering Security Hub findings.
To search for values that have the filter value, use one of the following comparison operators:
To search for values that include the filter value, use
CONTAINS
. For example, the filterTitle CONTAINS CloudFront
matches findings that have aTitle
that includes the string CloudFront.To search for values that exactly match the filter value, use
EQUALS
. For example, the filterAwsAccountId EQUALS 123456789012
only matches findings that have an account ID of123456789012
.To search for values that start with the filter value, use
PREFIX
. For example, the filterResourceRegion PREFIX us
matches findings that have aResourceRegion
that starts withus
. AResourceRegion
that starts with a different value, such asaf
,ap
, orca
, doesn’t match.
CONTAINS
,EQUALS
, andPREFIX
filters on the same field are joined byOR
. A finding matches if it matches any one of those filters. For example, the filtersTitle CONTAINS CloudFront OR Title CONTAINS CloudWatch
match a finding that includes eitherCloudFront
,CloudWatch
, or both strings in the title.To search for values that don’t have the filter value, use one of the following comparison operators:
To search for values that exclude the filter value, use
NOT_CONTAINS
. For example, the filterTitle NOT_CONTAINS CloudFront
matches findings that have aTitle
that excludes the string CloudFront.To search for values other than the filter value, use
NOT_EQUALS
. For example, the filterAwsAccountId NOT_EQUALS 123456789012
only matches findings that have an account ID other than123456789012
.To search for values that don’t start with the filter value, use
PREFIX_NOT_EQUALS
. For example, the filterResourceRegion PREFIX_NOT_EQUALS us
matches findings with aResourceRegion
that starts with a value other thanus
.
NOT_CONTAINS
,NOT_EQUALS
, andPREFIX_NOT_EQUALS
filters on the same field are joined byAND
. A finding matches only if it matches all of those filters. For example, the filtersTitle NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch
match a finding that excludes bothCloudFront
andCloudWatch
in the title.You can’t have both a
CONTAINS
filter and aNOT_CONTAINS
filter on the same field. Similarly, you can’t provide both anEQUALS
filter and aNOT_EQUALS
orPREFIX_NOT_EQUALS
filter on the same field. Combining filters in this way returns an error.CONTAINS
filters can only be used with otherCONTAINS
filters.NOT_CONTAINS
filters can only be used with otherNOT_CONTAINS
filters.You can combine
PREFIX
filters withNOT_EQUALS
orPREFIX_NOT_EQUALS
filters for the same field. Security Hub first processes thePREFIX
filters, and then theNOT_EQUALS
orPREFIX_NOT_EQUALS
filters.For example, for the following filters, Security Hub first identifies findings that have resource types that start with either
AwsIam
orAwsEc2
. It then excludes findings that have a resource type ofAwsIamPolicy
and findings that have a resource type ofAwsEc2NetworkInterface
.ResourceType PREFIX AwsIam
ResourceType PREFIX AwsEc2
ResourceType NOT_EQUALS AwsIamPolicy
ResourceType NOT_EQUALS AwsEc2NetworkInterface
CONTAINS
andNOT_CONTAINS
operators can be used only with automation rules V1.CONTAINS_WORD
operator is only supported inGetFindingsV2
,GetFindingStatisticsV2
,GetResourcesV2
, andGetResourceStatisticsV2
APIs. For more information, see Automation rules in the Security Hub User Guide.
DateFilters (list) –
Enables filtering based on date and timestamp fields.
(dict) –
Enables filtering of security findings based on date and timestamp fields in OCSF.
FieldName (string) –
The name of the field.
Filter (dict) –
A date filter for querying findings.
Start (string) –
A timestamp that provides the start date for the date filter.
For more information about the validation and formatting of timestamp fields in Security Hub, see Timestamps.
End (string) –
A timestamp that provides the end date for the date filter.
For more information about the validation and formatting of timestamp fields in Security Hub, see Timestamps.
DateRange (dict) –
A date range for the date filter.
Value (integer) –
A date range value for the date filter.
Unit (string) –
A date range unit for the date filter.
BooleanFilters (list) –
Enables filtering based on boolean field values.
(dict) –
Enables filtering of security findings based on boolean field values in OCSF.
FieldName (string) –
The name of the field.
Filter (dict) –
Boolean filter for querying findings.
Value (boolean) –
The value of the boolean.
NumberFilters (list) –
Enables filtering based on numerical field values.
(dict) –
Enables filtering of security findings based on numerical field values in OCSF.
FieldName (string) –
The name of the field.
Filter (dict) –
A number filter for querying findings.
Gte (float) –
The greater-than-equal condition to be applied to a single field when querying for findings.
Lte (float) –
The less-than-equal condition to be applied to a single field when querying for findings.
Eq (float) –
The equal-to condition to be applied to a single field when querying for findings.
Gt (float) –
The greater-than condition to be applied to a single field when querying for findings.
Lt (float) –
The less-than condition to be applied to a single field when querying for findings.
MapFilters (list) –
Enables filtering based on map field values.
(dict) –
Enables filtering of security findings based on map field values in OCSF.
FieldName (string) –
The name of the field.
Filter (dict) –
A map filter for filtering Security Hub findings. Each map filter provides the field to check for, the value to check for, and the comparison operator.
Key (string) –
The key of the map filter. For example, for
ResourceTags
,Key
identifies the name of the tag. ForUserDefinedFields
,Key
is the name of the field.Value (string) –
The value for the key in the map filter. Filter values are case sensitive. For example, one of the values for a tag called
Department
might beSecurity
. If you providesecurity
as the filter value, then there’s no match.Comparison (string) –
The condition to apply to the key value when filtering Security Hub findings with a map filter.
To search for values that have the filter value, use one of the following comparison operators:
To search for values that include the filter value, use
CONTAINS
. For example, for theResourceTags
field, the filterDepartment CONTAINS Security
matches findings that include the valueSecurity
for theDepartment
tag. In the same example, a finding with a value ofSecurity team
for theDepartment
tag is a match.To search for values that exactly match the filter value, use
EQUALS
. For example, for theResourceTags
field, the filterDepartment EQUALS Security
matches findings that have the valueSecurity
for theDepartment
tag.
CONTAINS
andEQUALS
filters on the same field are joined byOR
. A finding matches if it matches any one of those filters. For example, the filtersDepartment CONTAINS Security OR Department CONTAINS Finance
match a finding that includes eitherSecurity
,Finance
, or both values.To search for values that don’t have the filter value, use one of the following comparison operators:
To search for values that exclude the filter value, use
NOT_CONTAINS
. For example, for theResourceTags
field, the filterDepartment NOT_CONTAINS Finance
matches findings that exclude the valueFinance
for theDepartment
tag.To search for values other than the filter value, use
NOT_EQUALS
. For example, for theResourceTags
field, the filterDepartment NOT_EQUALS Finance
matches findings that don’t have the valueFinance
for theDepartment
tag.
NOT_CONTAINS
andNOT_EQUALS
filters on the same field are joined byAND
. A finding matches only if it matches all of those filters. For example, the filtersDepartment NOT_CONTAINS Security AND Department NOT_CONTAINS Finance
match a finding that excludes both theSecurity
andFinance
values.CONTAINS
filters can only be used with otherCONTAINS
filters.NOT_CONTAINS
filters can only be used with otherNOT_CONTAINS
filters.You can’t have both a
CONTAINS
filter and aNOT_CONTAINS
filter on the same field. Similarly, you can’t have both anEQUALS
filter and aNOT_EQUALS
filter on the same field. Combining filters in this way returns an error.CONTAINS
andNOT_CONTAINS
operators can be used only with automation rules. For more information, see Automation rules in the Security Hub User Guide.
Operator (string) –
The logical operator used to combine multiple filter conditions.
CompositeOperator (string) –
The logical operators used to combine the filtering on multiple
CompositeFilters
.
Actions (list) –
[REQUIRED]
A list of actions to be performed when the rule criteria is met.
(dict) –
Allows you to configure automated responses.
Type (string) – [REQUIRED]
The category of action to be executed by the automation rule.
FindingFieldsUpdate (dict) –
The changes to be applied to fields in a security finding when an automation rule is triggered.
SeverityId (integer) –
The severity level to be assigned to findings that match the automation rule criteria.
Comment (string) –
Notes or contextual information for findings that are modified by the automation rule.
StatusId (integer) –
The status to be applied to findings that match automation rule criteria.
ExternalIntegrationConfiguration (dict) –
The settings for integrating automation rule actions with external systems or service.
ConnectorArn (string) –
The ARN of the connector that establishes the integration.
Tags (dict) –
A list of key-value pairs associated with the V2 automation rule.
(string) –
(string) –
ClientToken (string) –
A unique identifier used to ensure idempotency.
This field is autopopulated if not provided.
- Return type:
dict
- Returns:
Response Syntax
{ 'RuleArn': 'string', 'RuleId': 'string' }
Response Structure
(dict) –
RuleArn (string) –
The ARN of the V2 automation rule.
RuleId (string) –
The ID of the V2 automation rule.
Exceptions