使用维度确定安全配置文件中指标的作用域 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用维度确定安全配置文件中指标的作用域

维度是您可以定义的属性,用于获取安全配置文件中有关指标和行为的更精确数据。您通过提供用作筛选条件的值或模式来定义作用域。例如,您可以定义一个主题筛选条件维度,该维度仅将指标应用于与特定值(例如“data/bulb/+/activity”)匹配的 MQTT 主题。有关定义要在安全配置文件中使用的维度的信息,请参阅 CreateDimension

维度值支持 MQTT 通配符。MQTT 通配符可帮助您同时订阅多个主题。有两种不同类型的通配符:单级 (+) 和多级 (#)。例如,维度值 Data/bulb/+/activity 创建一个和与 + 处于同一级别的所有主题匹配的订阅。维度值还支持 MQTT 客户端 ID 替换变量 ${iot:ClientId}。

TOPIC_FILTER 类型的维度与以下云端衡量指标集兼容:

  • 发送的消息数量

  • 收到的消息数量

  • 消息字节大小

  • Source IP address

  • 授权失败次数

如何在控制台中使用维度

创建维度并将其应用于安全配置文件行为

  1. Amazon IoT 控制台中的导航窗格中,展开 Defend(防护),展开 Detect(检测),然后选择 Security profiles(安全配置文件)。

  2. Security profiles (安全配置文件) 页面上,选择 Create (创建) 以添加新的安全配置文件,或选择 Edit (编辑) 以将维度应用于现有安全配置文件。

  3. Expected behaviors (预期行为) 页面上,在 Metric (指标) 下选择五个云端指标维度支持之一。此时将显示 Dimension (维度)Dimension operator (维度运算符) 框。有关支持的云端指标的信息,请参阅使用维度确定安全配置文件中指标的作用域

  4. 对于 Dimension(维度),选择 Add dimension(添加维度)。

  5. Create a new dimension (创建新维度) 页面上,输入新维度的详细信息。Dimensions values (维度值) 支持 MQTT 通配符 # 和 + 以及 MQTT 客户端 ID 替换变量 ${iot:Clientid}。

  6. 选择 Save

  7. 您还可以选择将维度添加到 Additional Metrics to retain(要保留的其他指标)下的指标中。

  8. 要完成行为创建,请在其他必填字段中输入信息,然后选择 Next(下一步)。

  9. 完成剩余步骤以完成安全配置文件的创建。

查看违规项

  1. Amazon IoT 控制台中的导航窗格中,展开 Defend(下一步),展开 Detect(检测),然后选择 Violations(违规)。

  2. Behavior(行为)列中,将鼠标悬停在要查看其违规信息的行为上。

查看和更新您的维度

  1. Amazon IoT 控制台中的导航窗格中,展开 Defend(防护),展开 Detect(检测),然后选择 Dimensions(维度)。

  2. 选择要编辑的维度。

  3. 选择 Actions,然后选择 Edit

    
            控制台中维度下拉列表的图像。

删除维度

  1. Amazon IoT 控制台中的导航窗格中,展开 Defend(防护),展开 Detect(检测),然后选择 Dimensions(维度)。

  2. 选择要删除的维度。

  3. 通过选中 Used in (用于) 列,确认维度未附加到安全配置文件。如果维度附加到安全配置文件,请打开左侧的 Security profiles (安全配置文件) 页面,然后编辑维度附加到的安全配置文件。您删除该维度时,还会删除行为。如果要保留此行为,请选择省略号,然后选择 Copy (复制)。然后,您可以继续删除该行为。如果要删除其他维度,请按照本节中的步骤操作。

    
            维度删除页面的图像。
  4. 选择 Actions,然后选择 Delete

如何在 Amazon CLI CLI 上使用维度

创建维度并将其应用于安全配置文件行为

  1. 首先创建维度,然后再将其附加到安全配置文件。使用 CreateDimension 命令创建维度:

    aws iot create-dimension \ --name TopicFilterForAuthMessages \ --type TOPIC_FILTER \ --string-values device/+/auth

    此命令的输出如下所示:

    { "arn": "arn:aws:iot:us-west-2:123456789012:dimension/TopicFilterForAuthMessages", "name": "TopicFilterForAuthMessages" }
  2. 使用 UpdateSecurityProfile 将维度添加到现有安全配置文件中,或使用 CreateSecurityProfile 将维度添加到新的安全配置文件中。在以下示例中,我们创建了一个新的安全配置文件,用于检查 TopicFilterForAuthMessages 的消息是否在 128 字节以下,并保留发送到非身份验证主题的消息数。

    aws iot create-security-profile \ --security-profile-name ProfileForConnectedDevice \ --security-profile-description "Check to see if messages to TopicFilterForAuthMessages are under 128 bytes and retains the number of messages sent to non-auth topics." \ --behaviors "[{\"name\":\"CellularBandwidth\",\"metric\":\"aws:message-byte-size\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":128},\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}},{\"name\":\"Authorization\",\"metric\":\"aws:num-authorization-failures\",\"criteria\":{\"comparisonOperator\":\"less-than\",\"value\":{\"count\":10},\"durationSeconds\":300,\"consecutiveDatapointsToAlarm\":1,\"consecutiveDatapointsToClear\":1}}]" \ --additional-metrics-to-retain-v2 "[{\"metric\": \"aws:num-authorization-failures\",\"metricDimension\": {\"dimensionName\": \"TopicFilterForAuthMessages\",\"operator\": \"NOT_IN\"}}]"

    此命令的输出如下所示:

    { "securityProfileArn": "arn:aws:iot:us-west-2:1234564789012:securityprofile/ProfileForConnectedDevice", "securityProfileName": "ProfileForConnectedDevice" }

    您也可以从文件加载参数,而不是将其作为命令行参数值完全键入,以节省时间。有关更多信息,请参阅从文件加载 Amazon CLI 参数。下面显示了扩展 JSON 格式的 behavior 参数:

    [ { "criteria": { "comparisonOperator": "less-than", "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1, "value": { "count": 128 } }, "metric": "aws:message-byte-size", "metricDimension": { "dimensionName:": "TopicFilterForAuthMessages" }, "name": "CellularBandwidth" } ]

查看具有某个维度的安全配置文件

  • 使用 ListSecurityProfiles 命令查看具有特定维度的安全配置文件:

    aws iot list-security-profiles \ --dimension-name TopicFilterForAuthMessages

    此命令的输出如下所示:

    { "securityProfileIdentifiers": [ { "name": "ProfileForConnectedDevice", "arn": "arn:aws:iot:us-west-2:1234564789012:securityprofile/ProfileForConnectedDevice" } ] }

更新维度

  • 使用 UpdateDimension 命令更新维度:

    aws iot update-dimension \ --name TopicFilterForAuthMessages \ --string-values device/${iot:ClientId}/auth

    此命令的输出如下所示:

    { "name": "TopicFilterForAuthMessages", "lastModifiedDate": 1585866222.317, "stringValues": [ "device/${iot:ClientId}/auth" ], "creationDate": 1585854500.474, "type": "TOPIC_FILTER", "arn": "arn:aws:iot:us-west-2:1234564789012:dimension/TopicFilterForAuthMessages" }

删除维度

  1. 要删除维度,请先将其从附加到的任何安全配置文件中分离。使用 ListSecurityProfiles 命令查看具有特定维度的安全配置文件。

  2. 要从安全配置文件中删除维度,请使用 UpdateSecurityProfile 命令。输入要保留的所有信息,但排除维度:

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

    此命令的输出如下所示:

    { "behaviors": [ { "metric": "aws:message-byte-size", "name": "CellularBandwidth", "criteria": { "consecutiveDatapointsToClear": 1, "comparisonOperator": "less-than", "consecutiveDatapointsToAlarm": 1, "value": { "count": 128 } } }, { "metric": "aws:num-authorization-failures", "name": "Authorization", "criteria": { "durationSeconds": 300, "comparisonOperator": "less-than", "consecutiveDatapointsToClear": 1, "consecutiveDatapointsToAlarm": 1, "value": { "count": 10 } } } ], "securityProfileName": "ProfileForConnectedDevice", "lastModifiedDate": 1585936349.12, "securityProfileDescription": "Check to see if authorization fails 10 times in 5 minutes or if cellular bandwidth exceeds 128", "version": 2, "securityProfileArn": "arn:aws:iot:us-west-2:123456789012:securityprofile/Preo/ProfileForConnectedDevice", "creationDate": 1585846909.127 }
  3. 分离维度后,使用 DeleteDimension 命令删除维度:

    aws iot delete-dimension \ --name TopicFilterForAuthMessages