本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS IoT FleetWise 中的金鑰管理
重要
存取特定 AWS IoT FleetWise 功能目前已封鎖。如需詳細資訊,請參閱AWSAWS IoT FleetWise 中的區域和功能可用性。
AWS IoT FleetWise 雲端金鑰管理
根據預設, AWS IoT FleetWise 會使用 AWS 受管金鑰 來保護 中的資料 AWS 雲端。您可以更新您的設定以使用客戶受管金鑰來加密 AWS IoT FleetWise 中的資料。您可以透過 AWS Key Management Service () 建立、管理和檢視加密金鑰AWS KMS。
AWS IoT FleetWise 支援伺服器端加密,客戶受管金鑰存放在 中 AWS KMS ,以加密下列資源的資料。
AWS IoT FleetWise 資源 | 資料類型 | 使用客戶受管金鑰進行靜態加密的欄位 |
---|---|---|
訊號目錄 | description | |
屬性 |
描述、allowedValues、defaultValue、最小值、最大值 |
|
傳動器 |
描述、allowedValues、最小值、最大值 |
|
感測器 |
描述、allowedValues、最小值、最大值 |
|
車輛模型 (模型資訊清單) | description | |
解碼器資訊清單 | description | |
CanInterface |
protocolName, protocolVersion |
|
ObdInterface |
requestMessageId、 dtcRequestInterval秒 hasTransmissionEcu、obdStandard、 pidRequestInterval秒、 useExtendedIds |
|
CanSignal |
係數 isBigEndian、isSigned、長度、messageId、偏移、 startBit |
|
ObdSignal |
byteLength、位移、pid pidResponseLength、擴展、serviceMode、startByte bitMaskLength、 bitRightShift |
|
車輛 | 屬性 | |
Campaign | description | |
conditionBasedCollection結構描述 |
expression、 conditionLanguageVersion、 minimumTriggerIntervalMs、 triggerMode |
|
TimeBasedCollectionScheme |
periodMs |
|
狀態範本 | description |
注意
其他資料和資源會使用預設加密與由 AWS IoT FleetWise 管理的金鑰進行加密。此金鑰會建立並儲存在 AWS IoT FleetWise 帳戶中。
如需詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的什麼是 AWS Key Management Service?。
使用KMS金鑰啟用加密 (主控台)
若要搭配 AWS IoT FleetWise 使用客戶受管金鑰,您必須更新您的 AWS IoT FleetWise 設定。
使用KMS金鑰啟用加密 (主控台)
-
導覽至設定。
-
在加密中,選擇編輯以開啟編輯加密頁面。
-
針對加密金鑰類型,選擇選擇不同的 AWS KMS 金鑰。這會啟用使用存放於 的客戶受管金鑰進行加密 AWS KMS。
注意
您只能使用 AWS IoT FleetWise 資源的客戶受管金鑰加密。這包括訊號目錄、車輛模型 (模型資訊清單)、解碼器資訊清單、車輛、機群和行銷活動。
-
使用下列其中一個選項選擇您的KMS金鑰:
-
若要使用現有KMS金鑰 – 從清單中選擇您的KMS金鑰別名。
-
若要建立新的KMS金鑰 – 選擇建立 AWS KMS 金鑰。
注意
這會開啟 AWS KMS 主控台。如需建立KMS金鑰的詳細資訊,請參閱《 AWS Key Management Service 開發人員指南》中的建立金鑰。
-
-
選擇儲存以更新您的設定。
使用KMS金鑰啟用加密 (AWS CLI)
您可以使用 PutEncryptionConfigurationAPI操作來啟用 AWS IoT FleetWise 帳戶的加密。下列範例使用 AWS CLI。
若要啟用加密,請執行下列命令。
-
KMS key id
以KMS金鑰的 ID 取代 。
aws iotfleetwise put-encryption-configuration —kms-key-id
KMS key id
—encryption-type KMS_BASED_ENCRYPTION
範例 response
{ "kmsKeyId": "customer_kms_key_id", "encryptionStatus": "PENDING", "encryptionType": "KMS_BASED_ENCRYPTION" }
KMS 金鑰政策
建立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:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:RevokeGrant" ], "Resource": "*" }
作為安全最佳實務,請將 aws:SourceArn
和 aws:SourceAccount
條件金鑰新增至KMS金鑰政策。IAM 全域條件金鑰aws:SourceArn
有助於確保 AWS IoT FleetWise 僅針對服務特定的資源 Amazon Resource Name () 使用KMS金鑰ARNs。
如果您設定 的值aws:SourceArn
,它必須一律為 arn:aws:iotfleetwise:us-east-1:account_id:*
。這可讓 KMS金鑰存取此項目的所有 AWS IoT FleetWise 資源 AWS 帳戶。 AWS IoT FleetWise 支援該項目中所有資源的每個帳戶一個KMS金鑰 AWS 區域。針對 使用任何其他值SourceArn
,或未針對ARN資源欄位使用萬用字元 (*),可防止 AWS IoT FleetWise 存取KMS金鑰。
的值aws:SourceAccount
是您的帳戶 ID,用於進一步限制KMS金鑰,使其只能用於您的特定帳戶。如果您將 aws:SourceAccount
和 aws:SourceArn
條件索引鍵新增至KMS索引鍵,請確定任何其他服務或帳戶都不會使用該索引鍵。這有助於避免失敗。
下列政策包含服務主體 (服務識別符),以及根據 aws:SourceAccount
和 AWS 區域 您的帳戶 ID aws:SourceArn
設定 以供使用。
{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "Service": "iotfleetwise.amazonaws.com" }, "Action": [ "kms:Decrypt", "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 開發人員指南》中的變更金鑰政策。
重要
當您將新區段新增至KMS金鑰政策時,請勿變更政策中的任何現有區段。如果啟用了 AWS IoT FleetWise 加密,且以下任何一項都為 true AWS IoT FleetWise 就無法執行資料的操作:
-
KMS 金鑰已停用或刪除。
-
KMS 金鑰政策未針對服務正確設定。
AWS KMS 加密的許可
如果您啟用 AWS KMS 加密,則必須在角色政策中指定許可,以便您可以呼叫 AWS IoT FleetWise APIs。下列政策允許存取所有 AWS IoT FleetWise 動作,以及 AWS KMS 特定許可。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotfleetwise:*", "kms:GenerateDataKey*", "kms:Decrypt", "kms:DescribeKey" ], "Resource": [ "*" ] } ] }
您的角色需要下列政策陳述式,才能叫用加密 APIs。此政策陳述式允許 PutEncryptionConfiguration
和來自 AWS IoT FleetWise GetEncryptionConfiguration
的動作。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotfleetwise:GetEncryptionConfiguration", "iotfleetwise:PutEncryptionConfiguration", "kms:GenerateDataKey*", "kms:Decrypt", "kms:DescribeKey" ], "Resource": [ "*" ] } ] }