Configurare chiavi gestite dal cliente inattive

Quando si crea un nuovo account dell'API di Azure per FHIR, per impostazione predefinita i dati vengono crittografati usando chiavi gestite da Microsoft. A questo punto, è possibile aggiungere un secondo livello di crittografia per i dati usando una chiave personalizzata che si sceglie e si gestisce in autonomia.

In Azure questa operazione viene in genere eseguita usando una chiave di crittografia nel Key Vault di Azure del cliente. Azure SQL, Archiviazione di Azure e Azure Cosmos DB sono alcuni esempi che offrono oggi questa funzionalità. L'API di Azure per FHIR sfrutta questo supporto da Azure Cosmos DB. Quando si crea un account, è possibile specificare un URI della chiave di Azure Key Vault. Questa chiave verrà passata ad Azure Cosmos DB quando viene effettuato il provisioning dell'account DB. Quando viene effettuata una richiesta FHIR® (Fast Healthcare Interoperability Resources), Azure Cosmos DB recupera la chiave e la usa per crittografare/decrittografare i dati.

Per iniziare, fare riferimento ai collegamenti seguenti:

Uso del portale di Azure

Quando si crea l'account API di Azure per FHIR in portale di Azure, si noterà l'opzione di configurazione Crittografia dati nella scheda Impostazioni database nella scheda Impostazioni aggiuntive. Per impostazione predefinita, verrà selezionata l'opzione chiave gestita dal servizio.

Importante

L'opzione di crittografia dei dati è disponibile solo quando viene creata l'API di Azure per FHIR e non può essere modificata in seguito. È tuttavia possibile visualizzare e aggiornare la chiave di crittografia se è selezionata l'opzione Chiave gestita dal cliente .

È possibile scegliere la chiave da KeyPicker:

Selezione chiavi

È anche possibile specificare la chiave Key Vault di Azure selezionando l'opzione Chiave gestita dal cliente.

È anche possibile immettere l'URI della chiave qui:

Creare l'API di Azure per FHIR

Importante

Assicurarsi che tutte le autorizzazioni per Azure Key Vault siano impostate in modo appropriato. Per altre informazioni, vedere Aggiungere un criterio di accesso all'istanza di Azure Key Vault. Assicurarsi inoltre che l'eliminazione temporanea sia abilitata nelle proprietà del Key Vault. Il mancato completamento di questi passaggi genererà un errore di distribuzione. Per altre informazioni, vedere Verificare se l'eliminazione temporanea è abilitata in un insieme di credenziali delle chiavi e abilitare l'eliminazione temporanea.

Nota

L'uso di chiavi gestite dal cliente nelle aree Brasile meridionale, Asia orientale e Asia sud-orientale di Azure richiede un ID applicazione aziendale generato da Microsoft. È possibile richiedere l'ID applicazione aziendale creando un ticket di supporto una tantum tramite il portale di Azure. Dopo aver ricevuto l'ID applicazione, seguire le istruzioni per registrare l'applicazione.

Per gli account FHIR esistenti, è possibile visualizzare la scelta di crittografia della chiave (chiave gestita dal servizio o chiave gestita dal cliente) nel pannello Database , come illustrato di seguito. L'opzione di configurazione non può essere modificata una volta selezionata. Sarà tuttavia possibile modificare e aggiornare la chiave.

Database

È inoltre possibile creare una nuova versione della chiave specificata. Successivamente i dati verranno crittografati con la nuova versione senza interruzioni del servizio. Si può anche rimuovere l'accesso alla chiave per rimuovere l'accesso ai dati. Quando la chiave è disabilitata, le query genereranno un errore. Se la chiave è riabilitata, le query avranno esito positivo.

Uso di Azure PowerShell

Con l'URI della chiave Key Vault di Azure, è possibile configurare cmk usando PowerShell eseguendo il comando di PowerShell seguente:

New-AzHealthcareApisService
    -Name "myService"
    -Kind "fhir-R4"
    -ResourceGroupName "myResourceGroup"
    -Location "westus2"
    -CosmosKeyVaultKeyUri "https://<my-vault>.vault.azure.net/keys/<my-key>"

Utilizzare l'interfaccia della riga di comando di Azure

Come per il metodo PowerShell, è possibile configurare cmk passando l'URI della chiave Key Vault di Azure sotto il key-vault-key-uri parametro ed eseguendo il comando dell'interfaccia della riga di comando seguente:

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>"

Uso del modello di Azure Resource Manager

Con l'URI della chiave Key Vault di Azure, è possibile configurarla passandola sotto la proprietà keyVaultKeyUri nell'oggetto properties.

{
    "$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
                }
            }
        }
    ]
}

È anche possibile distribuire il modello con lo script di PowerShell seguente:

$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

Passaggi successivi

In questo articolo si è appreso come configurare le chiavi gestite dal cliente inattive usando il modello di portale di Azure, PowerShell, interfaccia della riga di comando e Resource Manager. Per altre informazioni, vedere la sezione Domande frequenti su Azure Cosmos DB.

FHIR® è un marchio registrato di HL7 e viene usato con l'autorizzazione di HL7.