Configurer des clés gérées par le client au repos

Quand vous créez un compte d’API Azure pour FHIR, vos données sont chiffrées à l’aide de clés managées par Microsoft par défaut. À présent, vous pouvez ajouter une deuxième couche de chiffrement pour les données à l’aide de votre propre clé que vous choisissez et gérez vous-même.

Dans Azure, cette opération s’effectue généralement à l’aide d’une clé de chiffrement dans le coffre de clés Azure du client. Azure SQL, Stockage Azure et Azure Cosmos DB, pour ne citer qu’eux, offrent désormais cette fonctionnalité. L’API Azure pour FHIR tire parti de cette prise en charge à partir d’Azure Cosmos DB. Lorsque vous créez un compte, vous avez la possibilité de spécifier un URI de clé Azure Key Vault. Cette clé est transmise à Azure Cosmos DB au moment de l’approvisionnement du compte de base de données. Lorsqu’une demande FHIR® (Fast Healthcare Interoperability Resources) est effectuée, Azure Cosmos DB extrait votre clé et l’utilise pour chiffrer/déchiffrer les données.

Pour commencer, consultez les liens suivants :

En passant par le portail Azure

Lors de la création de votre compte d’API Azure pour FHIR sur le portail Azure, vous remarquerez l’option de configuration Chiffrement des données sous Paramètres de base de données dans l’onglet Paramètres supplémentaires. Par défaut, l’option Clé gérée par le service est sélectionnée.

Important

L’option de chiffrement des données est uniquement disponible lors de la création de l’API Azure pour FHIR et ne peut pas être modifiée par la suite. Toutefois, vous pouvez afficher et mettre à jour la clé de chiffrement si l’option Clé gérée par le client est sélectionnée.

Vous pouvez choisir votre clé dans le sélecteur de clés :

Sélecteur de clés

Vous pouvez également spécifier votre clé Azure Key Vault ici en sélectionnant l’option Clé gérée par le client.

Vous pouvez aussi entrer l’URI de la clé ici :

Créer l’API Azure pour FHIR

Important

Vérifiez que toutes les autorisations relatives à Azure Key Vault sont définies de manière appropriée. Pour plus d’informations, consultez Ajouter une stratégie d’accès à votre instance Azure Key Vault. En outre, assurez-vous que la suppression réversible est activée dans les propriétés de Key Vault. Si vous passez ces étapes, une erreur de déploiement se produit. Pour plus d’informations, consultez Vérifier si la suppression réversible est activée sur un coffre de clés et activer la suppression réversible.

Notes

L’utilisation de clés gérées par le client dans les régions Azure Brésil Sud, Asie Est et Asie Sud-Est nécessite un ID d’application d’entreprise généré par Microsoft. Vous pouvez demander l’ID d’application d’entreprise en créant un ticket de support unique via le Portail Azure. Après avoir reçu l’ID d’application, suivez les instructions pour inscrire l’application.

Pour les comptes FHIR existants, vous pouvez visualiser le type de chiffrement de clé choisi (Clé gérée par le service ou Clé gérée par le client) dans le panneau Base de données illustré ci-dessous. Une fois sélectionnée, l’option de configuration ne peut pas être modifiée. Par contre, vous pouvez modifier et mettre à jour votre clé.

Sauvegarde de la base de données

Vous pouvez également créer une version de la clé spécifiée ; vos données seront alors chiffrées avec la nouvelle version sans aucune interruption de service. Vous pouvez également supprimer l’accès à la clé pour supprimer l’accès aux données. Lorsque la clé est désactivée, les requêtes génèrent une erreur. Si la clé est réactivée, les requêtes aboutiront.

Utilisation de Microsoft Azure PowerShell

Avec l’URI de votre clé Azure Key Vault, vous pouvez configurer une clé gérée par le client à l’aide de PowerShell en exécutant la commande PowerShell ci-dessous :

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

Utilisation de l’interface de ligne de commande Azure

Comme avec la méthode PowerShell, vous pouvez configurer la clé gérée par le client en passant l’URI de clé Azure Key Vault qui se trouve sous le paramètre key-vault-key-uri, et en exécutant la commande CLI ci-dessous :

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

Utilisation d’un modèle Azure Resource Manager

Avec l’URI de clé Azure Key Vault, vous pouvez configurer la clé gérée par le client en la passant sous la propriété keyVaultKeyUri dans l’objet 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
                }
            }
        }
    ]
}

Vous pouvez déployer le modèle avec le script PowerShell suivant :

$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

Étapes suivantes

Dans cet article, vous avez appris à configurer les clés gérées par le client au repos à l’aide du portail Azure, de PowerShell, de l’interface CLI et du modèle Resource Manager. Pour plus d’informations, consultez la section FAQ d’Azure Cosmos DB.

FHIR® est une marque déposée de HL7 et est utilisé avec l’autorisation de HL7.