2025/10/24 - AWS SecurityHub - 7 updated api methods
Changes Release 3 layer filter support in GetFindingsV2, GetFindingStatisticsV2, GetResourcesV2,GetResourcesStatisticsV2, AutomationRule V2 APIs. Update filter casing in GetResourcesV2, GetResourcesStatisticsV2 APIs. Add new filters in GetFindingsV2, GetFindingStatisticsV2, AutomationRule V2 APIs.
{'Criteria': {'OcsfFindingCriteria': {'CompositeFilters': {'DateFilters': {'FieldName': {'resources.image.created_time_dt',
'resources.image.last_used_time_dt',
'resources.modified_time_dt'}},
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': {'FieldName': {'compliance.control_parameters',
'databucket.tags',
'finding_info.tags'}},
'NestedCompositeFilters': [{'BooleanFilters': [{'FieldName': 'compliance.assessments.meets_criteria '
'| '
'vulnerabilities.is_exploit_available '
'| '
'vulnerabilities.is_fix_available',
'Filter': {'Value': 'boolean'}}],
'DateFilters': [{'FieldName': 'finding_info.created_time_dt '
'| '
'finding_info.first_seen_time_dt '
'| '
'finding_info.last_seen_time_dt '
'| '
'finding_info.modified_time_dt '
'| '
'resources.image.created_time_dt '
'| '
'resources.image.last_used_time_dt '
'| '
'resources.modified_time_dt',
'Filter': {'DateRange': {'Unit': 'DAYS',
'Value': 'integer'},
'End': 'string',
'Start': 'string'}}],
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': [{'FieldName': 'resources.tags '
'| '
'compliance.control_parameters '
'| '
'databucket.tags '
'| '
'finding_info.tags',
'Filter': {'Comparison': 'EQUALS '
'| '
'NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS',
'Key': 'string',
'Value': 'string'}}],
'NestedCompositeFilters': (),
'NumberFilters': [{'FieldName': 'activity_id '
'| '
'compliance.status_id '
'| '
'confidence_score '
'| '
'severity_id '
'| '
'status_id '
'| '
'finding_info.related_events_count '
'| '
'evidences.api.response.code '
'| '
'evidences.dst_endpoint.autonomous_system.number '
'| '
'evidences.dst_endpoint.port '
'| '
'evidences.src_endpoint.autonomous_system.number '
'| '
'evidences.src_endpoint.port '
'| '
'resources.image.in_use_count',
'Filter': {'Eq': 'double',
'Gt': 'double',
'Gte': 'double',
'Lt': 'double',
'Lte': 'double'}}],
'Operator': 'AND '
'| '
'OR',
'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 '
'| '
'databucket.encryption_details.algorithm '
'| '
'databucket.encryption_details.key_uid '
'| '
'databucket.file.data_classifications.classifier_details.type '
'| '
'evidences.actor.user.account.uid '
'| '
'evidences.api.operation '
'| '
'evidences.api.response.error_message '
'| '
'evidences.api.service.name '
'| '
'evidences.connection_info.direction '
'| '
'evidences.connection_info.protocol_name '
'| '
'evidences.dst_endpoint.autonomous_system.name '
'| '
'evidences.dst_endpoint.location.city '
'| '
'evidences.dst_endpoint.location.country '
'| '
'evidences.src_endpoint.autonomous_system.name '
'| '
'evidences.src_endpoint.hostname '
'| '
'evidences.src_endpoint.location.city '
'| '
'evidences.src_endpoint.location.country '
'| '
'finding_info.analytic.name '
'| '
'malware.name '
'| '
'malware_scan_info.uid '
'| '
'malware.severity '
'| '
'resources.cloud_function.layers.uid_alt '
'| '
'resources.cloud_function.runtime '
'| '
'resources.cloud_function.user.uid '
'| '
'resources.device.encryption_details.key_uid '
'| '
'resources.device.image.uid '
'| '
'resources.image.architecture '
'| '
'resources.image.registry_uid '
'| '
'resources.image.repository_name '
'| '
'resources.image.uid '
'| '
'resources.subnet_info.uid '
'| '
'resources.vpc_uid '
'| '
'vulnerabilities.affected_code.file.path '
'| '
'vulnerabilities.affected_packages.name '
'| '
'vulnerabilities.cve.epss.score '
'| '
'vulnerabilities.cve.uid '
'| '
'vulnerabilities.related_vulnerabilities '
'| '
'cloud.account.name',
'Filter': {'Comparison': 'EQUALS '
'| '
'PREFIX '
'| '
'NOT_EQUALS '
'| '
'PREFIX_NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS '
'| '
'CONTAINS_WORD',
'Value': 'string'}}]}],
'NumberFilters': {'FieldName': {'evidences.api.response.code',
'evidences.dst_endpoint.autonomous_system.number',
'evidences.dst_endpoint.port',
'evidences.src_endpoint.autonomous_system.number',
'evidences.src_endpoint.port',
'resources.image.in_use_count'}},
'StringFilters': {'FieldName': {'cloud.account.name',
'databucket.encryption_details.algorithm',
'databucket.encryption_details.key_uid',
'databucket.file.data_classifications.classifier_details.type',
'evidences.actor.user.account.uid',
'evidences.api.operation',
'evidences.api.response.error_message',
'evidences.api.service.name',
'evidences.connection_info.direction',
'evidences.connection_info.protocol_name',
'evidences.dst_endpoint.autonomous_system.name',
'evidences.dst_endpoint.location.city',
'evidences.dst_endpoint.location.country',
'evidences.src_endpoint.autonomous_system.name',
'evidences.src_endpoint.hostname',
'evidences.src_endpoint.location.city',
'evidences.src_endpoint.location.country',
'finding_info.analytic.name',
'malware.name',
'malware.severity',
'malware_scan_info.uid',
'resources.cloud_function.layers.uid_alt',
'resources.cloud_function.runtime',
'resources.cloud_function.user.uid',
'resources.device.encryption_details.key_uid',
'resources.device.image.uid',
'resources.image.architecture',
'resources.image.registry_uid',
'resources.image.repository_name',
'resources.image.uid',
'resources.subnet_info.uid',
'resources.vpc_uid',
'vulnerabilities.affected_code.file.path',
'vulnerabilities.affected_packages.name',
'vulnerabilities.cve.epss.score',
'vulnerabilities.cve.uid',
'vulnerabilities.related_vulnerabilities'}}}}}}
Creates a V2 automation rule. This API is in public preview and subject to change.
See also: AWS API Documentation
Request Syntax
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'|'databucket.encryption_details.algorithm'|'databucket.encryption_details.key_uid'|'databucket.file.data_classifications.classifier_details.type'|'evidences.actor.user.account.uid'|'evidences.api.operation'|'evidences.api.response.error_message'|'evidences.api.service.name'|'evidences.connection_info.direction'|'evidences.connection_info.protocol_name'|'evidences.dst_endpoint.autonomous_system.name'|'evidences.dst_endpoint.location.city'|'evidences.dst_endpoint.location.country'|'evidences.src_endpoint.autonomous_system.name'|'evidences.src_endpoint.hostname'|'evidences.src_endpoint.location.city'|'evidences.src_endpoint.location.country'|'finding_info.analytic.name'|'malware.name'|'malware_scan_info.uid'|'malware.severity'|'resources.cloud_function.layers.uid_alt'|'resources.cloud_function.runtime'|'resources.cloud_function.user.uid'|'resources.device.encryption_details.key_uid'|'resources.device.image.uid'|'resources.image.architecture'|'resources.image.registry_uid'|'resources.image.repository_name'|'resources.image.uid'|'resources.subnet_info.uid'|'resources.vpc_uid'|'vulnerabilities.affected_code.file.path'|'vulnerabilities.affected_packages.name'|'vulnerabilities.cve.epss.score'|'vulnerabilities.cve.uid'|'vulnerabilities.related_vulnerabilities'|'cloud.account.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'|'resources.image.created_time_dt'|'resources.image.last_used_time_dt'|'resources.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'|'evidences.api.response.code'|'evidences.dst_endpoint.autonomous_system.number'|'evidences.dst_endpoint.port'|'evidences.src_endpoint.autonomous_system.number'|'evidences.src_endpoint.port'|'resources.image.in_use_count',
'Filter': {
'Gte': 123.0,
'Lte': 123.0,
'Eq': 123.0,
'Gt': 123.0,
'Lt': 123.0
}
},
],
'MapFilters': [
{
'FieldName': 'resources.tags'|'compliance.control_parameters'|'databucket.tags'|'finding_info.tags',
'Filter': {
'Key': 'string',
'Value': 'string',
'Comparison': 'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'
}
},
],
'IpFilters': [
{
'FieldName': 'evidences.dst_endpoint.ip'|'evidences.src_endpoint.ip',
'Filter': {
'Cidr': 'string'
}
},
],
'NestedCompositeFilters': {'... recursive ...'},
'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'
)
string
[REQUIRED]
The name of the V2 automation rule.
string
The status of the V2 automation rule.
string
[REQUIRED]
A description of the V2 automation rule.
float
[REQUIRED]
The value for the rule priority.
dict
[REQUIRED]
The filtering type and configuration of the automation rule.
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 provide security 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 filter Title CONTAINS CloudFront matches findings that have a Title that includes the string CloudFront.
To search for values that exactly match the filter value, use EQUALS. For example, the filter AwsAccountId EQUALS 123456789012 only matches findings that have an account ID of 123456789012.
To search for values that start with the filter value, use PREFIX. For example, the filter ResourceRegion PREFIX us matches findings that have a ResourceRegion that starts with us. A ResourceRegion that starts with a different value, such as af, ap, or ca, doesn't match.
CONTAINS, EQUALS, and PREFIX filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Title CONTAINS CloudFront OR Title CONTAINS CloudWatch match a finding that includes either CloudFront, 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 filter Title NOT_CONTAINS CloudFront matches findings that have a Title that excludes the string CloudFront.
To search for values other than the filter value, use NOT_EQUALS. For example, the filter AwsAccountId NOT_EQUALS 123456789012 only matches findings that have an account ID other than 123456789012.
To search for values that don't start with the filter value, use PREFIX_NOT_EQUALS. For example, the filter ResourceRegion PREFIX_NOT_EQUALS us matches findings with a ResourceRegion that starts with a value other than us.
NOT_CONTAINS, NOT_EQUALS, and PREFIX_NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch match a finding that excludes both CloudFront and CloudWatch in the title.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can't provide both an EQUALS filter and a NOT_EQUALS or PREFIX_NOT_EQUALS filter on the same field. Combining filters in this way returns an error. CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can combine PREFIX filters with NOT_EQUALS or PREFIX_NOT_EQUALS filters for the same field. Security Hub first processes the PREFIX filters, and then the NOT_EQUALS or PREFIX_NOT_EQUALS filters.
For example, for the following filters, Security Hub first identifies findings that have resource types that start with either AwsIam or AwsEc2. It then excludes findings that have a resource type of AwsIamPolicy and findings that have a resource type of AwsEc2NetworkInterface.
ResourceType PREFIX AwsIam
ResourceType PREFIX AwsEc2
ResourceType NOT_EQUALS AwsIamPolicy
ResourceType NOT_EQUALS AwsEc2NetworkInterface
CONTAINS and NOT_CONTAINS operators can be used only with automation rules V1. CONTAINS_WORD operator is only supported in GetFindingsV2, GetFindingStatisticsV2, GetResourcesV2, and GetResourceStatisticsV2 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. For UserDefinedFields, 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 be Security. If you provide security 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 the ResourceTags field, the filter Department CONTAINS Security matches findings that include the value Security for the Department tag. In the same example, a finding with a value of Security team for the Department tag is a match.
To search for values that exactly match the filter value, use EQUALS. For example, for the ResourceTags field, the filter Department EQUALS Security matches findings that have the value Security for the Department tag.
CONTAINS and EQUALS filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Department CONTAINS Security OR Department CONTAINS Finance match a finding that includes either Security, 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 the ResourceTags field, the filter Department NOT_CONTAINS Finance matches findings that exclude the value Finance for the Department tag.
To search for values other than the filter value, use NOT_EQUALS. For example, for the ResourceTags field, the filter Department NOT_EQUALS Finance matches findings that don’t have the value Finance for the Department tag.
NOT_CONTAINS and NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance match a finding that excludes both the Security and Finance values.
CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can’t have both an EQUALS filter and a NOT_EQUALS filter on the same field. Combining filters in this way returns an error.
CONTAINS and NOT_CONTAINS operators can be used only with automation rules. For more information, see Automation rules in the Security Hub User Guide.
IpFilters (list) --
A list of IP address filters that allowing you to filter findings based on IP address properties.
(dict) --
The structure for filtering findings based on IP address attributes.
FieldName (string) --
The name of the IP address field to filter on.
Filter (dict) --
The IP filter for querying findings.
Cidr (string) --
A finding's CIDR value.
NestedCompositeFilters (list) --
Provides an additional level of filtering, creating a three-layer nested structure. The first layer is a CompositeFilters array with a CompositeOperator ( AND/ OR). The second layer is a CompositeFilter object that contains direct filters and NestedCompositeFilters. The third layer is NestedCompositeFilters, which contains additional filter conditions.
Operator (string) --
The logical operator used to combine multiple filter conditions.
CompositeOperator (string) --
The logical operators used to combine the filtering on multiple CompositeFilters.
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.
dict
A list of key-value pairs associated with the V2 automation rule.
(string) --
(string) --
string
A unique identifier used to ensure idempotency.
This field is autopopulated if not provided.
dict
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.
{'Criteria': {'OcsfFindingCriteria': {'CompositeFilters': {'DateFilters': {'FieldName': {'resources.image.created_time_dt',
'resources.image.last_used_time_dt',
'resources.modified_time_dt'}},
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': {'FieldName': {'compliance.control_parameters',
'databucket.tags',
'finding_info.tags'}},
'NestedCompositeFilters': [{'BooleanFilters': [{'FieldName': 'compliance.assessments.meets_criteria '
'| '
'vulnerabilities.is_exploit_available '
'| '
'vulnerabilities.is_fix_available',
'Filter': {'Value': 'boolean'}}],
'DateFilters': [{'FieldName': 'finding_info.created_time_dt '
'| '
'finding_info.first_seen_time_dt '
'| '
'finding_info.last_seen_time_dt '
'| '
'finding_info.modified_time_dt '
'| '
'resources.image.created_time_dt '
'| '
'resources.image.last_used_time_dt '
'| '
'resources.modified_time_dt',
'Filter': {'DateRange': {'Unit': 'DAYS',
'Value': 'integer'},
'End': 'string',
'Start': 'string'}}],
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': [{'FieldName': 'resources.tags '
'| '
'compliance.control_parameters '
'| '
'databucket.tags '
'| '
'finding_info.tags',
'Filter': {'Comparison': 'EQUALS '
'| '
'NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS',
'Key': 'string',
'Value': 'string'}}],
'NestedCompositeFilters': (),
'NumberFilters': [{'FieldName': 'activity_id '
'| '
'compliance.status_id '
'| '
'confidence_score '
'| '
'severity_id '
'| '
'status_id '
'| '
'finding_info.related_events_count '
'| '
'evidences.api.response.code '
'| '
'evidences.dst_endpoint.autonomous_system.number '
'| '
'evidences.dst_endpoint.port '
'| '
'evidences.src_endpoint.autonomous_system.number '
'| '
'evidences.src_endpoint.port '
'| '
'resources.image.in_use_count',
'Filter': {'Eq': 'double',
'Gt': 'double',
'Gte': 'double',
'Lt': 'double',
'Lte': 'double'}}],
'Operator': 'AND '
'| '
'OR',
'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 '
'| '
'databucket.encryption_details.algorithm '
'| '
'databucket.encryption_details.key_uid '
'| '
'databucket.file.data_classifications.classifier_details.type '
'| '
'evidences.actor.user.account.uid '
'| '
'evidences.api.operation '
'| '
'evidences.api.response.error_message '
'| '
'evidences.api.service.name '
'| '
'evidences.connection_info.direction '
'| '
'evidences.connection_info.protocol_name '
'| '
'evidences.dst_endpoint.autonomous_system.name '
'| '
'evidences.dst_endpoint.location.city '
'| '
'evidences.dst_endpoint.location.country '
'| '
'evidences.src_endpoint.autonomous_system.name '
'| '
'evidences.src_endpoint.hostname '
'| '
'evidences.src_endpoint.location.city '
'| '
'evidences.src_endpoint.location.country '
'| '
'finding_info.analytic.name '
'| '
'malware.name '
'| '
'malware_scan_info.uid '
'| '
'malware.severity '
'| '
'resources.cloud_function.layers.uid_alt '
'| '
'resources.cloud_function.runtime '
'| '
'resources.cloud_function.user.uid '
'| '
'resources.device.encryption_details.key_uid '
'| '
'resources.device.image.uid '
'| '
'resources.image.architecture '
'| '
'resources.image.registry_uid '
'| '
'resources.image.repository_name '
'| '
'resources.image.uid '
'| '
'resources.subnet_info.uid '
'| '
'resources.vpc_uid '
'| '
'vulnerabilities.affected_code.file.path '
'| '
'vulnerabilities.affected_packages.name '
'| '
'vulnerabilities.cve.epss.score '
'| '
'vulnerabilities.cve.uid '
'| '
'vulnerabilities.related_vulnerabilities '
'| '
'cloud.account.name',
'Filter': {'Comparison': 'EQUALS '
'| '
'PREFIX '
'| '
'NOT_EQUALS '
'| '
'PREFIX_NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS '
'| '
'CONTAINS_WORD',
'Value': 'string'}}]}],
'NumberFilters': {'FieldName': {'evidences.api.response.code',
'evidences.dst_endpoint.autonomous_system.number',
'evidences.dst_endpoint.port',
'evidences.src_endpoint.autonomous_system.number',
'evidences.src_endpoint.port',
'resources.image.in_use_count'}},
'StringFilters': {'FieldName': {'cloud.account.name',
'databucket.encryption_details.algorithm',
'databucket.encryption_details.key_uid',
'databucket.file.data_classifications.classifier_details.type',
'evidences.actor.user.account.uid',
'evidences.api.operation',
'evidences.api.response.error_message',
'evidences.api.service.name',
'evidences.connection_info.direction',
'evidences.connection_info.protocol_name',
'evidences.dst_endpoint.autonomous_system.name',
'evidences.dst_endpoint.location.city',
'evidences.dst_endpoint.location.country',
'evidences.src_endpoint.autonomous_system.name',
'evidences.src_endpoint.hostname',
'evidences.src_endpoint.location.city',
'evidences.src_endpoint.location.country',
'finding_info.analytic.name',
'malware.name',
'malware.severity',
'malware_scan_info.uid',
'resources.cloud_function.layers.uid_alt',
'resources.cloud_function.runtime',
'resources.cloud_function.user.uid',
'resources.device.encryption_details.key_uid',
'resources.device.image.uid',
'resources.image.architecture',
'resources.image.registry_uid',
'resources.image.repository_name',
'resources.image.uid',
'resources.subnet_info.uid',
'resources.vpc_uid',
'vulnerabilities.affected_code.file.path',
'vulnerabilities.affected_packages.name',
'vulnerabilities.cve.epss.score',
'vulnerabilities.cve.uid',
'vulnerabilities.related_vulnerabilities'}}}}}}
Returns an automation rule for the V2 service. This API is in public preview and subject to change.
See also: AWS API Documentation
Request Syntax
client.get_automation_rule_v2(
Identifier='string'
)
string
[REQUIRED]
The ARN of the V2 automation rule.
dict
Response Syntax
{
'RuleArn': 'string',
'RuleId': 'string',
'RuleOrder': ...,
'RuleName': 'string',
'RuleStatus': 'ENABLED'|'DISABLED',
'Description': 'string',
'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'|'databucket.encryption_details.algorithm'|'databucket.encryption_details.key_uid'|'databucket.file.data_classifications.classifier_details.type'|'evidences.actor.user.account.uid'|'evidences.api.operation'|'evidences.api.response.error_message'|'evidences.api.service.name'|'evidences.connection_info.direction'|'evidences.connection_info.protocol_name'|'evidences.dst_endpoint.autonomous_system.name'|'evidences.dst_endpoint.location.city'|'evidences.dst_endpoint.location.country'|'evidences.src_endpoint.autonomous_system.name'|'evidences.src_endpoint.hostname'|'evidences.src_endpoint.location.city'|'evidences.src_endpoint.location.country'|'finding_info.analytic.name'|'malware.name'|'malware_scan_info.uid'|'malware.severity'|'resources.cloud_function.layers.uid_alt'|'resources.cloud_function.runtime'|'resources.cloud_function.user.uid'|'resources.device.encryption_details.key_uid'|'resources.device.image.uid'|'resources.image.architecture'|'resources.image.registry_uid'|'resources.image.repository_name'|'resources.image.uid'|'resources.subnet_info.uid'|'resources.vpc_uid'|'vulnerabilities.affected_code.file.path'|'vulnerabilities.affected_packages.name'|'vulnerabilities.cve.epss.score'|'vulnerabilities.cve.uid'|'vulnerabilities.related_vulnerabilities'|'cloud.account.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'|'resources.image.created_time_dt'|'resources.image.last_used_time_dt'|'resources.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'|'evidences.api.response.code'|'evidences.dst_endpoint.autonomous_system.number'|'evidences.dst_endpoint.port'|'evidences.src_endpoint.autonomous_system.number'|'evidences.src_endpoint.port'|'resources.image.in_use_count',
'Filter': {
'Gte': 123.0,
'Lte': 123.0,
'Eq': 123.0,
'Gt': 123.0,
'Lt': 123.0
}
},
],
'MapFilters': [
{
'FieldName': 'resources.tags'|'compliance.control_parameters'|'databucket.tags'|'finding_info.tags',
'Filter': {
'Key': 'string',
'Value': 'string',
'Comparison': 'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'
}
},
],
'IpFilters': [
{
'FieldName': 'evidences.dst_endpoint.ip'|'evidences.src_endpoint.ip',
'Filter': {
'Cidr': 'string'
}
},
],
'NestedCompositeFilters': {'... recursive ...'},
'Operator': 'AND'|'OR'
},
],
'CompositeOperator': 'AND'|'OR'
}
},
'Actions': [
{
'Type': 'FINDING_FIELDS_UPDATE'|'EXTERNAL_INTEGRATION',
'FindingFieldsUpdate': {
'SeverityId': 123,
'Comment': 'string',
'StatusId': 123
},
'ExternalIntegrationConfiguration': {
'ConnectorArn': 'string'
}
},
],
'CreatedAt': datetime(2015, 1, 1),
'UpdatedAt': datetime(2015, 1, 1)
}
Response Structure
(dict) --
RuleArn (string) --
The ARN of the V2 automation rule.
RuleId (string) --
The ID of the V2 automation rule.
RuleOrder (float) --
The value for the rule priority.
RuleName (string) --
The name of the V2 automation rule.
RuleStatus (string) --
The status of the V2 automation automation rule.
Description (string) --
A description of the automation rule.
Criteria (dict) --
The filtering type and configuration of the V2 automation rule.
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 provide security 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 filter Title CONTAINS CloudFront matches findings that have a Title that includes the string CloudFront.
To search for values that exactly match the filter value, use EQUALS. For example, the filter AwsAccountId EQUALS 123456789012 only matches findings that have an account ID of 123456789012.
To search for values that start with the filter value, use PREFIX. For example, the filter ResourceRegion PREFIX us matches findings that have a ResourceRegion that starts with us. A ResourceRegion that starts with a different value, such as af, ap, or ca, doesn't match.
CONTAINS, EQUALS, and PREFIX filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Title CONTAINS CloudFront OR Title CONTAINS CloudWatch match a finding that includes either CloudFront, 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 filter Title NOT_CONTAINS CloudFront matches findings that have a Title that excludes the string CloudFront.
To search for values other than the filter value, use NOT_EQUALS. For example, the filter AwsAccountId NOT_EQUALS 123456789012 only matches findings that have an account ID other than 123456789012.
To search for values that don't start with the filter value, use PREFIX_NOT_EQUALS. For example, the filter ResourceRegion PREFIX_NOT_EQUALS us matches findings with a ResourceRegion that starts with a value other than us.
NOT_CONTAINS, NOT_EQUALS, and PREFIX_NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch match a finding that excludes both CloudFront and CloudWatch in the title.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can't provide both an EQUALS filter and a NOT_EQUALS or PREFIX_NOT_EQUALS filter on the same field. Combining filters in this way returns an error. CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can combine PREFIX filters with NOT_EQUALS or PREFIX_NOT_EQUALS filters for the same field. Security Hub first processes the PREFIX filters, and then the NOT_EQUALS or PREFIX_NOT_EQUALS filters.
For example, for the following filters, Security Hub first identifies findings that have resource types that start with either AwsIam or AwsEc2. It then excludes findings that have a resource type of AwsIamPolicy and findings that have a resource type of AwsEc2NetworkInterface.
ResourceType PREFIX AwsIam
ResourceType PREFIX AwsEc2
ResourceType NOT_EQUALS AwsIamPolicy
ResourceType NOT_EQUALS AwsEc2NetworkInterface
CONTAINS and NOT_CONTAINS operators can be used only with automation rules V1. CONTAINS_WORD operator is only supported in GetFindingsV2, GetFindingStatisticsV2, GetResourcesV2, and GetResourceStatisticsV2 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. For UserDefinedFields, 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 be Security. If you provide security 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 the ResourceTags field, the filter Department CONTAINS Security matches findings that include the value Security for the Department tag. In the same example, a finding with a value of Security team for the Department tag is a match.
To search for values that exactly match the filter value, use EQUALS. For example, for the ResourceTags field, the filter Department EQUALS Security matches findings that have the value Security for the Department tag.
CONTAINS and EQUALS filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Department CONTAINS Security OR Department CONTAINS Finance match a finding that includes either Security, 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 the ResourceTags field, the filter Department NOT_CONTAINS Finance matches findings that exclude the value Finance for the Department tag.
To search for values other than the filter value, use NOT_EQUALS. For example, for the ResourceTags field, the filter Department NOT_EQUALS Finance matches findings that don’t have the value Finance for the Department tag.
NOT_CONTAINS and NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance match a finding that excludes both the Security and Finance values.
CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can’t have both an EQUALS filter and a NOT_EQUALS filter on the same field. Combining filters in this way returns an error.
CONTAINS and NOT_CONTAINS operators can be used only with automation rules. For more information, see Automation rules in the Security Hub User Guide.
IpFilters (list) --
A list of IP address filters that allowing you to filter findings based on IP address properties.
(dict) --
The structure for filtering findings based on IP address attributes.
FieldName (string) --
The name of the IP address field to filter on.
Filter (dict) --
The IP filter for querying findings.
Cidr (string) --
A finding's CIDR value.
NestedCompositeFilters (list) --
Provides an additional level of filtering, creating a three-layer nested structure. The first layer is a CompositeFilters array with a CompositeOperator ( AND/ OR). The second layer is a CompositeFilter object that contains direct filters and NestedCompositeFilters. The third layer is NestedCompositeFilters, which contains additional filter conditions.
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) --
A list of actions performed when the rule criteria is met.
(dict) --
Allows you to configure automated responses.
Type (string) --
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.
CreatedAt (datetime) --
The timestamp when the V2 automation rule was created.
UpdatedAt (datetime) --
The timestamp when the V2 automation rule was updated.
{'GroupByRules': {'Filters': {'CompositeFilters': {'DateFilters': {'FieldName': {'resources.image.created_time_dt',
'resources.image.last_used_time_dt',
'resources.modified_time_dt'}},
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': {'FieldName': {'compliance.control_parameters',
'databucket.tags',
'finding_info.tags'}},
'NestedCompositeFilters': [{'BooleanFilters': [{'FieldName': 'compliance.assessments.meets_criteria '
'| '
'vulnerabilities.is_exploit_available '
'| '
'vulnerabilities.is_fix_available',
'Filter': {'Value': 'boolean'}}],
'DateFilters': [{'FieldName': 'finding_info.created_time_dt '
'| '
'finding_info.first_seen_time_dt '
'| '
'finding_info.last_seen_time_dt '
'| '
'finding_info.modified_time_dt '
'| '
'resources.image.created_time_dt '
'| '
'resources.image.last_used_time_dt '
'| '
'resources.modified_time_dt',
'Filter': {'DateRange': {'Unit': 'DAYS',
'Value': 'integer'},
'End': 'string',
'Start': 'string'}}],
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': [{'FieldName': 'resources.tags '
'| '
'compliance.control_parameters '
'| '
'databucket.tags '
'| '
'finding_info.tags',
'Filter': {'Comparison': 'EQUALS '
'| '
'NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS',
'Key': 'string',
'Value': 'string'}}],
'NestedCompositeFilters': (),
'NumberFilters': [{'FieldName': 'activity_id '
'| '
'compliance.status_id '
'| '
'confidence_score '
'| '
'severity_id '
'| '
'status_id '
'| '
'finding_info.related_events_count '
'| '
'evidences.api.response.code '
'| '
'evidences.dst_endpoint.autonomous_system.number '
'| '
'evidences.dst_endpoint.port '
'| '
'evidences.src_endpoint.autonomous_system.number '
'| '
'evidences.src_endpoint.port '
'| '
'resources.image.in_use_count',
'Filter': {'Eq': 'double',
'Gt': 'double',
'Gte': 'double',
'Lt': 'double',
'Lte': 'double'}}],
'Operator': 'AND '
'| '
'OR',
'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 '
'| '
'databucket.encryption_details.algorithm '
'| '
'databucket.encryption_details.key_uid '
'| '
'databucket.file.data_classifications.classifier_details.type '
'| '
'evidences.actor.user.account.uid '
'| '
'evidences.api.operation '
'| '
'evidences.api.response.error_message '
'| '
'evidences.api.service.name '
'| '
'evidences.connection_info.direction '
'| '
'evidences.connection_info.protocol_name '
'| '
'evidences.dst_endpoint.autonomous_system.name '
'| '
'evidences.dst_endpoint.location.city '
'| '
'evidences.dst_endpoint.location.country '
'| '
'evidences.src_endpoint.autonomous_system.name '
'| '
'evidences.src_endpoint.hostname '
'| '
'evidences.src_endpoint.location.city '
'| '
'evidences.src_endpoint.location.country '
'| '
'finding_info.analytic.name '
'| '
'malware.name '
'| '
'malware_scan_info.uid '
'| '
'malware.severity '
'| '
'resources.cloud_function.layers.uid_alt '
'| '
'resources.cloud_function.runtime '
'| '
'resources.cloud_function.user.uid '
'| '
'resources.device.encryption_details.key_uid '
'| '
'resources.device.image.uid '
'| '
'resources.image.architecture '
'| '
'resources.image.registry_uid '
'| '
'resources.image.repository_name '
'| '
'resources.image.uid '
'| '
'resources.subnet_info.uid '
'| '
'resources.vpc_uid '
'| '
'vulnerabilities.affected_code.file.path '
'| '
'vulnerabilities.affected_packages.name '
'| '
'vulnerabilities.cve.epss.score '
'| '
'vulnerabilities.cve.uid '
'| '
'vulnerabilities.related_vulnerabilities '
'| '
'cloud.account.name',
'Filter': {'Comparison': 'EQUALS '
'| '
'PREFIX '
'| '
'NOT_EQUALS '
'| '
'PREFIX_NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS '
'| '
'CONTAINS_WORD',
'Value': 'string'}}]}],
'NumberFilters': {'FieldName': {'evidences.api.response.code',
'evidences.dst_endpoint.autonomous_system.number',
'evidences.dst_endpoint.port',
'evidences.src_endpoint.autonomous_system.number',
'evidences.src_endpoint.port',
'resources.image.in_use_count'}},
'StringFilters': {'FieldName': {'cloud.account.name',
'databucket.encryption_details.algorithm',
'databucket.encryption_details.key_uid',
'databucket.file.data_classifications.classifier_details.type',
'evidences.actor.user.account.uid',
'evidences.api.operation',
'evidences.api.response.error_message',
'evidences.api.service.name',
'evidences.connection_info.direction',
'evidences.connection_info.protocol_name',
'evidences.dst_endpoint.autonomous_system.name',
'evidences.dst_endpoint.location.city',
'evidences.dst_endpoint.location.country',
'evidences.src_endpoint.autonomous_system.name',
'evidences.src_endpoint.hostname',
'evidences.src_endpoint.location.city',
'evidences.src_endpoint.location.country',
'finding_info.analytic.name',
'malware.name',
'malware.severity',
'malware_scan_info.uid',
'resources.cloud_function.layers.uid_alt',
'resources.cloud_function.runtime',
'resources.cloud_function.user.uid',
'resources.device.encryption_details.key_uid',
'resources.device.image.uid',
'resources.image.architecture',
'resources.image.registry_uid',
'resources.image.repository_name',
'resources.image.uid',
'resources.subnet_info.uid',
'resources.vpc_uid',
'vulnerabilities.affected_code.file.path',
'vulnerabilities.affected_packages.name',
'vulnerabilities.cve.epss.score',
'vulnerabilities.cve.uid',
'vulnerabilities.related_vulnerabilities'}}}},
'GroupByField': {'cloud.account.name',
'compliance.standards',
'finding_info.analytic.name',
'vulnerabilities.affected_packages.name'}}}
Returns aggregated statistical data about findings. GetFindingStatisticsV2 use securityhub:GetAdhocInsightResults in the Action element of an IAM policy statement. You must have permission to perform the s action. This API is in public preview and subject to change.
See also: AWS API Documentation
Request Syntax
client.get_finding_statistics_v2(
GroupByRules=[
{
'Filters': {
'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'|'databucket.encryption_details.algorithm'|'databucket.encryption_details.key_uid'|'databucket.file.data_classifications.classifier_details.type'|'evidences.actor.user.account.uid'|'evidences.api.operation'|'evidences.api.response.error_message'|'evidences.api.service.name'|'evidences.connection_info.direction'|'evidences.connection_info.protocol_name'|'evidences.dst_endpoint.autonomous_system.name'|'evidences.dst_endpoint.location.city'|'evidences.dst_endpoint.location.country'|'evidences.src_endpoint.autonomous_system.name'|'evidences.src_endpoint.hostname'|'evidences.src_endpoint.location.city'|'evidences.src_endpoint.location.country'|'finding_info.analytic.name'|'malware.name'|'malware_scan_info.uid'|'malware.severity'|'resources.cloud_function.layers.uid_alt'|'resources.cloud_function.runtime'|'resources.cloud_function.user.uid'|'resources.device.encryption_details.key_uid'|'resources.device.image.uid'|'resources.image.architecture'|'resources.image.registry_uid'|'resources.image.repository_name'|'resources.image.uid'|'resources.subnet_info.uid'|'resources.vpc_uid'|'vulnerabilities.affected_code.file.path'|'vulnerabilities.affected_packages.name'|'vulnerabilities.cve.epss.score'|'vulnerabilities.cve.uid'|'vulnerabilities.related_vulnerabilities'|'cloud.account.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'|'resources.image.created_time_dt'|'resources.image.last_used_time_dt'|'resources.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'|'evidences.api.response.code'|'evidences.dst_endpoint.autonomous_system.number'|'evidences.dst_endpoint.port'|'evidences.src_endpoint.autonomous_system.number'|'evidences.src_endpoint.port'|'resources.image.in_use_count',
'Filter': {
'Gte': 123.0,
'Lte': 123.0,
'Eq': 123.0,
'Gt': 123.0,
'Lt': 123.0
}
},
],
'MapFilters': [
{
'FieldName': 'resources.tags'|'compliance.control_parameters'|'databucket.tags'|'finding_info.tags',
'Filter': {
'Key': 'string',
'Value': 'string',
'Comparison': 'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'
}
},
],
'IpFilters': [
{
'FieldName': 'evidences.dst_endpoint.ip'|'evidences.src_endpoint.ip',
'Filter': {
'Cidr': 'string'
}
},
],
'NestedCompositeFilters': {'... recursive ...'},
'Operator': 'AND'|'OR'
},
],
'CompositeOperator': 'AND'|'OR'
},
'GroupByField': 'activity_name'|'cloud.account.uid'|'cloud.provider'|'cloud.region'|'compliance.assessments.name'|'compliance.status'|'compliance.control'|'finding_info.title'|'finding_info.types'|'metadata.product.name'|'metadata.product.uid'|'resources.type'|'resources.uid'|'severity'|'status'|'vulnerabilities.fix_coverage'|'class_name'|'vulnerabilities.affected_packages.name'|'finding_info.analytic.name'|'compliance.standards'|'cloud.account.name'
},
],
SortOrder='asc'|'desc',
MaxStatisticResults=123
)
list
[REQUIRED]
Specifies how security findings should be aggregated and organized in the statistical analysis. It can accept up to 5 groupBy fields in a single call.
(dict) --
Defines the how the finding attribute should be grouped.
Filters (dict) --
The criteria used to select which security findings should be included in the grouping operation.
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 provide security 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 filter Title CONTAINS CloudFront matches findings that have a Title that includes the string CloudFront.
To search for values that exactly match the filter value, use EQUALS. For example, the filter AwsAccountId EQUALS 123456789012 only matches findings that have an account ID of 123456789012.
To search for values that start with the filter value, use PREFIX. For example, the filter ResourceRegion PREFIX us matches findings that have a ResourceRegion that starts with us. A ResourceRegion that starts with a different value, such as af, ap, or ca, doesn't match.
CONTAINS, EQUALS, and PREFIX filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Title CONTAINS CloudFront OR Title CONTAINS CloudWatch match a finding that includes either CloudFront, 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 filter Title NOT_CONTAINS CloudFront matches findings that have a Title that excludes the string CloudFront.
To search for values other than the filter value, use NOT_EQUALS. For example, the filter AwsAccountId NOT_EQUALS 123456789012 only matches findings that have an account ID other than 123456789012.
To search for values that don't start with the filter value, use PREFIX_NOT_EQUALS. For example, the filter ResourceRegion PREFIX_NOT_EQUALS us matches findings with a ResourceRegion that starts with a value other than us.
NOT_CONTAINS, NOT_EQUALS, and PREFIX_NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch match a finding that excludes both CloudFront and CloudWatch in the title.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can't provide both an EQUALS filter and a NOT_EQUALS or PREFIX_NOT_EQUALS filter on the same field. Combining filters in this way returns an error. CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can combine PREFIX filters with NOT_EQUALS or PREFIX_NOT_EQUALS filters for the same field. Security Hub first processes the PREFIX filters, and then the NOT_EQUALS or PREFIX_NOT_EQUALS filters.
For example, for the following filters, Security Hub first identifies findings that have resource types that start with either AwsIam or AwsEc2. It then excludes findings that have a resource type of AwsIamPolicy and findings that have a resource type of AwsEc2NetworkInterface.
ResourceType PREFIX AwsIam
ResourceType PREFIX AwsEc2
ResourceType NOT_EQUALS AwsIamPolicy
ResourceType NOT_EQUALS AwsEc2NetworkInterface
CONTAINS and NOT_CONTAINS operators can be used only with automation rules V1. CONTAINS_WORD operator is only supported in GetFindingsV2, GetFindingStatisticsV2, GetResourcesV2, and GetResourceStatisticsV2 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. For UserDefinedFields, 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 be Security. If you provide security 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 the ResourceTags field, the filter Department CONTAINS Security matches findings that include the value Security for the Department tag. In the same example, a finding with a value of Security team for the Department tag is a match.
To search for values that exactly match the filter value, use EQUALS. For example, for the ResourceTags field, the filter Department EQUALS Security matches findings that have the value Security for the Department tag.
CONTAINS and EQUALS filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Department CONTAINS Security OR Department CONTAINS Finance match a finding that includes either Security, 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 the ResourceTags field, the filter Department NOT_CONTAINS Finance matches findings that exclude the value Finance for the Department tag.
To search for values other than the filter value, use NOT_EQUALS. For example, for the ResourceTags field, the filter Department NOT_EQUALS Finance matches findings that don’t have the value Finance for the Department tag.
NOT_CONTAINS and NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance match a finding that excludes both the Security and Finance values.
CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can’t have both an EQUALS filter and a NOT_EQUALS filter on the same field. Combining filters in this way returns an error.
CONTAINS and NOT_CONTAINS operators can be used only with automation rules. For more information, see Automation rules in the Security Hub User Guide.
IpFilters (list) --
A list of IP address filters that allowing you to filter findings based on IP address properties.
(dict) --
The structure for filtering findings based on IP address attributes.
FieldName (string) --
The name of the IP address field to filter on.
Filter (dict) --
The IP filter for querying findings.
Cidr (string) --
A finding's CIDR value.
NestedCompositeFilters (list) --
Provides an additional level of filtering, creating a three-layer nested structure. The first layer is a CompositeFilters array with a CompositeOperator ( AND/ OR). The second layer is a CompositeFilter object that contains direct filters and NestedCompositeFilters. The third layer is NestedCompositeFilters, which contains additional filter conditions.
Operator (string) --
The logical operator used to combine multiple filter conditions.
CompositeOperator (string) --
The logical operators used to combine the filtering on multiple CompositeFilters.
GroupByField (string) -- [REQUIRED]
The attribute by which filtered findings should be grouped.
string
Orders the aggregation count in descending or ascending order. Descending order is the default.
integer
The maximum number of results to be returned.
dict
Response Syntax
{
'GroupByResults': [
{
'GroupByField': 'string',
'GroupByValues': [
{
'FieldValue': 'string',
'Count': 123
},
]
},
]
}
Response Structure
(dict) --
GroupByResults (list) --
Aggregated statistics about security findings based on specified grouping criteria.
(dict) --
Represents finding statistics grouped by GroupedByField.
GroupByField (string) --
The attribute by which filtered security findings should be grouped.
GroupByValues (list) --
An array of grouped values and their respective counts for each GroupByField.
(dict) --
Represents individual aggregated results when grouping security findings for each GroupByField.
FieldValue (string) --
The value of the field by which findings are grouped.
Count (integer) --
The number of findings for a specific FieldValue and GroupByField.
{'Filters': {'CompositeFilters': {'DateFilters': {'FieldName': {'resources.image.created_time_dt',
'resources.image.last_used_time_dt',
'resources.modified_time_dt'}},
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': {'FieldName': {'compliance.control_parameters',
'databucket.tags',
'finding_info.tags'}},
'NestedCompositeFilters': [{'BooleanFilters': [{'FieldName': 'compliance.assessments.meets_criteria '
'| '
'vulnerabilities.is_exploit_available '
'| '
'vulnerabilities.is_fix_available',
'Filter': {'Value': 'boolean'}}],
'DateFilters': [{'FieldName': 'finding_info.created_time_dt '
'| '
'finding_info.first_seen_time_dt '
'| '
'finding_info.last_seen_time_dt '
'| '
'finding_info.modified_time_dt '
'| '
'resources.image.created_time_dt '
'| '
'resources.image.last_used_time_dt '
'| '
'resources.modified_time_dt',
'Filter': {'DateRange': {'Unit': 'DAYS',
'Value': 'integer'},
'End': 'string',
'Start': 'string'}}],
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': [{'FieldName': 'resources.tags '
'| '
'compliance.control_parameters '
'| '
'databucket.tags '
'| '
'finding_info.tags',
'Filter': {'Comparison': 'EQUALS '
'| '
'NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS',
'Key': 'string',
'Value': 'string'}}],
'NestedCompositeFilters': (),
'NumberFilters': [{'FieldName': 'activity_id '
'| '
'compliance.status_id '
'| '
'confidence_score '
'| '
'severity_id '
'| '
'status_id '
'| '
'finding_info.related_events_count '
'| '
'evidences.api.response.code '
'| '
'evidences.dst_endpoint.autonomous_system.number '
'| '
'evidences.dst_endpoint.port '
'| '
'evidences.src_endpoint.autonomous_system.number '
'| '
'evidences.src_endpoint.port '
'| '
'resources.image.in_use_count',
'Filter': {'Eq': 'double',
'Gt': 'double',
'Gte': 'double',
'Lt': 'double',
'Lte': 'double'}}],
'Operator': 'AND '
'| '
'OR',
'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 '
'| '
'databucket.encryption_details.algorithm '
'| '
'databucket.encryption_details.key_uid '
'| '
'databucket.file.data_classifications.classifier_details.type '
'| '
'evidences.actor.user.account.uid '
'| '
'evidences.api.operation '
'| '
'evidences.api.response.error_message '
'| '
'evidences.api.service.name '
'| '
'evidences.connection_info.direction '
'| '
'evidences.connection_info.protocol_name '
'| '
'evidences.dst_endpoint.autonomous_system.name '
'| '
'evidences.dst_endpoint.location.city '
'| '
'evidences.dst_endpoint.location.country '
'| '
'evidences.src_endpoint.autonomous_system.name '
'| '
'evidences.src_endpoint.hostname '
'| '
'evidences.src_endpoint.location.city '
'| '
'evidences.src_endpoint.location.country '
'| '
'finding_info.analytic.name '
'| '
'malware.name '
'| '
'malware_scan_info.uid '
'| '
'malware.severity '
'| '
'resources.cloud_function.layers.uid_alt '
'| '
'resources.cloud_function.runtime '
'| '
'resources.cloud_function.user.uid '
'| '
'resources.device.encryption_details.key_uid '
'| '
'resources.device.image.uid '
'| '
'resources.image.architecture '
'| '
'resources.image.registry_uid '
'| '
'resources.image.repository_name '
'| '
'resources.image.uid '
'| '
'resources.subnet_info.uid '
'| '
'resources.vpc_uid '
'| '
'vulnerabilities.affected_code.file.path '
'| '
'vulnerabilities.affected_packages.name '
'| '
'vulnerabilities.cve.epss.score '
'| '
'vulnerabilities.cve.uid '
'| '
'vulnerabilities.related_vulnerabilities '
'| '
'cloud.account.name',
'Filter': {'Comparison': 'EQUALS '
'| '
'PREFIX '
'| '
'NOT_EQUALS '
'| '
'PREFIX_NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS '
'| '
'CONTAINS_WORD',
'Value': 'string'}}]}],
'NumberFilters': {'FieldName': {'evidences.api.response.code',
'evidences.dst_endpoint.autonomous_system.number',
'evidences.dst_endpoint.port',
'evidences.src_endpoint.autonomous_system.number',
'evidences.src_endpoint.port',
'resources.image.in_use_count'}},
'StringFilters': {'FieldName': {'cloud.account.name',
'databucket.encryption_details.algorithm',
'databucket.encryption_details.key_uid',
'databucket.file.data_classifications.classifier_details.type',
'evidences.actor.user.account.uid',
'evidences.api.operation',
'evidences.api.response.error_message',
'evidences.api.service.name',
'evidences.connection_info.direction',
'evidences.connection_info.protocol_name',
'evidences.dst_endpoint.autonomous_system.name',
'evidences.dst_endpoint.location.city',
'evidences.dst_endpoint.location.country',
'evidences.src_endpoint.autonomous_system.name',
'evidences.src_endpoint.hostname',
'evidences.src_endpoint.location.city',
'evidences.src_endpoint.location.country',
'finding_info.analytic.name',
'malware.name',
'malware.severity',
'malware_scan_info.uid',
'resources.cloud_function.layers.uid_alt',
'resources.cloud_function.runtime',
'resources.cloud_function.user.uid',
'resources.device.encryption_details.key_uid',
'resources.device.image.uid',
'resources.image.architecture',
'resources.image.registry_uid',
'resources.image.repository_name',
'resources.image.uid',
'resources.subnet_info.uid',
'resources.vpc_uid',
'vulnerabilities.affected_code.file.path',
'vulnerabilities.affected_packages.name',
'vulnerabilities.cve.epss.score',
'vulnerabilities.cve.uid',
'vulnerabilities.related_vulnerabilities'}}}}}
Return a list of findings that match the specified criteria. GetFindings and GetFindingsV2 both use securityhub:GetFindings in the Action element of an IAM policy statement. You must have permission to perform the securityhub:GetFindings action. This API is in public preview and subject to change.
See also: AWS API Documentation
Request Syntax
client.get_findings_v2(
Filters={
'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'|'databucket.encryption_details.algorithm'|'databucket.encryption_details.key_uid'|'databucket.file.data_classifications.classifier_details.type'|'evidences.actor.user.account.uid'|'evidences.api.operation'|'evidences.api.response.error_message'|'evidences.api.service.name'|'evidences.connection_info.direction'|'evidences.connection_info.protocol_name'|'evidences.dst_endpoint.autonomous_system.name'|'evidences.dst_endpoint.location.city'|'evidences.dst_endpoint.location.country'|'evidences.src_endpoint.autonomous_system.name'|'evidences.src_endpoint.hostname'|'evidences.src_endpoint.location.city'|'evidences.src_endpoint.location.country'|'finding_info.analytic.name'|'malware.name'|'malware_scan_info.uid'|'malware.severity'|'resources.cloud_function.layers.uid_alt'|'resources.cloud_function.runtime'|'resources.cloud_function.user.uid'|'resources.device.encryption_details.key_uid'|'resources.device.image.uid'|'resources.image.architecture'|'resources.image.registry_uid'|'resources.image.repository_name'|'resources.image.uid'|'resources.subnet_info.uid'|'resources.vpc_uid'|'vulnerabilities.affected_code.file.path'|'vulnerabilities.affected_packages.name'|'vulnerabilities.cve.epss.score'|'vulnerabilities.cve.uid'|'vulnerabilities.related_vulnerabilities'|'cloud.account.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'|'resources.image.created_time_dt'|'resources.image.last_used_time_dt'|'resources.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'|'evidences.api.response.code'|'evidences.dst_endpoint.autonomous_system.number'|'evidences.dst_endpoint.port'|'evidences.src_endpoint.autonomous_system.number'|'evidences.src_endpoint.port'|'resources.image.in_use_count',
'Filter': {
'Gte': 123.0,
'Lte': 123.0,
'Eq': 123.0,
'Gt': 123.0,
'Lt': 123.0
}
},
],
'MapFilters': [
{
'FieldName': 'resources.tags'|'compliance.control_parameters'|'databucket.tags'|'finding_info.tags',
'Filter': {
'Key': 'string',
'Value': 'string',
'Comparison': 'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'
}
},
],
'IpFilters': [
{
'FieldName': 'evidences.dst_endpoint.ip'|'evidences.src_endpoint.ip',
'Filter': {
'Cidr': 'string'
}
},
],
'NestedCompositeFilters': {'... recursive ...'},
'Operator': 'AND'|'OR'
},
],
'CompositeOperator': 'AND'|'OR'
},
SortCriteria=[
{
'Field': 'string',
'SortOrder': 'asc'|'desc'
},
],
NextToken='string',
MaxResults=123
)
dict
The finding attributes used to define a condition to filter the returned OCSF findings. You can filter up to 10 composite filters. For each filter type inside of a composite filter, you can provide up to 20 filters.
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 provide security 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 filter Title CONTAINS CloudFront matches findings that have a Title that includes the string CloudFront.
To search for values that exactly match the filter value, use EQUALS. For example, the filter AwsAccountId EQUALS 123456789012 only matches findings that have an account ID of 123456789012.
To search for values that start with the filter value, use PREFIX. For example, the filter ResourceRegion PREFIX us matches findings that have a ResourceRegion that starts with us. A ResourceRegion that starts with a different value, such as af, ap, or ca, doesn't match.
CONTAINS, EQUALS, and PREFIX filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Title CONTAINS CloudFront OR Title CONTAINS CloudWatch match a finding that includes either CloudFront, 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 filter Title NOT_CONTAINS CloudFront matches findings that have a Title that excludes the string CloudFront.
To search for values other than the filter value, use NOT_EQUALS. For example, the filter AwsAccountId NOT_EQUALS 123456789012 only matches findings that have an account ID other than 123456789012.
To search for values that don't start with the filter value, use PREFIX_NOT_EQUALS. For example, the filter ResourceRegion PREFIX_NOT_EQUALS us matches findings with a ResourceRegion that starts with a value other than us.
NOT_CONTAINS, NOT_EQUALS, and PREFIX_NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch match a finding that excludes both CloudFront and CloudWatch in the title.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can't provide both an EQUALS filter and a NOT_EQUALS or PREFIX_NOT_EQUALS filter on the same field. Combining filters in this way returns an error. CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can combine PREFIX filters with NOT_EQUALS or PREFIX_NOT_EQUALS filters for the same field. Security Hub first processes the PREFIX filters, and then the NOT_EQUALS or PREFIX_NOT_EQUALS filters.
For example, for the following filters, Security Hub first identifies findings that have resource types that start with either AwsIam or AwsEc2. It then excludes findings that have a resource type of AwsIamPolicy and findings that have a resource type of AwsEc2NetworkInterface.
ResourceType PREFIX AwsIam
ResourceType PREFIX AwsEc2
ResourceType NOT_EQUALS AwsIamPolicy
ResourceType NOT_EQUALS AwsEc2NetworkInterface
CONTAINS and NOT_CONTAINS operators can be used only with automation rules V1. CONTAINS_WORD operator is only supported in GetFindingsV2, GetFindingStatisticsV2, GetResourcesV2, and GetResourceStatisticsV2 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. For UserDefinedFields, 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 be Security. If you provide security 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 the ResourceTags field, the filter Department CONTAINS Security matches findings that include the value Security for the Department tag. In the same example, a finding with a value of Security team for the Department tag is a match.
To search for values that exactly match the filter value, use EQUALS. For example, for the ResourceTags field, the filter Department EQUALS Security matches findings that have the value Security for the Department tag.
CONTAINS and EQUALS filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Department CONTAINS Security OR Department CONTAINS Finance match a finding that includes either Security, 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 the ResourceTags field, the filter Department NOT_CONTAINS Finance matches findings that exclude the value Finance for the Department tag.
To search for values other than the filter value, use NOT_EQUALS. For example, for the ResourceTags field, the filter Department NOT_EQUALS Finance matches findings that don’t have the value Finance for the Department tag.
NOT_CONTAINS and NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance match a finding that excludes both the Security and Finance values.
CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can’t have both an EQUALS filter and a NOT_EQUALS filter on the same field. Combining filters in this way returns an error.
CONTAINS and NOT_CONTAINS operators can be used only with automation rules. For more information, see Automation rules in the Security Hub User Guide.
IpFilters (list) --
A list of IP address filters that allowing you to filter findings based on IP address properties.
(dict) --
The structure for filtering findings based on IP address attributes.
FieldName (string) --
The name of the IP address field to filter on.
Filter (dict) --
The IP filter for querying findings.
Cidr (string) --
A finding's CIDR value.
NestedCompositeFilters (list) --
Provides an additional level of filtering, creating a three-layer nested structure. The first layer is a CompositeFilters array with a CompositeOperator ( AND/ OR). The second layer is a CompositeFilter object that contains direct filters and NestedCompositeFilters. The third layer is NestedCompositeFilters, which contains additional filter conditions.
Operator (string) --
The logical operator used to combine multiple filter conditions.
CompositeOperator (string) --
The logical operators used to combine the filtering on multiple CompositeFilters.
list
The finding attributes used to sort the list of returned findings.
(dict) --
A collection of finding attributes used to sort findings.
Field (string) --
The finding attribute used to sort findings.
SortOrder (string) --
The order used to sort findings.
string
The token required for pagination. On your first call, set the value of this parameter to NULL. For subsequent calls, to continue listing data, set the value of this parameter to the value returned in the previous response.
integer
The maximum number of results to return.
dict
Response Syntax
{
'Findings': [
{...}|[...]|123|123.4|'string'|True|None,
],
'NextToken': 'string'
}
Response Structure
(dict) --
Findings (list) --
An array of security findings returned by the operation.
(:ref:`document<document>`) --
NextToken (string) --
The pagination token to use to request the next page of results. Otherwise, this parameter is null.
{'GroupByRules': {'Filters': {'CompositeFilters': {'DateFilters': {'FieldName': {'ResourceCreationTime',
'ResourceDetailCaptureTime'}},
'MapFilters': {'FieldName': {'ResourceTags'}},
'NestedCompositeFilters': [{'DateFilters': [{'FieldName': 'ResourceDetailCaptureTime '
'| '
'ResourceCreationTime',
'Filter': {'DateRange': {'Unit': 'DAYS',
'Value': 'integer'},
'End': 'string',
'Start': 'string'}}],
'MapFilters': [{'FieldName': 'ResourceTags',
'Filter': {'Comparison': 'EQUALS '
'| '
'NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS',
'Key': 'string',
'Value': 'string'}}],
'NestedCompositeFilters': (),
'NumberFilters': [{'FieldName': 'FindingsSummary.TotalFindings '
'| '
'FindingsSummary.Severities.Other '
'| '
'FindingsSummary.Severities.Fatal '
'| '
'FindingsSummary.Severities.Critical '
'| '
'FindingsSummary.Severities.High '
'| '
'FindingsSummary.Severities.Medium '
'| '
'FindingsSummary.Severities.Low '
'| '
'FindingsSummary.Severities.Informational '
'| '
'FindingsSummary.Severities.Unknown',
'Filter': {'Eq': 'double',
'Gt': 'double',
'Gte': 'double',
'Lt': 'double',
'Lte': 'double'}}],
'Operator': 'AND '
'| '
'OR',
'StringFilters': [{'FieldName': 'ResourceGuid '
'| '
'ResourceId '
'| '
'AccountId '
'| '
'Region '
'| '
'ResourceCategory '
'| '
'ResourceType '
'| '
'ResourceName '
'| '
'FindingsSummary.FindingType '
'| '
'FindingsSummary.ProductName',
'Filter': {'Comparison': 'EQUALS '
'| '
'PREFIX '
'| '
'NOT_EQUALS '
'| '
'PREFIX_NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS '
'| '
'CONTAINS_WORD',
'Value': 'string'}}]}],
'NumberFilters': {'FieldName': {'FindingsSummary.Severities.Critical',
'FindingsSummary.Severities.Fatal',
'FindingsSummary.Severities.High',
'FindingsSummary.Severities.Informational',
'FindingsSummary.Severities.Low',
'FindingsSummary.Severities.Medium',
'FindingsSummary.Severities.Other',
'FindingsSummary.Severities.Unknown',
'FindingsSummary.TotalFindings'}},
'StringFilters': {'FieldName': {'AccountId',
'FindingsSummary.FindingType',
'FindingsSummary.ProductName',
'Region',
'ResourceCategory',
'ResourceGuid',
'ResourceId',
'ResourceName',
'ResourceType'}}}},
'GroupByField': {'AccountId',
'FindingsSummary.FindingType',
'Region',
'ResourceCategory',
'ResourceName',
'ResourceType'}}}
Retrieves statistical information about Amazon Web Services resources and their associated security findings. This API is in public preview and subject to change.
See also: AWS API Documentation
Request Syntax
client.get_resources_statistics_v2(
GroupByRules=[
{
'GroupByField': 'AccountId'|'Region'|'ResourceCategory'|'ResourceType'|'ResourceName'|'FindingsSummary.FindingType',
'Filters': {
'CompositeFilters': [
{
'StringFilters': [
{
'FieldName': 'ResourceGuid'|'ResourceId'|'AccountId'|'Region'|'ResourceCategory'|'ResourceType'|'ResourceName'|'FindingsSummary.FindingType'|'FindingsSummary.ProductName',
'Filter': {
'Value': 'string',
'Comparison': 'EQUALS'|'PREFIX'|'NOT_EQUALS'|'PREFIX_NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'|'CONTAINS_WORD'
}
},
],
'DateFilters': [
{
'FieldName': 'ResourceDetailCaptureTime'|'ResourceCreationTime',
'Filter': {
'Start': 'string',
'End': 'string',
'DateRange': {
'Value': 123,
'Unit': 'DAYS'
}
}
},
],
'NumberFilters': [
{
'FieldName': 'FindingsSummary.TotalFindings'|'FindingsSummary.Severities.Other'|'FindingsSummary.Severities.Fatal'|'FindingsSummary.Severities.Critical'|'FindingsSummary.Severities.High'|'FindingsSummary.Severities.Medium'|'FindingsSummary.Severities.Low'|'FindingsSummary.Severities.Informational'|'FindingsSummary.Severities.Unknown',
'Filter': {
'Gte': 123.0,
'Lte': 123.0,
'Eq': 123.0,
'Gt': 123.0,
'Lt': 123.0
}
},
],
'MapFilters': [
{
'FieldName': 'ResourceTags',
'Filter': {
'Key': 'string',
'Value': 'string',
'Comparison': 'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'
}
},
],
'NestedCompositeFilters': {'... recursive ...'},
'Operator': 'AND'|'OR'
},
],
'CompositeOperator': 'AND'|'OR'
}
},
],
SortOrder='asc'|'desc',
MaxStatisticResults=123
)
list
[REQUIRED]
How resource statistics should be aggregated and organized in the response.
(dict) --
Defines the configuration for organizing and categorizing Amazon Web Services resources based on associated security findings.
GroupByField (string) -- [REQUIRED]
Specifies the attribute that resources should be grouped by.
Filters (dict) --
The criteria used to select resources and associated security findings.
CompositeFilters (list) --
A collection of complex filtering conditions that can be applied to Amazon Web Services resources.
(dict) --
Enables the creation of criteria for Amazon Web Services resources in Security Hub.
StringFilters (list) --
Enables filtering based on string field values.
(dict) --
Enables filtering of Amazon Web Services resources based on string field values.
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 provide security 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 filter Title CONTAINS CloudFront matches findings that have a Title that includes the string CloudFront.
To search for values that exactly match the filter value, use EQUALS. For example, the filter AwsAccountId EQUALS 123456789012 only matches findings that have an account ID of 123456789012.
To search for values that start with the filter value, use PREFIX. For example, the filter ResourceRegion PREFIX us matches findings that have a ResourceRegion that starts with us. A ResourceRegion that starts with a different value, such as af, ap, or ca, doesn't match.
CONTAINS, EQUALS, and PREFIX filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Title CONTAINS CloudFront OR Title CONTAINS CloudWatch match a finding that includes either CloudFront, 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 filter Title NOT_CONTAINS CloudFront matches findings that have a Title that excludes the string CloudFront.
To search for values other than the filter value, use NOT_EQUALS. For example, the filter AwsAccountId NOT_EQUALS 123456789012 only matches findings that have an account ID other than 123456789012.
To search for values that don't start with the filter value, use PREFIX_NOT_EQUALS. For example, the filter ResourceRegion PREFIX_NOT_EQUALS us matches findings with a ResourceRegion that starts with a value other than us.
NOT_CONTAINS, NOT_EQUALS, and PREFIX_NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch match a finding that excludes both CloudFront and CloudWatch in the title.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can't provide both an EQUALS filter and a NOT_EQUALS or PREFIX_NOT_EQUALS filter on the same field. Combining filters in this way returns an error. CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can combine PREFIX filters with NOT_EQUALS or PREFIX_NOT_EQUALS filters for the same field. Security Hub first processes the PREFIX filters, and then the NOT_EQUALS or PREFIX_NOT_EQUALS filters.
For example, for the following filters, Security Hub first identifies findings that have resource types that start with either AwsIam or AwsEc2. It then excludes findings that have a resource type of AwsIamPolicy and findings that have a resource type of AwsEc2NetworkInterface.
ResourceType PREFIX AwsIam
ResourceType PREFIX AwsEc2
ResourceType NOT_EQUALS AwsIamPolicy
ResourceType NOT_EQUALS AwsEc2NetworkInterface
CONTAINS and NOT_CONTAINS operators can be used only with automation rules V1. CONTAINS_WORD operator is only supported in GetFindingsV2, GetFindingStatisticsV2, GetResourcesV2, and GetResourceStatisticsV2 APIs. For more information, see Automation rules in the Security Hub User Guide.
DateFilters (list) --
Enables filtering based on date and timestamp field values.
(dict) --
Enables the filtering of Amazon Web Services resources based on date and timestamp attributes.
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.
NumberFilters (list) --
Enables filtering based on numerical field values.
(dict) --
Enables filtering of Amazon Web Services resources based on numerical values.
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-based field values.
(dict) --
Enables filtering of Amazon Web Services resources based on key-value map attributes.
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. For UserDefinedFields, 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 be Security. If you provide security 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 the ResourceTags field, the filter Department CONTAINS Security matches findings that include the value Security for the Department tag. In the same example, a finding with a value of Security team for the Department tag is a match.
To search for values that exactly match the filter value, use EQUALS. For example, for the ResourceTags field, the filter Department EQUALS Security matches findings that have the value Security for the Department tag.
CONTAINS and EQUALS filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Department CONTAINS Security OR Department CONTAINS Finance match a finding that includes either Security, 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 the ResourceTags field, the filter Department NOT_CONTAINS Finance matches findings that exclude the value Finance for the Department tag.
To search for values other than the filter value, use NOT_EQUALS. For example, for the ResourceTags field, the filter Department NOT_EQUALS Finance matches findings that don’t have the value Finance for the Department tag.
NOT_CONTAINS and NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance match a finding that excludes both the Security and Finance values.
CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can’t have both an EQUALS filter and a NOT_EQUALS filter on the same field. Combining filters in this way returns an error.
CONTAINS and NOT_CONTAINS operators can be used only with automation rules. For more information, see Automation rules in the Security Hub User Guide.
NestedCompositeFilters (list) --
Provides an additional level of filtering, creating a three-layer nested structure. The first layer is a CompositeFilters array with a CompositeOperator ( AND/ OR). The second layer is a CompositeFilter object that contains direct filters and NestedCompositeFilters. The third layer is NestedCompositeFilters, which contains additional filter conditions.
Operator (string) --
The logical operator used to combine multiple filter conditions.
CompositeOperator (string) --
The logical operator used to combine multiple filter conditions in the structure.
string
Sorts aggregated statistics.
integer
The maximum number of results to be returned.
dict
Response Syntax
{
'GroupByResults': [
{
'GroupByField': 'string',
'GroupByValues': [
{
'FieldValue': 'string',
'Count': 123
},
]
},
]
}
Response Structure
(dict) --
GroupByResults (list) --
The aggregated statistics about resources based on the specified grouping rule.
(dict) --
Represents finding statistics grouped by GroupedByField.
GroupByField (string) --
The attribute by which filtered security findings should be grouped.
GroupByValues (list) --
An array of grouped values and their respective counts for each GroupByField.
(dict) --
Represents individual aggregated results when grouping security findings for each GroupByField.
FieldValue (string) --
The value of the field by which findings are grouped.
Count (integer) --
The number of findings for a specific FieldValue and GroupByField.
{'Filters': {'CompositeFilters': {'DateFilters': {'FieldName': {'ResourceCreationTime',
'ResourceDetailCaptureTime'}},
'MapFilters': {'FieldName': {'ResourceTags'}},
'NestedCompositeFilters': [{'DateFilters': [{'FieldName': 'ResourceDetailCaptureTime '
'| '
'ResourceCreationTime',
'Filter': {'DateRange': {'Unit': 'DAYS',
'Value': 'integer'},
'End': 'string',
'Start': 'string'}}],
'MapFilters': [{'FieldName': 'ResourceTags',
'Filter': {'Comparison': 'EQUALS '
'| '
'NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS',
'Key': 'string',
'Value': 'string'}}],
'NestedCompositeFilters': (),
'NumberFilters': [{'FieldName': 'FindingsSummary.TotalFindings '
'| '
'FindingsSummary.Severities.Other '
'| '
'FindingsSummary.Severities.Fatal '
'| '
'FindingsSummary.Severities.Critical '
'| '
'FindingsSummary.Severities.High '
'| '
'FindingsSummary.Severities.Medium '
'| '
'FindingsSummary.Severities.Low '
'| '
'FindingsSummary.Severities.Informational '
'| '
'FindingsSummary.Severities.Unknown',
'Filter': {'Eq': 'double',
'Gt': 'double',
'Gte': 'double',
'Lt': 'double',
'Lte': 'double'}}],
'Operator': 'AND '
'| '
'OR',
'StringFilters': [{'FieldName': 'ResourceGuid '
'| '
'ResourceId '
'| '
'AccountId '
'| '
'Region '
'| '
'ResourceCategory '
'| '
'ResourceType '
'| '
'ResourceName '
'| '
'FindingsSummary.FindingType '
'| '
'FindingsSummary.ProductName',
'Filter': {'Comparison': 'EQUALS '
'| '
'PREFIX '
'| '
'NOT_EQUALS '
'| '
'PREFIX_NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS '
'| '
'CONTAINS_WORD',
'Value': 'string'}}]}],
'NumberFilters': {'FieldName': {'FindingsSummary.Severities.Critical',
'FindingsSummary.Severities.Fatal',
'FindingsSummary.Severities.High',
'FindingsSummary.Severities.Informational',
'FindingsSummary.Severities.Low',
'FindingsSummary.Severities.Medium',
'FindingsSummary.Severities.Other',
'FindingsSummary.Severities.Unknown',
'FindingsSummary.TotalFindings'}},
'StringFilters': {'FieldName': {'AccountId',
'FindingsSummary.FindingType',
'FindingsSummary.ProductName',
'Region',
'ResourceCategory',
'ResourceGuid',
'ResourceId',
'ResourceName',
'ResourceType'}}}}}
Response {'Resources': {'ResourceGuid': 'string'}}
Returns a list of resources. This API is in public preview and subject to change.
See also: AWS API Documentation
Request Syntax
client.get_resources_v2(
Filters={
'CompositeFilters': [
{
'StringFilters': [
{
'FieldName': 'ResourceGuid'|'ResourceId'|'AccountId'|'Region'|'ResourceCategory'|'ResourceType'|'ResourceName'|'FindingsSummary.FindingType'|'FindingsSummary.ProductName',
'Filter': {
'Value': 'string',
'Comparison': 'EQUALS'|'PREFIX'|'NOT_EQUALS'|'PREFIX_NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'|'CONTAINS_WORD'
}
},
],
'DateFilters': [
{
'FieldName': 'ResourceDetailCaptureTime'|'ResourceCreationTime',
'Filter': {
'Start': 'string',
'End': 'string',
'DateRange': {
'Value': 123,
'Unit': 'DAYS'
}
}
},
],
'NumberFilters': [
{
'FieldName': 'FindingsSummary.TotalFindings'|'FindingsSummary.Severities.Other'|'FindingsSummary.Severities.Fatal'|'FindingsSummary.Severities.Critical'|'FindingsSummary.Severities.High'|'FindingsSummary.Severities.Medium'|'FindingsSummary.Severities.Low'|'FindingsSummary.Severities.Informational'|'FindingsSummary.Severities.Unknown',
'Filter': {
'Gte': 123.0,
'Lte': 123.0,
'Eq': 123.0,
'Gt': 123.0,
'Lt': 123.0
}
},
],
'MapFilters': [
{
'FieldName': 'ResourceTags',
'Filter': {
'Key': 'string',
'Value': 'string',
'Comparison': 'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'
}
},
],
'NestedCompositeFilters': {'... recursive ...'},
'Operator': 'AND'|'OR'
},
],
'CompositeOperator': 'AND'|'OR'
},
SortCriteria=[
{
'Field': 'string',
'SortOrder': 'asc'|'desc'
},
],
NextToken='string',
MaxResults=123
)
dict
Filters resources based on a set of criteria.
CompositeFilters (list) --
A collection of complex filtering conditions that can be applied to Amazon Web Services resources.
(dict) --
Enables the creation of criteria for Amazon Web Services resources in Security Hub.
StringFilters (list) --
Enables filtering based on string field values.
(dict) --
Enables filtering of Amazon Web Services resources based on string field values.
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 provide security 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 filter Title CONTAINS CloudFront matches findings that have a Title that includes the string CloudFront.
To search for values that exactly match the filter value, use EQUALS. For example, the filter AwsAccountId EQUALS 123456789012 only matches findings that have an account ID of 123456789012.
To search for values that start with the filter value, use PREFIX. For example, the filter ResourceRegion PREFIX us matches findings that have a ResourceRegion that starts with us. A ResourceRegion that starts with a different value, such as af, ap, or ca, doesn't match.
CONTAINS, EQUALS, and PREFIX filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Title CONTAINS CloudFront OR Title CONTAINS CloudWatch match a finding that includes either CloudFront, 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 filter Title NOT_CONTAINS CloudFront matches findings that have a Title that excludes the string CloudFront.
To search for values other than the filter value, use NOT_EQUALS. For example, the filter AwsAccountId NOT_EQUALS 123456789012 only matches findings that have an account ID other than 123456789012.
To search for values that don't start with the filter value, use PREFIX_NOT_EQUALS. For example, the filter ResourceRegion PREFIX_NOT_EQUALS us matches findings with a ResourceRegion that starts with a value other than us.
NOT_CONTAINS, NOT_EQUALS, and PREFIX_NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch match a finding that excludes both CloudFront and CloudWatch in the title.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can't provide both an EQUALS filter and a NOT_EQUALS or PREFIX_NOT_EQUALS filter on the same field. Combining filters in this way returns an error. CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can combine PREFIX filters with NOT_EQUALS or PREFIX_NOT_EQUALS filters for the same field. Security Hub first processes the PREFIX filters, and then the NOT_EQUALS or PREFIX_NOT_EQUALS filters.
For example, for the following filters, Security Hub first identifies findings that have resource types that start with either AwsIam or AwsEc2. It then excludes findings that have a resource type of AwsIamPolicy and findings that have a resource type of AwsEc2NetworkInterface.
ResourceType PREFIX AwsIam
ResourceType PREFIX AwsEc2
ResourceType NOT_EQUALS AwsIamPolicy
ResourceType NOT_EQUALS AwsEc2NetworkInterface
CONTAINS and NOT_CONTAINS operators can be used only with automation rules V1. CONTAINS_WORD operator is only supported in GetFindingsV2, GetFindingStatisticsV2, GetResourcesV2, and GetResourceStatisticsV2 APIs. For more information, see Automation rules in the Security Hub User Guide.
DateFilters (list) --
Enables filtering based on date and timestamp field values.
(dict) --
Enables the filtering of Amazon Web Services resources based on date and timestamp attributes.
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.
NumberFilters (list) --
Enables filtering based on numerical field values.
(dict) --
Enables filtering of Amazon Web Services resources based on numerical values.
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-based field values.
(dict) --
Enables filtering of Amazon Web Services resources based on key-value map attributes.
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. For UserDefinedFields, 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 be Security. If you provide security 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 the ResourceTags field, the filter Department CONTAINS Security matches findings that include the value Security for the Department tag. In the same example, a finding with a value of Security team for the Department tag is a match.
To search for values that exactly match the filter value, use EQUALS. For example, for the ResourceTags field, the filter Department EQUALS Security matches findings that have the value Security for the Department tag.
CONTAINS and EQUALS filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Department CONTAINS Security OR Department CONTAINS Finance match a finding that includes either Security, 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 the ResourceTags field, the filter Department NOT_CONTAINS Finance matches findings that exclude the value Finance for the Department tag.
To search for values other than the filter value, use NOT_EQUALS. For example, for the ResourceTags field, the filter Department NOT_EQUALS Finance matches findings that don’t have the value Finance for the Department tag.
NOT_CONTAINS and NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance match a finding that excludes both the Security and Finance values.
CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can’t have both an EQUALS filter and a NOT_EQUALS filter on the same field. Combining filters in this way returns an error.
CONTAINS and NOT_CONTAINS operators can be used only with automation rules. For more information, see Automation rules in the Security Hub User Guide.
NestedCompositeFilters (list) --
Provides an additional level of filtering, creating a three-layer nested structure. The first layer is a CompositeFilters array with a CompositeOperator ( AND/ OR). The second layer is a CompositeFilter object that contains direct filters and NestedCompositeFilters. The third layer is NestedCompositeFilters, which contains additional filter conditions.
Operator (string) --
The logical operator used to combine multiple filter conditions.
CompositeOperator (string) --
The logical operator used to combine multiple filter conditions in the structure.
list
The finding attributes used to sort the list of returned findings.
(dict) --
A collection of finding attributes used to sort findings.
Field (string) --
The finding attribute used to sort findings.
SortOrder (string) --
The order used to sort findings.
string
The token required for pagination. On your first call, set the value of this parameter to NULL. For subsequent calls, to continue listing data, set the value of this parameter to the value returned in the previous response.
integer
The maximum number of results to return.
dict
Response Syntax
{
'Resources': [
{
'ResourceGuid': 'string',
'ResourceId': 'string',
'AccountId': 'string',
'Region': 'string',
'ResourceCategory': 'Compute'|'Database'|'Storage'|'Code'|'AI/ML'|'Identity'|'Network'|'Other',
'ResourceType': 'string',
'ResourceName': 'string',
'ResourceCreationTimeDt': 'string',
'ResourceDetailCaptureTimeDt': 'string',
'FindingsSummary': [
{
'FindingType': 'string',
'ProductName': 'string',
'TotalFindings': 123,
'Severities': {
'Other': 123,
'Fatal': 123,
'Critical': 123,
'High': 123,
'Medium': 123,
'Low': 123,
'Informational': 123,
'Unknown': 123
}
},
],
'ResourceTags': [
{
'Key': 'string',
'Value': 'string'
},
],
'ResourceConfig': {...}|[...]|123|123.4|'string'|True|None
},
],
'NextToken': 'string'
}
Response Structure
(dict) --
Resources (list) --
Filters resources based on a set of criteria.
(dict) --
Provides comprehensive details about an Amazon Web Services resource and its associated security findings.
ResourceGuid (string) --
The global identifier used to identify a resource.
ResourceId (string) --
The unique identifier for a resource.
AccountId (string) --
The Amazon Web Services account that owns the resource.
Region (string) --
The Amazon Web Services Region where the resource is located.
ResourceCategory (string) --
The grouping where the resource belongs.
ResourceType (string) --
The type of resource.
ResourceName (string) --
The name of the resource.
ResourceCreationTimeDt (string) --
The time when the resource was created.
ResourceDetailCaptureTimeDt (string) --
The timestamp when information about the resource was captured.
FindingsSummary (list) --
An aggregated view of security findings associated with a resource.
(dict) --
A list of summaries for all finding types on a resource.
FindingType (string) --
The category or classification of the security finding.
ProductName (string) --
The name of the product associated with the security finding.
TotalFindings (integer) --
The total count of security findings.
Severities (dict) --
A breakdown of security findings by their severity levels.
Other (integer) --
The number of findings not in any of the severity categories.
Fatal (integer) --
The number of findings with a severity level of fatal.
Critical (integer) --
The number of findings with a severity level of critical.
High (integer) --
The number of findings with a severity level of high.
Medium (integer) --
The number of findings with a severity level of medium.
Low (integer) --
The number of findings with a severity level of low.
Informational (integer) --
The number of findings that provide security-related information.
Unknown (integer) --
The number of findings with a severity level cannot be determined.
ResourceTags (list) --
The key-value pairs associated with a resource.
(dict) --
Represents tag information associated with Amazon Web Services resources.
Key (string) --
The identifier or name of the tag.
Value (string) --
The data associated with the tag key.
ResourceConfig (:ref:`document<document>`) --
The configuration details of a resource.
NextToken (string) --
The pagination token to use to request the next page of results. Otherwise, this parameter is null.
{'Criteria': {'OcsfFindingCriteria': {'CompositeFilters': {'DateFilters': {'FieldName': {'resources.image.created_time_dt',
'resources.image.last_used_time_dt',
'resources.modified_time_dt'}},
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': {'FieldName': {'compliance.control_parameters',
'databucket.tags',
'finding_info.tags'}},
'NestedCompositeFilters': [{'BooleanFilters': [{'FieldName': 'compliance.assessments.meets_criteria '
'| '
'vulnerabilities.is_exploit_available '
'| '
'vulnerabilities.is_fix_available',
'Filter': {'Value': 'boolean'}}],
'DateFilters': [{'FieldName': 'finding_info.created_time_dt '
'| '
'finding_info.first_seen_time_dt '
'| '
'finding_info.last_seen_time_dt '
'| '
'finding_info.modified_time_dt '
'| '
'resources.image.created_time_dt '
'| '
'resources.image.last_used_time_dt '
'| '
'resources.modified_time_dt',
'Filter': {'DateRange': {'Unit': 'DAYS',
'Value': 'integer'},
'End': 'string',
'Start': 'string'}}],
'IpFilters': [{'FieldName': 'evidences.dst_endpoint.ip '
'| '
'evidences.src_endpoint.ip',
'Filter': {'Cidr': 'string'}}],
'MapFilters': [{'FieldName': 'resources.tags '
'| '
'compliance.control_parameters '
'| '
'databucket.tags '
'| '
'finding_info.tags',
'Filter': {'Comparison': 'EQUALS '
'| '
'NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS',
'Key': 'string',
'Value': 'string'}}],
'NestedCompositeFilters': (),
'NumberFilters': [{'FieldName': 'activity_id '
'| '
'compliance.status_id '
'| '
'confidence_score '
'| '
'severity_id '
'| '
'status_id '
'| '
'finding_info.related_events_count '
'| '
'evidences.api.response.code '
'| '
'evidences.dst_endpoint.autonomous_system.number '
'| '
'evidences.dst_endpoint.port '
'| '
'evidences.src_endpoint.autonomous_system.number '
'| '
'evidences.src_endpoint.port '
'| '
'resources.image.in_use_count',
'Filter': {'Eq': 'double',
'Gt': 'double',
'Gte': 'double',
'Lt': 'double',
'Lte': 'double'}}],
'Operator': 'AND '
'| '
'OR',
'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 '
'| '
'databucket.encryption_details.algorithm '
'| '
'databucket.encryption_details.key_uid '
'| '
'databucket.file.data_classifications.classifier_details.type '
'| '
'evidences.actor.user.account.uid '
'| '
'evidences.api.operation '
'| '
'evidences.api.response.error_message '
'| '
'evidences.api.service.name '
'| '
'evidences.connection_info.direction '
'| '
'evidences.connection_info.protocol_name '
'| '
'evidences.dst_endpoint.autonomous_system.name '
'| '
'evidences.dst_endpoint.location.city '
'| '
'evidences.dst_endpoint.location.country '
'| '
'evidences.src_endpoint.autonomous_system.name '
'| '
'evidences.src_endpoint.hostname '
'| '
'evidences.src_endpoint.location.city '
'| '
'evidences.src_endpoint.location.country '
'| '
'finding_info.analytic.name '
'| '
'malware.name '
'| '
'malware_scan_info.uid '
'| '
'malware.severity '
'| '
'resources.cloud_function.layers.uid_alt '
'| '
'resources.cloud_function.runtime '
'| '
'resources.cloud_function.user.uid '
'| '
'resources.device.encryption_details.key_uid '
'| '
'resources.device.image.uid '
'| '
'resources.image.architecture '
'| '
'resources.image.registry_uid '
'| '
'resources.image.repository_name '
'| '
'resources.image.uid '
'| '
'resources.subnet_info.uid '
'| '
'resources.vpc_uid '
'| '
'vulnerabilities.affected_code.file.path '
'| '
'vulnerabilities.affected_packages.name '
'| '
'vulnerabilities.cve.epss.score '
'| '
'vulnerabilities.cve.uid '
'| '
'vulnerabilities.related_vulnerabilities '
'| '
'cloud.account.name',
'Filter': {'Comparison': 'EQUALS '
'| '
'PREFIX '
'| '
'NOT_EQUALS '
'| '
'PREFIX_NOT_EQUALS '
'| '
'CONTAINS '
'| '
'NOT_CONTAINS '
'| '
'CONTAINS_WORD',
'Value': 'string'}}]}],
'NumberFilters': {'FieldName': {'evidences.api.response.code',
'evidences.dst_endpoint.autonomous_system.number',
'evidences.dst_endpoint.port',
'evidences.src_endpoint.autonomous_system.number',
'evidences.src_endpoint.port',
'resources.image.in_use_count'}},
'StringFilters': {'FieldName': {'cloud.account.name',
'databucket.encryption_details.algorithm',
'databucket.encryption_details.key_uid',
'databucket.file.data_classifications.classifier_details.type',
'evidences.actor.user.account.uid',
'evidences.api.operation',
'evidences.api.response.error_message',
'evidences.api.service.name',
'evidences.connection_info.direction',
'evidences.connection_info.protocol_name',
'evidences.dst_endpoint.autonomous_system.name',
'evidences.dst_endpoint.location.city',
'evidences.dst_endpoint.location.country',
'evidences.src_endpoint.autonomous_system.name',
'evidences.src_endpoint.hostname',
'evidences.src_endpoint.location.city',
'evidences.src_endpoint.location.country',
'finding_info.analytic.name',
'malware.name',
'malware.severity',
'malware_scan_info.uid',
'resources.cloud_function.layers.uid_alt',
'resources.cloud_function.runtime',
'resources.cloud_function.user.uid',
'resources.device.encryption_details.key_uid',
'resources.device.image.uid',
'resources.image.architecture',
'resources.image.registry_uid',
'resources.image.repository_name',
'resources.image.uid',
'resources.subnet_info.uid',
'resources.vpc_uid',
'vulnerabilities.affected_code.file.path',
'vulnerabilities.affected_packages.name',
'vulnerabilities.cve.epss.score',
'vulnerabilities.cve.uid',
'vulnerabilities.related_vulnerabilities'}}}}}}
Updates a V2 automation rule. This API is in public preview and subject to change.
See also: AWS API Documentation
Request Syntax
client.update_automation_rule_v2(
Identifier='string',
RuleStatus='ENABLED'|'DISABLED',
RuleOrder=...,
Description='string',
RuleName='string',
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'|'databucket.encryption_details.algorithm'|'databucket.encryption_details.key_uid'|'databucket.file.data_classifications.classifier_details.type'|'evidences.actor.user.account.uid'|'evidences.api.operation'|'evidences.api.response.error_message'|'evidences.api.service.name'|'evidences.connection_info.direction'|'evidences.connection_info.protocol_name'|'evidences.dst_endpoint.autonomous_system.name'|'evidences.dst_endpoint.location.city'|'evidences.dst_endpoint.location.country'|'evidences.src_endpoint.autonomous_system.name'|'evidences.src_endpoint.hostname'|'evidences.src_endpoint.location.city'|'evidences.src_endpoint.location.country'|'finding_info.analytic.name'|'malware.name'|'malware_scan_info.uid'|'malware.severity'|'resources.cloud_function.layers.uid_alt'|'resources.cloud_function.runtime'|'resources.cloud_function.user.uid'|'resources.device.encryption_details.key_uid'|'resources.device.image.uid'|'resources.image.architecture'|'resources.image.registry_uid'|'resources.image.repository_name'|'resources.image.uid'|'resources.subnet_info.uid'|'resources.vpc_uid'|'vulnerabilities.affected_code.file.path'|'vulnerabilities.affected_packages.name'|'vulnerabilities.cve.epss.score'|'vulnerabilities.cve.uid'|'vulnerabilities.related_vulnerabilities'|'cloud.account.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'|'resources.image.created_time_dt'|'resources.image.last_used_time_dt'|'resources.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'|'evidences.api.response.code'|'evidences.dst_endpoint.autonomous_system.number'|'evidences.dst_endpoint.port'|'evidences.src_endpoint.autonomous_system.number'|'evidences.src_endpoint.port'|'resources.image.in_use_count',
'Filter': {
'Gte': 123.0,
'Lte': 123.0,
'Eq': 123.0,
'Gt': 123.0,
'Lt': 123.0
}
},
],
'MapFilters': [
{
'FieldName': 'resources.tags'|'compliance.control_parameters'|'databucket.tags'|'finding_info.tags',
'Filter': {
'Key': 'string',
'Value': 'string',
'Comparison': 'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'
}
},
],
'IpFilters': [
{
'FieldName': 'evidences.dst_endpoint.ip'|'evidences.src_endpoint.ip',
'Filter': {
'Cidr': 'string'
}
},
],
'NestedCompositeFilters': {'... recursive ...'},
'Operator': 'AND'|'OR'
},
],
'CompositeOperator': 'AND'|'OR'
}
},
Actions=[
{
'Type': 'FINDING_FIELDS_UPDATE'|'EXTERNAL_INTEGRATION',
'FindingFieldsUpdate': {
'SeverityId': 123,
'Comment': 'string',
'StatusId': 123
},
'ExternalIntegrationConfiguration': {
'ConnectorArn': 'string'
}
},
]
)
string
[REQUIRED]
The ARN of the automation rule.
string
The status of the automation rule.
float
Represents a value for the rule priority.
string
A description of the automation rule.
string
The name of the automation rule.
dict
The filtering type and configuration of the automation rule.
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 provide security 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 filter Title CONTAINS CloudFront matches findings that have a Title that includes the string CloudFront.
To search for values that exactly match the filter value, use EQUALS. For example, the filter AwsAccountId EQUALS 123456789012 only matches findings that have an account ID of 123456789012.
To search for values that start with the filter value, use PREFIX. For example, the filter ResourceRegion PREFIX us matches findings that have a ResourceRegion that starts with us. A ResourceRegion that starts with a different value, such as af, ap, or ca, doesn't match.
CONTAINS, EQUALS, and PREFIX filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Title CONTAINS CloudFront OR Title CONTAINS CloudWatch match a finding that includes either CloudFront, 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 filter Title NOT_CONTAINS CloudFront matches findings that have a Title that excludes the string CloudFront.
To search for values other than the filter value, use NOT_EQUALS. For example, the filter AwsAccountId NOT_EQUALS 123456789012 only matches findings that have an account ID other than 123456789012.
To search for values that don't start with the filter value, use PREFIX_NOT_EQUALS. For example, the filter ResourceRegion PREFIX_NOT_EQUALS us matches findings with a ResourceRegion that starts with a value other than us.
NOT_CONTAINS, NOT_EQUALS, and PREFIX_NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Title NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch match a finding that excludes both CloudFront and CloudWatch in the title.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can't provide both an EQUALS filter and a NOT_EQUALS or PREFIX_NOT_EQUALS filter on the same field. Combining filters in this way returns an error. CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can combine PREFIX filters with NOT_EQUALS or PREFIX_NOT_EQUALS filters for the same field. Security Hub first processes the PREFIX filters, and then the NOT_EQUALS or PREFIX_NOT_EQUALS filters.
For example, for the following filters, Security Hub first identifies findings that have resource types that start with either AwsIam or AwsEc2. It then excludes findings that have a resource type of AwsIamPolicy and findings that have a resource type of AwsEc2NetworkInterface.
ResourceType PREFIX AwsIam
ResourceType PREFIX AwsEc2
ResourceType NOT_EQUALS AwsIamPolicy
ResourceType NOT_EQUALS AwsEc2NetworkInterface
CONTAINS and NOT_CONTAINS operators can be used only with automation rules V1. CONTAINS_WORD operator is only supported in GetFindingsV2, GetFindingStatisticsV2, GetResourcesV2, and GetResourceStatisticsV2 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. For UserDefinedFields, 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 be Security. If you provide security 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 the ResourceTags field, the filter Department CONTAINS Security matches findings that include the value Security for the Department tag. In the same example, a finding with a value of Security team for the Department tag is a match.
To search for values that exactly match the filter value, use EQUALS. For example, for the ResourceTags field, the filter Department EQUALS Security matches findings that have the value Security for the Department tag.
CONTAINS and EQUALS filters on the same field are joined by OR. A finding matches if it matches any one of those filters. For example, the filters Department CONTAINS Security OR Department CONTAINS Finance match a finding that includes either Security, 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 the ResourceTags field, the filter Department NOT_CONTAINS Finance matches findings that exclude the value Finance for the Department tag.
To search for values other than the filter value, use NOT_EQUALS. For example, for the ResourceTags field, the filter Department NOT_EQUALS Finance matches findings that don’t have the value Finance for the Department tag.
NOT_CONTAINS and NOT_EQUALS filters on the same field are joined by AND. A finding matches only if it matches all of those filters. For example, the filters Department NOT_CONTAINS Security AND Department NOT_CONTAINS Finance match a finding that excludes both the Security and Finance values.
CONTAINS filters can only be used with other CONTAINS filters. NOT_CONTAINS filters can only be used with other NOT_CONTAINS filters.
You can’t have both a CONTAINS filter and a NOT_CONTAINS filter on the same field. Similarly, you can’t have both an EQUALS filter and a NOT_EQUALS filter on the same field. Combining filters in this way returns an error.
CONTAINS and NOT_CONTAINS operators can be used only with automation rules. For more information, see Automation rules in the Security Hub User Guide.
IpFilters (list) --
A list of IP address filters that allowing you to filter findings based on IP address properties.
(dict) --
The structure for filtering findings based on IP address attributes.
FieldName (string) --
The name of the IP address field to filter on.
Filter (dict) --
The IP filter for querying findings.
Cidr (string) --
A finding's CIDR value.
NestedCompositeFilters (list) --
Provides an additional level of filtering, creating a three-layer nested structure. The first layer is a CompositeFilters array with a CompositeOperator ( AND/ OR). The second layer is a CompositeFilter object that contains direct filters and NestedCompositeFilters. The third layer is NestedCompositeFilters, which contains additional filter conditions.
Operator (string) --
The logical operator used to combine multiple filter conditions.
CompositeOperator (string) --
The logical operators used to combine the filtering on multiple CompositeFilters.
list
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.
dict
Response Syntax
{}
Response Structure
(dict) --