

AWS 自 2026 年 4 月 30 日起，物联网 FleetWise 将不再向新客户开放。现有的 AWS 物联网 FleetWise 客户可以继续使用该服务。[上的《互联移动指南》 AWS提供了有关如何为](https://aws.amazon.com/solutions/guidance/connected-mobility-on-aws/)互联移动解决方案开发和部署模块化服务的指导，这些解决方案可用于实现与 AWS 物联网同等的功能 FleetWise。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS 物联网中的密钥管理 FleetWise
<a name="key-management"></a>

**重要**  
目前对某些 AWS 物联网 FleetWise 功能的访问受到限制。有关更多信息，请参阅 [AWS AWS 物联网中的区域和功能可用性 FleetWise](fleetwise-regions.md)。

## AWS 物联网 FleetWise 云密钥管理
<a name="key-cloud"></a>

默认情况下， AWS 物联网 FleetWise 使用 AWS 托管式密钥 来保护您的数据 AWS Cloud。您可以更新设置以使用客户管理的密钥对 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_cn/iot-fleetwise/latest/developerguide/key-management.html)

**注意**  
其他数据和资源使用由 AWS 物联网管理的密钥使用默认加密进行加密 FleetWise。此密钥已创建并存储在 AWS 物联网 FleetWise 帐户中。

有关更多信息，请参阅[什么是 AWS Key Management Service？](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 在《*AWS Key Management Service 开发人员指南》*中。

## 使用 KMS 密钥启用加密（控制台）
<a name="CMK-setup"></a>

要在 AWS 物联网中使用客户托管密钥 FleetWise，您必须更新您的 AWS 物联网 FleetWise 设置。

**使用 KMS 密钥启用加密（控制台）**

1. 打开[AWS 物联网 FleetWise 控制台](https://console.aws.amazon.com/iotfleetwise/)。

1. 导航到**设置**。

1. 在**加密**中，选择**编辑**以打开**编辑加密**页面。

1.  对于**加密密钥类型**，选择**选择其他 AWS KMS 密钥**。这允许使用存储在 AWS KMS中的客户托管密钥进行加密。
**注意**  
您只能对 AWS 物联网 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 物联网 FleetWise 账户启用加密。以下示例使用 AWS CLI。

要启用加密，请运行以下命令。
+ *kms\$1key\$1id*替换为 KMS 密钥的 ID。

```
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 物联网 FleetWise 服务主体 FleetWise 允许 AWS 物联网访问 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": "*"
}
```

作为安全最佳实践，请在 KMS 密钥策略中添加密钥`aws:SourceArn`并对其进行`aws:SourceAccount`条件处理。IAM 全局条件密钥`aws:SourceArn`有助于确保 AWS 物联网仅 FleetWise 将 KMS 密钥用于服务特定的资源 Amazon 资源名称 (ARNs)。

如果将值设置为`aws:SourceArn`，则必须始终设置为`arn:aws:iotfleetwise:us-east-1:account_id:*`。这允许 KMS 密钥为此访问所有 AWS IoT FleetWise 资源 AWS 账户。 AWS IoT FleetWise 支持每个账户为其中的所有资源使用一个 KMS 密钥 AWS 区域。在 ARN 资源字段中`SourceArn`使用任何其他值或不使用通配符 (\$1)，都会阻止 AWS Io FleetWise T 访问 KMS 密钥。

的值`aws:SourceAccount`是您的账户 ID，用于进一步限制 KMS 密钥，使其只能用于您的特定账户。如果您向 KMS 密钥添加密钥`aws:SourceAccount`并对其进行`aws:SourceArn`条件处理，请确保该密钥未被任何其他服务或账户使用。这有助于避免故障。

以下政策包括服务主体（服务的标识符），以及根据`aws:SourceAccount` AWS 区域 和您的账户 ID 进行`aws:SourceArn`设置以供使用。

```
{
  "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:*"
    }
  }
}
```

有关编辑用于 AWS IoT 的 KMS 密钥策略的更多信息 FleetWise，请参阅*AWS Key Management Service 开发人员指南*中的[更改密钥策略](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)。

**重要**  
在 KMS 密钥策略中添加新部分时，请勿更改策略中的任何现有部分。 AWS 如果为物联网 FleetWise 启用了加密， FleetWise 并且存在以下任一情况， AWS 物联网将无法对您的数据执行操作：  
所提供的 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。本政策声明允许`PutEncryptionConfiguration`物 AWS 联网`GetEncryptionConfiguration`采取行动 FleetWise。

------
#### [ 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 物联网加密后删除了 AWS KMS 密钥 FleetWise，则必须通过删除所有数据来重置您的帐户，然后才能 FleetWise 再次使用 AWS 物联网。您可以使用列表和删除 API 操作来清理账户中的资源。

**清理账户中的资源**

1. 使用`listResponseScope`参数设置为 lis APIs t `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. 删除所有信号目录。