[ aws . securityhub ]
Updates a V2 automation rule. This API is in private preview and subject to change.
See also: AWS API Documentation
update-automation-rule-v2
--identifier <value>
[--rule-status <value>]
[--rule-order <value>]
[--description <value>]
[--rule-name <value>]
[--criteria <value>]
[--actions <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
--identifier
(string)
The ARN of the automation rule.
--rule-status
(string)
The status of the automation rule.
Possible values:
ENABLED
DISABLED
--rule-order
(float)
Represents a value for the rule priority.
--description
(string)
A description of the automation rule.
--rule-name
(string)
The name of the automation rule.
--criteria
(tagged union structure)
The filtering type and configuration of the automation rule.
Note
This is a Tagged Union structure. Only one of the following top level keys can be set:OcsfFindingCriteria
.OcsfFindingCriteria -> (structure)
The filtering conditions that align with OCSF standards.
CompositeFilters -> (list)
Enables the creation of complex filtering conditions by combining filter criteria.
(structure)
Enables the creation of filtering criteria for security findings.
StringFilters -> (list)
Enables filtering based on string field values.
(structure)
Enables filtering of security findings based on string field values in OCSF.
FieldName -> (string)
The name of the field.Filter -> (structure)
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 isSecurity Hub
. If you providesecurity hub
as the filter value, there’s no match.Comparison -> (string)
The condition to apply to a string value when filtering Security Hub findings.
To search for values that have the filter value, use one of the following comparison operators:
- To search for values that include the filter value, use
CONTAINS
. For example, the filterTitle CONTAINS CloudFront
matches findings that have aTitle
that includes the string CloudFront.- To search for values that exactly match the filter value, use
EQUALS
. For example, the filterAwsAccountId EQUALS 123456789012
only matches findings that have an account ID of123456789012
.- To search for values that start with the filter value, use
PREFIX
. For example, the filterResourceRegion PREFIX us
matches findings that have aResourceRegion
that starts withus
. AResourceRegion
that starts with a different value, such asaf
,ap
, orca
, doesn’t match.CONTAINS
,EQUALS
, andPREFIX
filters on the same field are joined byOR
. A finding matches if it matches any one of those filters. For example, the filtersTitle CONTAINS CloudFront OR Title CONTAINS CloudWatch
match a finding that includes eitherCloudFront
,CloudWatch
, or both strings in the title.To search for values that don’t have the filter value, use one of the following comparison operators:
- To search for values that exclude the filter value, use
NOT_CONTAINS
. For example, the filterTitle NOT_CONTAINS CloudFront
matches findings that have aTitle
that excludes the string CloudFront.- To search for values other than the filter value, use
NOT_EQUALS
. For example, the filterAwsAccountId NOT_EQUALS 123456789012
only matches findings that have an account ID other than123456789012
.- To search for values that don’t start with the filter value, use
PREFIX_NOT_EQUALS
. For example, the filterResourceRegion PREFIX_NOT_EQUALS us
matches findings with aResourceRegion
that starts with a value other thanus
.NOT_CONTAINS
,NOT_EQUALS
, andPREFIX_NOT_EQUALS
filters on the same field are joined byAND
. A finding matches only if it matches all of those filters. For example, the filtersTitle NOT_CONTAINS CloudFront AND Title NOT_CONTAINS CloudWatch
match a finding that excludes bothCloudFront
andCloudWatch
in the title.You can’t have both a
CONTAINS
filter and aNOT_CONTAINS
filter on the same field. Similarly, you can’t provide both anEQUALS
filter and aNOT_EQUALS
orPREFIX_NOT_EQUALS
filter on the same field. Combining filters in this way returns an error.CONTAINS
filters can only be used with otherCONTAINS
filters.NOT_CONTAINS
filters can only be used with otherNOT_CONTAINS
filters.You can combine
PREFIX
filters withNOT_EQUALS
orPREFIX_NOT_EQUALS
filters for the same field. Security Hub first processes thePREFIX
filters, and then theNOT_EQUALS
orPREFIX_NOT_EQUALS
filters.For example, for the following filters, Security Hub first identifies findings that have resource types that start with either
AwsIam
orAwsEc2
. It then excludes findings that have a resource type ofAwsIamPolicy
and findings that have a resource type ofAwsEc2NetworkInterface
.
ResourceType PREFIX AwsIam
ResourceType PREFIX AwsEc2
ResourceType NOT_EQUALS AwsIamPolicy
ResourceType NOT_EQUALS AwsEc2NetworkInterface
CONTAINS
andNOT_CONTAINS
operators can be used only with automation rules V1.CONTAINS_WORD
operator is only supported inGetFindingsV2
,GetFindingStatisticsV2
,GetResourcesV2
, andGetResourceStatisticsV2
APIs. For more information, see Automation rules in the Security Hub User Guide .DateFilters -> (list)
Enables filtering based on date and timestamp fields.
(structure)
Enables filtering of security findings based on date and timestamp fields in OCSF.
FieldName -> (string)
The name of the field.Filter -> (structure)
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 -> (structure)
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.
(structure)
Enables filtering of security findings based on boolean field values in OCSF.
FieldName -> (string)
The name of the field.Filter -> (structure)
Boolean filter for querying findings.
Value -> (boolean)
The value of the boolean.NumberFilters -> (list)
Enables filtering based on numerical field values.
(structure)
Enables filtering of security findings based on numerical field values in OCSF.
FieldName -> (string)
The name of the field.Filter -> (structure)
A number filter for querying findings.
Gte -> (double)
The greater-than-equal condition to be applied to a single field when querying for findings.Lte -> (double)
The less-than-equal condition to be applied to a single field when querying for findings.Eq -> (double)
The equal-to condition to be applied to a single field when querying for findings.Gt -> (double)
The greater-than condition to be applied to a single field when querying for findings.Lt -> (double)
The less-than condition to be applied to a single field when querying for findings.MapFilters -> (list)
Enables filtering based on map field values.
(structure)
Enables filtering of security findings based on map field values in OCSF.
FieldName -> (string)
The name of the field.Filter -> (structure)
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, forResourceTags
,Key
identifies the name of the tag. ForUserDefinedFields
,Key
is the name of the field.Value -> (string)
The value for the key in the map filter. Filter values are case sensitive. For example, one of the values for a tag calledDepartment
might beSecurity
. If you providesecurity
as the filter value, then there’s no match.Comparison -> (string)
The condition to apply to the key value when filtering Security Hub findings with a map filter.
To search for values that have the filter value, use one of the following comparison operators:
- To search for values that include the filter value, use
CONTAINS
. For example, for theResourceTags
field, the filterDepartment CONTAINS Security
matches findings that include the valueSecurity
for theDepartment
tag. In the same example, a finding with a value ofSecurity team
for theDepartment
tag is a match.- To search for values that exactly match the filter value, use
EQUALS
. For example, for theResourceTags
field, the filterDepartment EQUALS Security
matches findings that have the valueSecurity
for theDepartment
tag.CONTAINS
andEQUALS
filters on the same field are joined byOR
. A finding matches if it matches any one of those filters. For example, the filtersDepartment CONTAINS Security OR Department CONTAINS Finance
match a finding that includes eitherSecurity
,Finance
, or both values.To search for values that don’t have the filter value, use one of the following comparison operators:
- To search for values that exclude the filter value, use
NOT_CONTAINS
. For example, for theResourceTags
field, the filterDepartment NOT_CONTAINS Finance
matches findings that exclude the valueFinance
for theDepartment
tag.- To search for values other than the filter value, use
NOT_EQUALS
. For example, for theResourceTags
field, the filterDepartment NOT_EQUALS Finance
matches findings that don’t have the valueFinance
for theDepartment
tag.
NOT_CONTAINS
andNOT_EQUALS
filters on the same field are joined byAND
. A finding matches only if it matches all of those filters. For example, the filtersDepartment NOT_CONTAINS Security AND Department NOT_CONTAINS Finance
match a finding that excludes both theSecurity
andFinance
values.
CONTAINS
filters can only be used with otherCONTAINS
filters.NOT_CONTAINS
filters can only be used with otherNOT_CONTAINS
filters.You can’t have both a
CONTAINS
filter and aNOT_CONTAINS
filter on the same field. Similarly, you can’t have both anEQUALS
filter and aNOT_EQUALS
filter on the same field. Combining filters in this way returns an error.CONTAINS
andNOT_CONTAINS
operators can be used only with automation rules. For more information, see Automation rules in the Security Hub User Guide .Operator -> (string)
The logical operator used to combine multiple filter conditions.CompositeOperator -> (string)
The logical operators used to combine the filtering on multipleCompositeFilters
.
JSON Syntax:
{
"OcsfFindingCriteria": {
"CompositeFilters": [
{
"StringFilters": [
{
"FieldName": "metadata.uid"|"activity_name"|"cloud.account.uid"|"cloud.provider"|"cloud.region"|"compliance.assessments.category"|"compliance.assessments.name"|"compliance.control"|"compliance.status"|"compliance.standards"|"finding_info.desc"|"finding_info.src_url"|"finding_info.title"|"finding_info.types"|"finding_info.uid"|"finding_info.related_events.uid"|"finding_info.related_events.product.uid"|"finding_info.related_events.title"|"metadata.product.name"|"metadata.product.uid"|"metadata.product.vendor_name"|"remediation.desc"|"remediation.references"|"resources.cloud_partition"|"resources.region"|"resources.type"|"resources.uid"|"severity"|"status"|"comment"|"vulnerabilities.fix_coverage"|"class_name",
"Filter": {
"Value": "string",
"Comparison": "EQUALS"|"PREFIX"|"NOT_EQUALS"|"PREFIX_NOT_EQUALS"|"CONTAINS"|"NOT_CONTAINS"|"CONTAINS_WORD"
}
}
...
],
"DateFilters": [
{
"FieldName": "finding_info.created_time_dt"|"finding_info.first_seen_time_dt"|"finding_info.last_seen_time_dt"|"finding_info.modified_time_dt",
"Filter": {
"Start": "string",
"End": "string",
"DateRange": {
"Value": integer,
"Unit": "DAYS"
}
}
}
...
],
"BooleanFilters": [
{
"FieldName": "compliance.assessments.meets_criteria"|"vulnerabilities.is_exploit_available"|"vulnerabilities.is_fix_available",
"Filter": {
"Value": true|false
}
}
...
],
"NumberFilters": [
{
"FieldName": "activity_id"|"compliance.status_id"|"confidence_score"|"severity_id"|"status_id"|"finding_info.related_events_count",
"Filter": {
"Gte": double,
"Lte": double,
"Eq": double,
"Gt": double,
"Lt": double
}
}
...
],
"MapFilters": [
{
"FieldName": "resources.tags",
"Filter": {
"Key": "string",
"Value": "string",
"Comparison": "EQUALS"|"NOT_EQUALS"|"CONTAINS"|"NOT_CONTAINS"
}
}
...
],
"Operator": "AND"|"OR"
}
...
],
"CompositeOperator": "AND"|"OR"
}
}
--actions
(list)
A list of actions to be performed when the rule criteria is met.
(structure)
Allows you to configure automated responses.
Type -> (string)
The category of action to be executed by the automation rule.FindingFieldsUpdate -> (structure)
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 -> (structure)
The settings for integrating automation rule actions with external systems or service.
ConnectorArn -> (string)
The ARN of the connector that establishes the integration.
Shorthand Syntax:
Type=string,FindingFieldsUpdate={SeverityId=integer,Comment=string,StatusId=integer},ExternalIntegrationConfiguration={ConnectorArn=string} ...
JSON Syntax:
[
{
"Type": "FINDING_FIELDS_UPDATE"|"EXTERNAL_INTEGRATION",
"FindingFieldsUpdate": {
"SeverityId": integer,
"Comment": "string",
"StatusId": integer
},
"ExternalIntegrationConfiguration": {
"ConnectorArn": "string"
}
}
...
]
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command. The generated JSON skeleton is not stable between versions of the AWS CLI and there are no backwards compatibility guarantees in the JSON skeleton generated.
--debug
(boolean)
Turn on debug logging.
--endpoint-url
(string)
Override command’s default URL with the given URL.
--no-verify-ssl
(boolean)
By default, the AWS CLI uses SSL when communicating with AWS services. For each SSL connection, the AWS CLI will verify SSL certificates. This option overrides the default behavior of verifying SSL certificates.
--no-paginate
(boolean)
Disable automatic pagination. If automatic pagination is disabled, the AWS CLI will only make one call, for the first page of results.
--output
(string)
The formatting style for command output.
--query
(string)
A JMESPath query to use in filtering the response data.
--profile
(string)
Use a specific profile from your credential file.
--region
(string)
The region to use. Overrides config/env settings.
--version
(string)
Display the version of this tool.
--color
(string)
Turn on/off color output.
--no-sign-request
(boolean)
Do not sign requests. Credentials will not be loaded if this argument is provided.
--ca-bundle
(string)
The CA certificate bundle to use when verifying SSL certificates. Overrides config/env settings.
--cli-read-timeout
(int)
The maximum socket read time in seconds. If the value is set to 0, the socket read will be blocking and not timeout. The default value is 60 seconds.
--cli-connect-timeout
(int)
The maximum socket connect time in seconds. If the value is set to 0, the socket connect will be blocking and not timeout. The default value is 60 seconds.
--cli-binary-format
(string)
The formatting style to be used for binary blobs. The default format is base64. The base64 format expects binary blobs to be provided as a base64 encoded string. The raw-in-base64-out format preserves compatibility with AWS CLI V1 behavior and binary values must be passed literally. When providing contents from a file that map to a binary blob fileb://
will always be treated as binary and use the file contents directly regardless of the cli-binary-format
setting. When using file://
the file contents will need to properly formatted for the configured cli-binary-format
.
--no-cli-pager
(boolean)
Disable cli pager for output.
--cli-auto-prompt
(boolean)
Automatically prompt for CLI input parameters.
--no-cli-auto-prompt
(boolean)
Disable automatically prompt for CLI input parameters.
None