設定待用客戶管理的金鑰

當您建立新的 Azure API for FHIR 帳戶時,預設會使用 Microsoft 代控金鑰來加密您的資料。 現在,您可以使用自己選擇並自行管理的金鑰,為資料新增第二層加密。

在 Azure 中,這通常是使用客戶 Azure 金鑰保存庫中的加密金鑰來完成。 Azure SQL、Azure 儲存體和 Azure Cosmos DB 是目前提供這項功能的一些範例。 Azure API for FHIR 會利用 Azure Cosmos DB 的這項支援。 當您建立帳戶時,可以選擇指定 Azure 金鑰保存庫金鑰 URI。 布建 DB 帳戶時,此金鑰會傳遞至 Azure Cosmos DB。 當提出快速醫療保健互通性資源 (FHIR®) 要求時,Azure Cosmos DB 會擷取您的金鑰,並使用它來加密/解密資料。

若要開始使用,請參閱下列連結:

使用 Azure 入口網站

在 Azure 入口網站 上建立 Azure API for FHIR 帳戶時,您會在 [其他設定] 索引標籤上的 [資料庫設定] 底下看到[資料加密] 組態選項。根據預設,將會選取服務管理的金鑰選項。

重要

只有在建立 Azure API for FHIR 且之後無法變更時,才能使用資料加密選項。 不過,如果選取 [ 客戶管理的金鑰 ] 選項,您可以檢視和更新加密金鑰。

您可以從 KeyPicker 中選擇金鑰:

KeyPicker

您也可以選取[客戶管理的金鑰] 選項,在此指定 Azure 金鑰保存庫金鑰。

您也可以在這裡輸入金鑰 URI:

建立 Azure API for FHIR

重要

請確定已適當設定 Azure 金鑰保存庫的擁有權限。 如需詳細資訊,請參閱將存取原則新增至 Azure 金鑰保存庫 實例。 此外,請確定已在金鑰保存庫的屬性中啟用虛刪除。 未完成這些步驟會導致部署錯誤。 如需詳細資訊,請參閱 確認金鑰保存庫上是否已啟用虛刪除,並啟用虛刪除

注意

在巴西南部、東亞和東南亞 Azure 區域中使用客戶管理的金鑰,需要 Microsoft 產生的企業應用程式識別碼。 您可以透過Azure 入口網站建立一次性支援票證來要求企業應用程式識別碼。 收到應用程式識別碼之後,請遵循 指示來註冊應用程式

對於現有的 FHIR 帳戶,您可以在 [資料庫] 刀鋒視窗中檢視金鑰加密選擇 (服務管理的金鑰客戶管理的金鑰) ,如下所示。 一旦選取組態選項,就無法修改它。 不過,您可以修改和更新金鑰。

資料庫

此外,您可以建立所指定金鑰的新版本,在此之後,您的資料將會以新版本加密,而不會發生任何服務中斷。 您也可移除金鑰的存取權,以移除資料的存取權。 停用金鑰時,查詢將會產生錯誤。 如果重新啟用金鑰,查詢會再次成功。

使用 Azure PowerShell

使用 Azure 金鑰保存庫金鑰 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 金鑰保存庫金鑰 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 金鑰保存庫金鑰 URI,您可以在properties物件中的keyVaultKeyUri屬性下傳遞 CMK 來設定 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

下一步

在本文中,您已瞭解如何使用 Azure 入口網站、PowerShell、CLI 和 Resource Manager 範本來設定客戶管理的待用金鑰。 如需詳細資訊,請參閱 Azure Cosmos DB 常見問題一節。

FHIR® 是 HL7 的注冊商標,可與 HL7 的許可權搭配使用。