Table Of Contents


User Guide

First time using the AWS CLI? See the User Guide for help getting started.

[ aws . iot ]



Creates a Device Defender security profile.

See also: AWS API Documentation

See 'aws help' for descriptions of global parameters.


--security-profile-name <value>
[--security-profile-description <value>]
[--behaviors <value>]
[--alert-targets <value>]
[--additional-metrics-to-retain <value>]
[--tags <value>]
[--cli-input-json <value>]
[--generate-cli-skeleton <value>]


--security-profile-name (string)

The name you are giving to the security profile.

--security-profile-description (string)

A description of the security profile.

--behaviors (list)

Specifies the behaviors that, when violated by a device (thing), cause an alert.

JSON Syntax:

    "name": "string",
    "metric": "string",
    "criteria": {
      "comparisonOperator": "less-than"|"less-than-equals"|"greater-than"|"greater-than-equals"|"in-cidr-set"|"not-in-cidr-set"|"in-port-set"|"not-in-port-set",
      "value": {
        "count": long,
        "cidrs": ["string", ...],
        "ports": [integer, ...]
      "durationSeconds": integer,
      "consecutiveDatapointsToAlarm": integer,
      "consecutiveDatapointsToClear": integer,
      "statisticalThreshold": {
        "statistic": "string"

--alert-targets (map)

Specifies the destinations to which alerts are sent. (Alerts are always sent to the console.) Alerts are generated when a device (thing) violates a behavior.

Shorthand Syntax:


Where valid key names are:

JSON Syntax:

{"SNS": {
      "alertTargetArn": "string",
      "roleArn": "string"

--additional-metrics-to-retain (list)

A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors , but it is also retained for any metric specified here.


"string" "string" ...

--tags (list)

Metadata that can be used to manage the security profile.

Shorthand Syntax:

Key=string,Value=string ...

JSON Syntax:

    "Key": "string",
    "Value": "string"

--cli-input-json (string) Performs service operation based on the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, the CLI 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.

--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. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See 'aws help' for descriptions of global parameters.


To create a security profile

The following create-security-profile example creates a security profile that checks if cellular bandwidth exceeds a threshold or if more than 10 authorization failures occur within a five-minute period.

aws iot create-security-profile \
    --security-profile-name PossibleIssue \
    --security-profile-description "check to see if authorization fails 10 times in 5 minutes or if cellular bandwidth exceeds 128"  \
    --behaviors "[{\"name\":\"CellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"greater-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}},{\"name\":\"Authorization\",\"metric\":\"aws:num-authorization-failures\",\"criteria\":{\"comparisonOperator\":\"greater-than\",\"value\":{\"count\":10},\"durationSeconds\":300,\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}]"


    "securityProfileName": "PossibleIssue",
    "securityProfileArn": "arn:aws:iot:us-west-2:123456789012:securityprofile/PossibleIssue"

For more information, see Detect Commands in the AWS IoT Developer Guide.


securityProfileName -> (string)

The name you gave to the security profile.

securityProfileArn -> (string)

The ARN of the security profile.