

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# AWS IoT FleetWise 中的資料加密
<a name="data-encryption"></a>

資料加密是指在傳輸中 （往返 AWS IoT FleetWise 以及閘道和伺服器之間） 和靜態 （存放於本機裝置或 中） 時保護資料 AWS 服務。您可以使用用戶端加密來保護靜態資料。

**注意**  
AWS IoT FleetWise 邊緣處理會公開在 AWS IoT FleetWise 閘道內託管APIs，並且可透過本機網路存取。這些 APIs 透過由 AWS IoT FleetWise Edge 連接器擁有的伺服器憑證支援的 TLS 連線公開。對於用戶端身分驗證，這些 APIs 使用存取控制密碼。伺服器憑證私有金鑰和存取控制密碼都存放在磁碟上。 AWS IoT FleetWise 邊緣處理依賴檔案系統加密來確保這些靜態憑證的安全性。

如需伺服器端加密和用戶端加密的相關資訊，請檢閱下列主題。

**Topics**
+ [靜態加密 in AWS IoT FleetWise](encryption-at-rest.md)
+ [AWS IoT FleetWise 中的金鑰管理](key-management.md)

# 靜態加密 in AWS IoT FleetWise
<a name="encryption-at-rest"></a>

AWS IoT FleetWise 會將您的資料存放在 AWS 雲端和閘道上。

## AWS 雲端中的靜態資料
<a name="cloud-encryption-at-rest"></a>

