

# 稽核指南
<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 記錄。每個稽核檢查都有對應的緩解動作，這些動作會影響您針對要修正的稽核檢查選擇哪種 **Action type** (動作類型)。如需詳細資訊，請參閱[緩解動作](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 管理主控台，並前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**角色**，然後選擇**建立角色**。

1. 選擇 **AWS 服務** 角色類型。

1. 在**其他 AWS 服務的使用案例**中，選擇 **AWS IoT**，然後選擇 **IoT - Device Defender Audit**。

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 受管和客戶受管政策清單。選取用於許可界限的政策，或者選擇 **Create policy** (建立政策) 以開啟新的瀏覽器標籤，並從頭建立新的政策。如需詳細資訊，請參閱《IAM 使用者指南》**中的[建立 IAM 政策](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. 檢閱角色，然後選擇**建立角色**。

## 啟用 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. 選擇 **Enable** (啟用)。

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 核心靜態加密啟用客戶自管金鑰 (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` 許可。使用客戶自管金鑰時，您必須手動將這些許可權限新增至稽核角色。

**將 KMS 許可新增至您的 AWS IoT Device Defender 稽核 IAM 角色**

1. 登入 AWS 管理主控台，並前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**角色**，然後搜尋您在 [建立 AWS IoT Device Defender 稽核 IAM 角色 (選用)](#audit-iam) 中建立的角色，或您在設定稽核設定時指定的角色。

1. 選擇角色名稱以開啟其詳細資訊頁面。

1. 在**許可**標籤中，選擇**新增許可**，然後選擇**建立內嵌政策**。

1. 選擇 **JSON** 索引標籤，並輸入下列政策。將 *REGION*、*ACCOUNT\$1ID* 和 *KEY\$1ID* 取代為您的 AWS KMS 金鑰詳細資訊：

   ```
   {
     "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. 選擇**更新**。