AWS::IoT::SecurityProfile - AWS CloudFormation (original) (raw)
Use the AWS::IoT::SecurityProfile
resource to create a Device Defender security profile. For API reference, see CreateSecurityProfile and for general information, see Detect.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{
"Type" : "AWS::IoT::SecurityProfile",
"Properties" : {
"AdditionalMetricsToRetainV2" : [ MetricToRetain, ... ],
"AlertTargets" : {Key: Value, ...},
"Behaviors" : [ Behavior, ... ],
"MetricsExportConfig" : MetricsExportConfig,
"SecurityProfileDescription" : String,
"SecurityProfileName" : String,
"Tags" : [ Tag, ... ],
"TargetArns" : [ String, ... ]
}
}
Properties
AdditionalMetricsToRetainV2
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's also retained for any metric specified here. Can be used with custom metrics; can't be used with dimensions.
Required: No
Type: Array of MetricToRetain
Update requires: No interruption
AlertTargets
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.
Required: No
Type: Object of AlertTarget
Update requires: No interruption
Behaviors
Specifies the behaviors that, when violated by a device (thing), cause an alert.
Required: No
Type: Array of Behavior
Maximum: 100
Update requires: No interruption
MetricsExportConfig
Specifies the MQTT topic and role ARN required for metric export.
Required: No
Type: MetricsExportConfig
Update requires: No interruption
SecurityProfileDescription
A description of the security profile.
Required: No
Type: String
Maximum: 1000
Update requires: No interruption
SecurityProfileName
The name you gave to the security profile.
Required: No
Type: String
Pattern: [a-zA-Z0-9:_-]+
Minimum: 1
Maximum: 128
Update requires: Replacement
Tags
Metadata that can be used to manage the security profile.
Required: No
Type: Array of Tag
Maximum: 50
Update requires: No interruption
TargetArns
The ARN of the target (thing group) to which the security profile is attached.
Required: No
Type: Array of String
Maximum: 2048
Update requires: No interruption
Return values
Ref
When you pass the logical ID of this resource to the intrinsic Ref
function, Ref
returns the security profile name.
Fn::GetAtt
The Fn::GetAtt
intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.
For more information about using the Fn::GetAtt
intrinsic function, see Fn::GetAtt.
SecurityProfileArn
The Amazon Resource Name (ARN) of the security profile.
Examples
JSON
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "Amazon Web Services IoT SecurityProfile Sample Template",
"Resources": {
"MySecurityProfile": {
"Type": "AWS::IoT::SecurityProfile",
"Properties": {
"AdditionalMetricsToRetainV2": [
{
"Metric": "aws:num-messages-received"
},
{
"Metric": "aws:num-disconnects"
}
],
"AlertTargets": {
"SNS": {
"AlertTargetArn": "arn:aws:sns:us-east-1:123456789012:DeviceDefenderDetectAlerts",
"RoleArn": "arn:aws:iam::123456789012:role/RoleForDefenderAlerts"
}
},
"Behaviors": [
{
"Name": "MaxMessageSize",
"Metric": "aws:message-byte-size",
"Criteria": {
"ConsecutiveDatapointsToAlarm": 1,
"ConsecutiveDatapointsToClear": 1,
"ComparisonOperator": "less-than-equals",
"Value": {
"Count": 5
}
}
},
{
"Name": "OutboundMessageCount",
"Metric": "aws:num-messages-sent",
"Criteria": {
"DurationSeconds": 300,
"ComparisonOperator": "less-than-equals",
"Value": {
"Count": 50
}
}
},
{
"Name": "AuthFailuresStatThreshold",
"Metric": "aws:num-authorization-failures",
"Criteria": {
"ComparisonOperator": "less-than-equals",
"DurationSeconds": 300,
"StatisticalThreshold": {
"Statistic": "p90"
}
}
}
],
"SecurityProfileDescription": "Contains expected behaviors for connected devices",
"SecurityProfileName": "ProfileForConnectedDevices",
"Tags": [
{
"Key": "Application",
"Value": "SmartHome"
}
],
"TargetArns": [
"arn:aws:iot:us-east-1:123456789012:all/things"
]
}
}
}
}
YAML
AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon Web Services IoT SecurityProfile Sample Template
Resources:
MySecurityProfile:
Type: 'AWS::IoT::SecurityProfile'
Properties:
AdditionalMetricsToRetainV2:
- Metric: 'aws:num-messages-received'
- Metric: 'aws:num-disconnects'
AlertTargets:
SNS:
AlertTargetArn: 'arn:aws:sns:us-east-1:123456789012:DeviceDefenderDetectAlerts'
RoleArn: 'arn:aws:iam::123456789012:role/RoleForDefenderAlerts'
Behaviors:
- Name: MaxMessageSize
Metric: 'aws:message-byte-size'
Criteria:
ConsecutiveDatapointsToAlarm: 1
ConsecutiveDatapointsToClear: 1
ComparisonOperator: less-than-equals
Value:
Count: 5
- Name: OutboundMessageCount
Metric: 'aws:num-messages-sent'
Criteria:
DurationSeconds: 300
ComparisonOperator: less-than-equals
Value:
Count: 50
- Name: AuthFailuresStatThreshold
Metric: 'aws:num-authorization-failures'
Criteria:
ComparisonOperator: less-than-equals
DurationSeconds: 300
StatisticalThreshold:
Statistic: p90
SecurityProfileDescription: Contains expected behaviors for connected devices
SecurityProfileName: ProfileForConnectedDevices
Tags:
- Key: Application
Value: SmartHome
TargetArns:
- 'arn:aws:iot:us-east-1:123456789012:all/things'