

# 审计指南
<a name="audit-tutorial"></a>

本教程提供有关如何配置定期审计、设置告警、查看审计结果和减少审计问题的说明。

**Topics**
+ [先决条件](#audit-tutorial-prerequisites)
+ [启用审计检查](#audit-tutorial-enable-checks)
+ [查看审计结果](#audit-tutorial-view-audit)
+ [创建审计缓解操作](#audit-tutorial-mitigation)
+ [将缓解操作应用于审计查找结果](#apply-mitigation-actions)
+ [创建 AWS IoT Device Defender 审计 IAM 角色（可选）](#audit-iam)
+ [启用 SNS 通知（可选）](#audit-tutorial-enable-sns)
+ [配置客户自主管理型密钥的权限（可选）](#audit-tutorial-cmk-permissions)
+ [启用日志记录（可选）](#enable-logging)

## 先决条件
<a name="audit-tutorial-prerequisites"></a>

要完成本教程，您需要：
+ AWS 账户。如果您尚未拥有账户，请参阅[设置](https://docs.aws.amazon.com/iot/latest/developerguide/dd-setting-up.html)。

## 启用审计检查
<a name="audit-tutorial-enable-checks"></a>

在以下流程中，您可以启用审计检查以查看账户和设备设置及策略，以确保安全措施已就绪。在本教程中，我们指导您启用所有审计检查，但您可以仅选择所需的检查。

审计定价是按每月每台设备计数制定的（连接到 AWS IoT 机群设备)。因此，在使用此特征时，添加或删除审计检查不会影响您的月度账单。

1. 打开 [AWS IoT 控制台](https://console.aws.amazon.com/iot)。在导航窗格中，展开**安全**并选择**简介**。

1. 选择**自动执行 AWS IoT 安全审计**。审计检查会自动开启。

1. 展开**审计**，然后选择**设置**以查看您的审计检查。选择审计检查名称以了解审计检查的作用。有关审计检查的详细信息，请参阅[审核检查](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-audit-checks.html)。

1. （可选）如果您已经有要使用的角色，请选择**管理服务权限**，从列表中选择该角色，然后选择**更新**。

## 查看审计结果
<a name="audit-tutorial-view-audit"></a>

以下流程介绍如何查看审计结果。在本教程中，您将看到在 [启用审计检查](#audit-tutorial-enable-checks) 教程设置的审计检查的审计结果。

**查看审计结果**

1. 打开 [AWS IoT 控制台](https://console.aws.amazon.com/iot)。在导航窗格中，依次展开**安全**、**审计**，然后选择**结果**。

1. 选择您想要调查的审计计划的**名称**。

1. 在**不合规检查**中，在**缓解**下，选择信息按钮以获取有关其不合规原因的信息。有关如何使您的不合规检查变为合规的指导，请参阅[审计检查](device-defender-audit-checks.md)。

## 创建审计缓解操作
<a name="audit-tutorial-mitigation"></a>

在以下过程中，您将创建一个 AWS IoT Device Defender 审计缓解操作以启用 AWS IoT 日志记录。每个审计检查都已映射缓解操作，这些操作将影响您为想要修复的审计检查所选择的**操作类型**。有关更多信息，请参阅[缓解操作](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-mitigation-actions.html#defender-audit-apply-mitigation-actions.html)。

**使用 AWS IoT 控制台创建缓解操作**

1. 打开 [AWS IoT 控制台](https://console.aws.amazon.com/iot)。在导航窗格中，依次展开**安全**、**检测**，然后选择**缓解操作**。

1. 在 **Mitigation Actions**（缓解操作）页面上，选择 **Create**（创建）。

1. 在**创建新的缓解操作**页面上，对于**操作名称**，为您的缓解操作输入唯一名称，例如 *EnableErrorLoggingAction*。

1. 对于**操作类型**，选择**启用 AWS IoT 日志记录**。

1. 在**权限**中，选择**创建角色**。对于**角色名称**，使用 *IoTMitigationActionErrorLoggingRole*。然后选择 **Create**。

1. 在**参数**中，在**用于日志记录的角色**下，选择 `IoTMitigationActionErrorLoggingRole`。对于 **Log level**（日志级别），选择 `Error`。

1. 选择**创建**。

## 将缓解操作应用于审计查找结果
<a name="apply-mitigation-actions"></a>

以下流程介绍如何将缓解操作应用于审计结果。

**减少不合规审计查找结果**

1. 打开 [AWS IoT 控制台](https://console.aws.amazon.com/iot)。在导航窗格中，依次展开**安全**、**审计**，然后选择**结果**。

1. 选择要响应的审计结果。

1. 检查您的结果。

1. 选择 **Start mitigation actions**（启动缓解操作）。

1. 对于**日志记录已禁用**，请选择您之前创建的缓解操作 `EnableErrorLoggingAction`。您可以为每个不合规的调查发现选择适当的操作以解决这些问题。

1. 在**选择原因代码**中，选择审计检查返回的原因代码。

1. 选择**启动任务**。缓解操作可能需要几分钟时间来运行。

**要检查缓解操作是否有效**

1. 在 AWS IoT 控制台的导航窗格中，选择**设置**。

1. 在**服务日志**中，确认**日志级别**为 `Error (least verbosity)`。

## 创建 AWS IoT Device Defender 审计 IAM 角色（可选）
<a name="audit-iam"></a>

在以下过程中，您创建一个 AWS IoT Device Defender 审计 IAM 角色，为 AWS IoT Device Defender 提供对于 AWS IoT 的读取访问权限。

**创建用于 AWS IoT Device Defender 的服务角色（IAM 控制台）**

1. 登录 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在 IAM 控制台的导航窗格中，选择**角色**，然后选择**创建角色**。

1. 选择 **AWS 服务** 角色类型。

1. 在**其它 AWS 服务的用例**中，选择 **AWS IoT**，然后选择 **IoT - Device Defender 审计**。

1. 选择**下一步**。

1. （可选）设置[权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。这是一项高级特征，可用于服务角色，但不可用于服务相关角色。

   展开 **Permissions boundary**（权限边界）部分，然后选择 **Use a permissions boundary to control the maximum role permissions**（使用权限边界控制最大角色权限）。IAM 包括您的账户中的 AWS 托管策略和客户托管策略的列表。选择要用于权限边界的策略，或选择**创建策略**以打开新的浏览器选项卡并从头开始创建新策略。有关更多信息，请参阅 *IAM 用户指南* 中的[创建 IAM policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)。在您创建策略后，关闭该选项卡并返回到您的原始选项卡，以选择要用于权限边界的策略。

1. 选择**下一步**。

1. 输入有助于标识此角色的作用的角色名称。角色名称在您的 AWS 账户 内必须是唯一的。名称不区分大小写。例如，您无法同时创建名为 **PRODROLE** 和 **prodrole** 的角色。由于多个实体可能引用该角色，因此，角色创建完毕后，您将无法编辑角色名称。

1. （可选）对于 **Description**（描述），输入新角色的描述。

1. 在 **Step 1: Select trusted entities**（步骤 1：选择可信实体）或 **Step 2: Select permissions**（步骤 2：选择权限）部分中的 **Edit**（编辑），以编辑角色的用户案例和权限。

1. （可选）通过以键值对的形式附加标签来向用户添加元数据。有关在 IAM 中使用标签的更多信息，请参阅 *《IAM 用户指南》* 中的[标记 IAM 资源](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

1. 检查角色，然后选择 **Create role**。

## 启用 SNS 通知（可选）
<a name="audit-tutorial-enable-sns"></a>

在以下过程中，您可以启用 Amazon SNS（SNS）通知，以便在审计发现任何不合规的资源时向您发出警报。在本教程中，您将为 [启用审计检查](#audit-tutorial-enable-checks) 教程中启用的审计检查设置通知。

1. 附加允许通过 AWS 管理控制台访问 SNS 的策略（如果您尚未附加）。为此，您可以按照《IAM 用户指南》**的[将策略附加到 IAM 用户组](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_attach-policy.html)中的说明操作，并选择 **AWSIoTDeviceDefenderPublishFindingsToSNSMitigationAction** 策略。

1. 打开 [AWS IoT 控制台](https://console.aws.amazon.com/iot)。在导航窗格中，依次展开**安全**、**审计**，然后选择**设置**。

1. 在 **Device Defender 审计设置**页面的底部，选择**启用 SNS 警报**。

1. 选择 **Enabled (已启用)**。

1. 对于**主题**，选择**创建新主题**。将主题命名为 *IoTDDNotifications*，然后选择**创建**。对于**角色**，选择您在[创建 AWS IoT Device Defender 审计 IAM 角色（可选）](#audit-iam)中创建的角色。

1. 选择**更新**。

1. 如果您希望通过 Amazon SNS 在运维平台上接收电子邮件或文本，请参阅[使用 Amazon Simple Notification Service 发送用户通知](https://docs.aws.amazon.com/sns/latest/dg/sns-user-notifications.html)。

## 配置客户自主管理型密钥的权限（可选）
<a name="audit-tutorial-cmk-permissions"></a>

**注意**  
仅当您为 AWS IoT Core 选择了客户自主管理型密钥时，才需要进行此配置。有关 AWS IoT Core 静态加密的更多信息，请参阅 [AWS IoT Core 中的静态数据加密](https://docs.aws.amazon.com/iot/latest/developerguide/encryption-at-rest.html)。

如果您为 AWS IoT Core 静态加密启用了客户自主管理型密钥（CMK），则 AWS IoT Device Defender Audit 使用的 IAM 角色需要额外的权限才能解密数据。如果没有这些权限，审计操作将失败。

根据最低权限原则，[https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSIoTDeviceDefenderAudit.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSIoTDeviceDefenderAudit.html) 托管策略在设计时就不包括 `kms:Decrypt` 权限。使用客户自主管理型密钥时，您必须手动将这些权限添加到您的审计角色中。

**为 AWS IoT Device Defender Audit IAM 角色添加 KMS 权限**

1. 登录 AWS 管理控制台，然后通过以下网址打开 IAM 控制台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中，选择**角色**，然后搜索您在 [创建 AWS IoT Device Defender 审计 IAM 角色（可选）](#audit-iam) 中创建的角色或您在配置审计设置时指定的角色。

1. 选择角色名称以打开其详细信息页面。

1. 在**权限**选项卡中，选择**添加权限**，然后选择**创建内联策略**。

1. 选择 **JSON** 选项卡，然后输入以下策略。使用您的 AWS KMS 密钥详细信息替换 *REGION*、*ACCOUNT\$1ID* 和 *KEY\$1ID*：

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt"
         ],
         "Resource": "arn:aws:kms:REGION:ACCOUNT_ID:key/KEY_ID"
       }
     ]
   }
   ```

1. 选择**下一步**。

1. 对于**策略名称**，输入一个描述性名称，例如 **DeviceDefenderAuditKMSDecrypt**。

1. 选择**创建策略**。

## 启用日志记录（可选）
<a name="enable-logging"></a>

本流程介绍如何启用 AWS IoT 将信息记录到 CloudWatch Logs 中。这将允许您查看您的审计结果。启用日志记录可能会导致费用产生。

**要启用日志记录：**

1. 打开 [AWS IoT 控制台](https://console.aws.amazon.com/iot)。在导航窗格上，选择**设置**。

1. 在**日志**中，选择**管理日志**。

1. 对于**选择角色**，选择**创建角色**。将角色命名为 *AWSIoTLoggingRole*，然后选择**创建**。此时会自动附加策略。

1. 对于**日志级别**，选择**调试(最详细)**。

1. 选择**更新**。