Azure 流體轉送加密適用的客戶自控金鑰
您可以使用自己的加密金鑰來保護 Azure Fluid Relay 資源中的數據。 當您指定客戶自控密鑰 (CMK) 時,該金鑰會用來保護和控制對加密資料之金鑰的存取。 CMK 提供更大的彈性來管理訪問控制。
您必須使用下列其中一個 Azure 金鑰存放區來儲存 CMK:
您必須建立新的 Azure Fluid Relay 資源,才能啟用 CMK。 您無法變更現有流體轉接資源上的 CMK 啟用/ 停用。
此外,Fluid Relay 的 CMK 依賴受控識別,而且您必須在啟用 CMK 時,將受控識別指派給 Fluid Relay 資源。 只有使用者指派的身分識別才允許用於 Fluid Relay 資源 CMK。 如需受控識別的詳細資訊,請參閱 這裡。
使用 CMK 設定流暢轉接資源尚無法透過 Azure 入口網站 完成。
當您使用 CMK 設定 Fluid Relay 資源時,Azure Fluid Relay 服務會在儲存您 Fluid 會話成品的 Azure 儲存體 帳戶範圍上設定適當的 CMK 加密設定。 如需 Azure 儲存體 中 CMK 的詳細資訊,請參閱這裡。
若要驗證 Fluid Relay 資源是否使用 CMK,您可以傳送 GET 來檢查資源的 屬性,並查看其是否具有 encryption.customerManagedKeyEncryption 的有效非空白屬性。
先決條件:
在 Azure Fluid Relay 資源上設定 CMK 之前,必須符合下列必要條件:
- 密鑰必須儲存在 Azure 金鑰保存庫 中。
- 金鑰必須是 RSA 金鑰,而不是 EC 金鑰,因為 EC 金鑰不支援 WRAP 和 UNWRAP。
- 您必須使用步驟 1 中金鑰保存庫的必要許可權來建立使用者指派的受控識別(GET、WRAP 和 UNWRAP)。 如需詳細資訊,請參閱 這裡。 請在 AKV 中的金鑰限下授與 GET、WRAP 和 UNWRAP。
- Azure 金鑰保存庫、使用者指派的身分識別,以及 Fluid Relay 資源必須位於相同的區域和相同Microsoft Entra 租使用者中。
使用 CMK 建立流暢轉接資源
PUT https://management.azure.com/subscriptions/<subscription ID>/resourceGroups/<resource group name> /providers/Microsoft.FluidRelay/fluidRelayServers/< Fluid Relay resource name>?api-version=2022-06-01 @"<path to request payload>"
要求承載格式:
{
"location": "<the region you selected for Fluid Relay resource>",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
“<User assigned identity resource ID>": {}
}
},
"properties": {
"encryption": {
"customerManagedKeyEncryption": {
"keyEncryptionKeyIdentity": {
"identityType": "UserAssigned",
"userAssignedIdentityResourceId": "<User assigned identity resource ID>"
},
"keyEncryptionKeyUrl": "<key identifier>"
}
}
}
}
範例 userAssignedIdentities 和 userAssignedIdentityResourceId:/subscriptions/ xxxxxxxx-xxxx-xxxx-xxxxxxx/resourceGroups/testGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testUserAssignedIdentity
範例 keyEncryptionKeyUrl: https://test-key-vault.vault.azure.net/keys/testKey/testKeyVersionGuid
注意:
- Identity.type 必須是 UserAssigned。 它是指派給 Fluid Relay 資源的受控識別識別類型。
- Properties.encryption.customerManagedKeyEncryption.keyEncryptionKeyIdentity.identityType 必須是 UserAssigned。 這是應該用於 CMK 之受控識別的識別類型。
- 雖然您可以在 Identity.userAssignedIdentities 中指定多個使用者身分識別,但只有一個指派給 Fluid Relay 資源的使用者身分識別會用於 CMK 存取密鑰保存庫以進行加密。
- Properties.encryption.customerManagedKeyEncryption.keyEncryptionKeyIdentity.userAssignedIdentityResourceId 是使用者指派身分識別的資源標識符,應該用於 CMK。 請注意,它應該是Identity.userAssignedIdentities 中的其中一個身分識別(您必須將身分識別指派給 Fluid Relay 資源,才能將其用於 CMK)。 此外,它應該具有密鑰的必要許可權(由 keyEncryptionKeyUrl 提供)。
- Properties.encryption.customerManagedKeyEncryption.keyEncryptionKeyUrl 是 CMK 所使用的密鑰標識符。
更新現有流體轉接資源的 CMK 設定
您可以在現有的流體轉接資源上更新下列 CMK 設定:
- 變更用來存取金鑰加密金鑰的身分識別。
- 變更金鑰加密金鑰識別碼(金鑰 URL)。
- 變更金鑰加密金鑰的金鑰版本。
請注意,一旦啟用 CMK,就無法在現有的流體轉接資源上停用 CMK。
要求 URL:
PATCH https://management.azure.com/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.FluidRelay/fluidRelayServers/<fluid relay server name>?api-version=2022-06-01 @"path to request payload"
更新金鑰加密金鑰 URL 的要求承載範例:
{
"properties": {
"encryption": {
"customerManagedKeyEncryption": {
"keyEncryptionKeyUrl": "https://test_key_vault.vault.azure.net/keys/testKey /xxxxxxxxxxxxxxxx"
}
}
}
}