設定待用客戶自控金鑰
重要
Azure API for FHIR 將於 2026 年 9 月 30 日淘汰。 請依照移轉策略,在該日期前轉換至 Azure 健康資料服務 FHIR® 服務。 由於 Azure API for FHIR 已淘汰,因此從 2025 年 4 月 1 日開始,將不允許新的部署。 Azure 健康資料服務 FHIR 服務是 Azure API for FHIR 的進化版本,可讓客戶透過與其他 Azure 服務整合來管理 FHIR、DICOM 和醫療技術服務。
當您建立新的 Azure API for FHIR® 帳戶時,預設會使用 Microsoft 受控金鑰來加密您的資料。 現在,您可以使用自行選擇並管理的金鑰,為資料新增第二層加密。
在 Azure 中,這通常是使用客戶的 Azure Key Vault 中的加密金鑰來完成。 Azure SQL、Azure 儲存體和 Azure Cosmos DB 都是提供這項功能的一些範例。 Azure API for FHIR 會利用來自 Azure Cosmos DB 的這種支援。 當您建立帳戶時,您可選擇指定 Azure Key Vault 金鑰 URI。 此金鑰會在 DB 帳戶進行佈建時傳遞至 Azure Cosmos DB。 提出快速健康照護互通資源 (FHIR) 要求時,Azure Cosmos DB 會擷取您的金鑰並將其用來加密/解密資料。
若要開始使用,請參考下列連結:
- 為您的 Azure 訂用帳戶註冊 Azure Cosmos DB 資源提供者
- 設定您的 Azure Key Vault 執行個體
- 將存取原則新增至您的 Azure Key Vault 執行個體
- 在 Azure Key Vault 中產生金鑰
使用 Azure 入口網站
在 Azure 入口網站上建立 Azure API for FHIR 帳戶之後,您將會在 [其他設定] 索引標籤上的 [資料庫設定] 底下看到 [資料加密] 設定選項。預設會選取服務管理金鑰選項。
重要
只有在建立 Azure API for FHIR 且之後無法變更時,才能使用資料加密選項。 不過,如果選取 [客戶自控金鑰] 選項,您可以檢視及更新加密金鑰。
您可以從 KeyPicker 選擇您的金鑰:
您也可以選取 [客戶自控金鑰] 選項,在此指定您的 Azure Key Vault 金鑰。
您也可以輸入金鑰 URI,如下所示。
重要
請確定已適當地設定 Azure Key Vault 的所有權限。 如需詳細資訊,請參閱將存取原則新增至您的 Azure Key Vault 執行個體。 此外,請確定 Key Vault 的屬性中已啟用虛刪除。 未完成這些步驟會導致部署錯誤。 如需詳細資訊,請參閱確認金鑰保存庫是否已啟用虛刪除,並啟用虛刪除。
注意
在巴西南部、東亞和東南亞 Azure 區域中使用客戶自控金鑰,需要 Microsoft 所產生的企業應用程式識別碼。 您可以透過 Azure 入口網站建立一次性支援票證來要求企業應用程式識別碼。 收到應用程式識別碼之後,請遵循註冊應用程式的指示。
對於現有的 FHIR 帳戶,您可以在 [資料庫] 刀鋒視窗中檢視金鑰加密選擇 ([服務管理金鑰] 或 [客戶自控金鑰]),如下所示。 選取後便無法修改設定選項。 不過,您可以修改和更新金鑰。
此外,您可以建立所指定金鑰的新版本,在此之後,您的資料將會以新版本加密,而不會中斷任何服務。 您也可移除金鑰的存取權,以移除資料的存取權。 停用金鑰時,查詢將會導致錯誤。 如果重新啟用金鑰,查詢會再次成功。
使用 Azure PowerShell
透過 Azure Key Vault 金鑰 URI,您可以執行下列 PowerShell 命令,使用 PowerShell 設定 CMK。
New-AzHealthcareApisService
-Name "myService"
-Kind "fhir-R4"
-ResourceGroupName "myResourceGroup"
-Location "westus2"
-CosmosKeyVaultKeyUri "https://<my-vault>.vault.azure.net/keys/<my-key>"
使用 Azure CLI
與 PowerShell 方法一樣,您可以在 key-vault-key-uri
參數下傳遞 Azure Key Vault 金鑰 URI 並執行下列 CLI 命令,以設定 CMK。
az healthcareapis service create
--resource-group "myResourceGroup"
--resource-name "myResourceName"
--kind "fhir-R4"
--location "westus2"
--cosmos-db-configuration key-vault-key-uri="https://<my-vault>.vault.azure.net/keys/<my-key>"
使用 Azure Resource Manager 範本
使用 Azure Key Vault 金鑰 URI,您可以在 [屬性] 物件中的 [keyVaultKeyUri] 属性下傳遞以設定 CMK。
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"services_myService_name": {
"defaultValue": "myService",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.HealthcareApis/services",
"apiVersion": "2020-03-30",
"name": "[parameters('services_myService_name')]",
"location": "westus2",
"kind": "fhir-R4",
"properties": {
"accessPolicies": [],
"cosmosDbConfiguration": {
"offerThroughput": 400,
"keyVaultKeyUri": "https://<my-vault>.vault.azure.net/keys/<my-key>"
},
"authenticationConfiguration": {
"authority": "https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47",
"audience": "[concat('https://', parameters('services_myService_name'), '.azurehealthcareapis.com')]",
"smartProxyEnabled": false
},
"corsConfiguration": {
"origins": [],
"headers": [],
"methods": [],
"maxAge": 0,
"allowCredentials": false
}
}
}
]
}
您可以使用下列 PowerShell 指令碼來部署範本。
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$accountLocation = "West US 2"
$keyVaultKeyUri = "https://<my-vault>.vault.azure.net/keys/<my-key>"
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroupName `
-TemplateFile "deploy.json" `
-accountName $accountName `
-location $accountLocation `
-keyVaultKeyUri $keyVaultKeyUri
常見問題集
FHIR API 中是否使用 「cosmosdb_key_vault_key_versionless_id」,其設計目的是要連線到 FHIR 服務受控 Cosmos DB?
是,當您在 FHIR API 上啟用客戶管理的金鑰時,選取 [cosmosdb_key_vault_key_versionless_id] 會連線到 FHIR 服務受控 Cosmos DB。
下一步
在本文中,您已了解如何使用 Azure 入口網站、PowerShell、CLI 和 Resource Manager 範本來設定待用客戶自控金鑰。 如需詳細資訊,請參閱 Azure Cosmos DB 常見問題集一節。
注意
FHIR® 是 HL7 的註冊商標,在 HL7 的許可下使用。