AWS IoT FleetWise 會將資料存放在預設 AWS 服務 加密靜態資料的其他 中。靜態加密與 [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 整合，用於管理加密金鑰，用於加密 AWS IoT FleetWise 中的資產屬性值和彙總值。您可以選擇使用客戶受管金鑰來加密資產屬性值，並在 AWS IoT FleetWise 中彙總值。您可以透過 建立、管理和檢視加密金鑰 AWS KMS。

您可以選擇 AWS 擁有的金鑰 或客戶受管金鑰來加密您的資料。

### 運作方式
<a name="how-it-works"></a>

靜態加密與 整合 AWS KMS ，用於管理用來加密資料的加密金鑰。
+ AWS 擁有的金鑰 – 預設加密金鑰。 AWS IoT FleetWise 擁有此金鑰。您無法在 中檢視、管理或使用此金鑰 AWS 帳戶。您也無法在 AWS CloudTrail 日誌中查看金鑰的操作。您可以使用此金鑰，無需額外費用。
+ 客戶受管金鑰 – 金鑰存放在您的帳戶中，由您建立、擁有和管理。您可以完全控制 KMS 金鑰。 AWS KMS 需支付額外費用。

### AWS 擁有的金鑰
<a name="aws-owned-cmk"></a>

AWS 擁有的金鑰 不會存放在您的帳戶中。它們是 KMS 金鑰集合的一部分，這些金鑰 AWS 擁有和管理以在 multiple 中使用 AWS 帳戶。 AWS 服務 可以使用 AWS 擁有的金鑰 來保護您的資料。

您無法檢視、管理或使用 AWS 擁有的金鑰或稽核其使用方式。不過，您不需要採取任何動作或變更任何程式來保護加密資料的金鑰。

如果您使用 ，則不會向您收取費用 AWS 擁有的金鑰，而且不會計入您帳戶的 AWS KMS 配額。

### 客戶自管金鑰
<a name="customer-managed-cmk"></a>

客戶自管金鑰為您在 帳戶中建立、擁有和管理的 KMS 金鑰。您可以完全控制這些 KMS 金鑰，如下所示：
+ 建立和維護其金鑰政策、IAM 政策和授權
+ 啟用和停用它們
+ 輪換其密碼編譯資料
+ 新增 標籤
+ 建立參考它們的別名 
+ 排程刪除它們



您也可以使用 CloudTrail 和 Amazon CloudWatch Logs 來追蹤 AWS IoT FleetWise AWS KMS 代表您傳送到 的請求。

 如果您使用客戶受管金鑰，則必須授予 AWS IoT FleetWise 存取存放在您帳戶中的 KMS 金鑰的權限。 AWS IoT FleetWise 使用信封加密和金鑰階層來加密資料。您的 AWS KMS 加密金鑰是用來加密此金鑰階層的根金鑰。如需詳細資訊，請參閱《AWS Key Management Service 開發人員指南》中的[封套加密](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping)。

下列範例政策授予 AWS IoT FleetWise 許可，以使用您的 AWS KMS 金鑰。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Allow use of the key",
      "Effect": "Allow",
      "Principal": {
        "Service": "iotfleetwise.amazonaws.com"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "*"
    }
  ]
}
```

------

**重要**  
當您將新區段新增至 KMS 金鑰政策時，請勿變更政策中的任何現有區段。如果啟用了 for AWS IoT FleetWise 加密，且符合下列任一條件， AWS IoT FleetWise 將無法對資料執行操作：  
KMS 金鑰已停用或刪除。
服務未正確設定 KMS 金鑰政策。

### 將視覺系統資料與靜態加密搭配使用
<a name="vision-system-encryption"></a>

**注意**  
視覺系統資料處於預覽版本中，可能會有所變更。

如果您的 AWS IoT FleetWise 帳戶已啟用 AWS KMS 金鑰的客戶受管加密，而且您想要使用視覺系統資料，請將加密設定重設為與複雜的資料類型相容。這可讓 AWS IoT FleetWise 建立視覺系統資料所需的額外許可。

**注意**  
如果您尚未重設視覺系統資料的加密設定，您的解碼器資訊清單可能會卡在驗證狀態。

1. 使用 [GetEncryptionConfiguration](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_GetEncryptionConfiguration.html) API 操作來檢查 AWS KMS 加密是否已啟用。如果加密類型為 ，則不需要進一步的動作`FLEETWISE_DEFAULT_ENCRYPTION`。

1. 如果加密類型為 `KMS_BASED_ENCRYPTION`，請使用 [PutEncryptionConfiguration](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_PutEncryptionConfiguration.html) API 操作將加密類型重設為 `FLEETWISE_DEFAULT_ENCRYPTION`。

   ```
   aws iotfleetwise put-encryption-configuration \
         --encryption-type FLEETWISE_DEFAULT_ENCRYPTION
   ```

1. 使用 [PutEncryptionConfiguration](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_PutEncryptionConfiguration.html) API 操作將加密類型重新啟用至 `KMS_BASED_ENCRYPTION`。

   ```
   aws iotfleetwise put-encryption-configuration \
           --encryption-type KMS_BASED_ENCRYPTION \
           --kms-key-id kms_key_id
   ```

如需啟用加密的詳細資訊，請參閱 [AWS IoT FleetWise 中的金鑰管理](key-management.md)。

# AWS IoT FleetWise 中的金鑰管理
<a name="key-management"></a>

**重要**  
對特定 AWS IoT FleetWise 功能的存取目前受到鎖定。如需詳細資訊，請參閱[AWS AWS IoT FleetWise 中的區域和功能可用性](fleetwise-regions.md)。

## AWS IoT FleetWise 雲端金鑰管理
<a name="key-cloud"></a>

根據預設， AWS IoT FleetWise 會使用 AWS 受管金鑰 來保護 中的資料 AWS 雲端。您可以更新您的設定，以使用客戶受管金鑰來加密 AWS IoT FleetWise 中的資料。您可以透過 AWS Key Management Service () 建立、管理和檢視加密金鑰AWS KMS。

AWS IoT FleetWise 支援使用存放在 中的客戶受管金鑰進行伺服器端加密， AWS KMS 以加密下列資源的資料。


****  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/iot-fleetwise/latest/developerguide/key-management.html)

**注意**  
其他資料和資源會使用預設加密搭配由 AWS IoT FleetWise 管理的金鑰進行加密。此金鑰會建立並儲存在 AWS IoT FleetWise 帳戶中。

如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[什麼是 AWS Key Management Service？](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

## 使用 KMS 金鑰啟用加密 （主控台）
<a name="CMK-setup"></a>

若要搭配 AWS IoT FleetWise 使用客戶受管金鑰，您必須更新您的 AWS IoT FleetWise 設定。

**使用 KMS 金鑰啟用加密 （主控台）**

1. 開啟 [AWS IoT FleetWise 主控台](https://console.aws.amazon.com/iotfleetwise/)。

1. 導覽至**設定**。

1. 在**加密**中，選擇**編輯**以開啟**編輯加密**頁面。

1.  針對**加密金鑰類型**，選擇**選擇不同的 AWS KMS 金鑰**。這可使用存放於 的客戶受管金鑰進行加密 AWS KMS。
**注意**  
您只能使用 AWS IoT FleetWise 資源的客戶受管金鑰加密。這包括訊號目錄、車輛模型 （模型資訊清單）、解碼器資訊清單、車輛、機群和行銷活動。

1. 使用下列其中一個選項選擇您的 KMS 金鑰：
   + **若要使用現有的 KMS 金鑰** – 從清單中選擇您的 KMS 金鑰別名。
   + **若要建立新的 KMS 金鑰** – 選擇**建立 AWS KMS 金鑰**。
**注意**  
這會開啟 AWS KMS 主控台。如需建立 KMS 金鑰的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

1. 選擇**儲存**以更新您的設定。

## 使用 KMS 金鑰啟用加密 (AWS CLI)
<a name="encryption-cli"></a>

您可以使用 [PutEncryptionConfiguration](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_GetEncryptionConfiguration.html) API 操作來啟用 AWS IoT FleetWise 帳戶的加密。下列範例使用 AWS CLI。

若要啟用加密，請執行下列命令。
+ 以 KMS 金鑰的 ID 取代 *kms\$1key\$1id*。

```
aws iotfleetwise put-encryption-configuration \
      --encryption-type KMS_BASED_ENCRYPTION \
      --kms-key-id kms_key_id
```

**Example 回應**  

```
{
 "kmsKeyId": "customer_kms_key_id",
 "encryptionStatus": "PENDING",
 "encryptionType": "KMS_BASED_ENCRYPTION"
}
```

## KMS 金鑰政策
<a name="CMK-policy"></a>

建立 KMS 金鑰之後，您至少必須將下列陳述式新增至您的 KMS 金鑰政策，才能搭配 AWS IoT FleetWise 使用。KMS 金鑰政策陳述`iotfleetwise.amazonaws.com`式中的 AWS IoT FleetWise 服務主體允許 AWS IoT FleetWise 存取 KMS 金鑰。

```
{
  "Sid": "Allow FleetWise to encrypt and decrypt data when customer managed KMS key based encryption is enabled",
  "Effect": "Allow",
  "Principal": {
    "Service": "iotfleetwise.amazonaws.com"
  },
  "Action": [
    "kms:GenerateDataKey*",
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:DescribeKey",
    "kms:CreateGrant",
    "kms:RetireGrant",
    "kms:RevokeGrant"
  ],
  "Resource": "*"
}
```

做為安全最佳實務，請將 `aws:SourceArn`和 `aws:SourceAccount`條件金鑰新增至 KMS 金鑰政策。IAM 全域條件金鑰`aws:SourceArn`有助於確保 AWS IoT FleetWise 僅針對服務特定的資源 Amazon Resource Name (ARNs) 使用 KMS 金鑰。

如果您設定 的值`aws:SourceArn`，則一律必須為 `arn:aws:iotfleetwise:us-east-1:account_id:*`。這可讓 KMS 金鑰為此存取所有 AWS IoT FleetWise 資源 AWS 帳戶。 AWS IoT FleetWise 支援每個帳戶中所有資源的一個 KMS 金鑰 AWS 區域。針對 使用任何其他值`SourceArn`，或未針對 ARN 資源欄位使用萬用字元 (\$1)，可防止 AWS IoT FleetWise 存取 KMS 金鑰。

的值`aws:SourceAccount`是您的帳戶 ID，用於進一步限制 KMS 金鑰，使其只能用於您的特定帳戶。如果您將 `aws:SourceAccount`和 `aws:SourceArn`條件金鑰新增至 KMS 金鑰，請確定任何其他服務或帳戶不會使用該金鑰。這有助於避免失敗。

下列政策包含服務主體 （服務的識別符），以及根據 `aws:SourceAccount` 和您的帳戶 ID `aws:SourceArn`設定 AWS 區域 和 以供使用。

```
{
  "Sid": "Allow use of the key",
  "Effect": "Allow",
  "Principal": {
    "Service": "iotfleetwise.amazonaws.com"
  },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:ReEncrypt*",
    "kms:GenerateDataKey*",
    "kms:DescribeKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "aws:SourceAccount": "AWS-account-ID"
    },
    "ArnLike": {
      "aws:SourceArn": "arn:aws:iotfleetwise:region:AWS-account-ID:*"
    }
  }
}
```

如需有關編輯 KMS 金鑰政策以搭配 AWS IoT FleetWise 使用的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[變更金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)。

**重要**  
當您將新區段新增至 KMS 金鑰政策時，請勿變更政策中的任何現有區段。如果啟用了 for AWS IoT FleetWise 加密，且符合下列任一條件， AWS IoT FleetWise 將無法對資料執行操作：  
KMS 金鑰已停用或刪除。
服務未正確設定 KMS 金鑰政策。

## AWS KMS 加密許可
<a name="encryption-permissions"></a>

如果您啟用 AWS KMS 加密，則必須在角色政策中指定許可，以便您可以呼叫 AWS IoT FleetWise APIs。下列政策允許存取所有 AWS IoT FleetWise 動作，以及 AWS KMS 特定許可。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iotfleetwise:*",
        "kms:GenerateDataKey*",
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:DescribeKey"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

您的角色需要下列政策陳述式，才能叫用加密 APIs。此政策陳述式允許來自 AWS IoT FleetWise 的 `PutEncryptionConfiguration`和 `GetEncryptionConfiguration`動作。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iotfleetwise:GetEncryptionConfiguration", 
        "iotfleetwise:PutEncryptionConfiguration",
        "kms:GenerateDataKey*",
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:DescribeKey"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

## 刪除 AWS KMS 金鑰後的復原
<a name="encryption-recovery"></a>

如果您在使用 AWS IoT FleetWise 啟用加密後刪除 AWS KMS 金鑰，您必須先刪除所有資料，再再次使用 AWS IoT FleetWise 來重設您的帳戶。您可以使用 清單並刪除 API 操作來清除帳戶中的資源。

**清除帳戶中的資源**

1. 使用將 `listResponseScope` 參數設為 APIs`METADATA_ONLY`。這提供資源清單，包括資源名稱和其他中繼資料，例如 ARNs 和時間戳記。

1. 使用刪除 APIs移除個別資源。

您必須依照下列順序清除資源。

1. 行銷活動

   1. 列出 `listResponseScope` 參數設定為 的所有行銷活動`METADATA_ONLY`。

   1. 刪除行銷活動。

1. 機群和車輛

   1. 列出 `listResponseScope` 參數設定為 的所有機群`METADATA_ONLY`。

   1. 列出每個機群的所有車輛，並將 `listResponseScope` 參數設為 `METADATA_ONLY`。

   1. 取消所有車輛與每個機群的關聯。

   1. 刪除機群。

   1. 刪除車輛。

1. 解碼器資訊清單

   1. 列出 `listResponseScope` 參數設定為 的所有解碼器資訊清單`METADATA_ONLY`。

   1. 刪除所有解碼器資訊清單。

1. 車輛模型 （模型資訊清單）

   1. 列出 `listResponseScope` 參數設定為 的所有車輛模型`METADATA_ONLY`。

   1. 刪除所有車輛模型。

1. 狀態範本

   1. 列出 `listResponseScope` 參數設定為 的所有狀態範本`METADATA_ONLY`。

   1. 刪除所有狀態範本。

1. 訊號目錄

   1. 列出所有訊號目錄。

   1. 刪除所有訊號目錄。