Configuración de claves administradas por el cliente en reposo

Cuando crea una cuenta de Azure API for FHIR, de forma predeterminada los datos se cifran mediante claves administradas por Microsoft. Ahora puede agregar una segunda capa de cifrado de datos mediante una clave que usted mismo elige y administra.

En Azure, para hacerlo se suele utilizar una clave de cifrado en la instancia de Azure Key Vault del cliente. Azure SQL, Azure Storage y Azure Cosmos DB son algunos ejemplos que proporcionan esta funcionalidad hoy en día. Azure API for FHIR aprovecha esta compatibilidad con Azure Cosmos DB. Al crear una cuenta, tendrá la opción de especificar el identificador URI de una clave de Azure Key Vault. Esta clave se pasará a Azure Cosmos DB al aprovisionar la cuenta de la base de datos. Cuando se hace una solicitud Recursos Rápidos de Interoperabilidad en Salud (FHIR®), Azure Cosmos DB captura tu clave y la usa para cifrar/descifrar los datos.

Para empezar, consultar los vínculos siguientes:

Uso de Azure Portal

Al crear la cuenta Azure API for FHIR en Azure Portal, verás la opción de configuración Cifrado de datos en la sección Configuración de base de datos en la pestaña Configuración adicional. De forma predeterminada, se seleccionará la opción de clave administrada por el servicio.

Importante

La opción de cifrado de datos solo está disponible cuando se crea Azure API for FHIR y no se puede cambiar después. Sin embargo, puede ver y actualizar la clave de cifrado si está seleccionada la opción Clave administrada por el cliente.

La clave se puede elegir en KeyPicker:

KeyPicker

También se puede especificar la clave de Azure Key Vault seleccionando la opción Clave administrada por el cliente.

Aquí también puede escribir el identificador URI de la clave:

Creación de Azure API for FHIR

Importante

Asegúrese de que todos los permisos de Azure Key Vault estén establecidos correctamente. Para más información, consulte Incorporación de una directiva de acceso a la instancia de Azure Key Vault. Además, asegúrese de que la eliminación temporal está habilitada en las propiedades del Key Vault. Si no se completan estos pasos, se producirá un error de implementación. Para obtener más información, vea Comprobar si la eliminación temporal está habilitada en un almacén de claves y habilitarla.

Nota

El uso de claves administradas por el cliente en las regiones sur de Brasil, Este de Asia y Sudeste de Asia de Azure requiere un identificador de aplicación empresarial generado por Microsoft. Para solicitar el identificador de aplicación empresarial, cree una incidencia de soporte técnico única a través del Azure Portal. Después de recibir el identificador de aplicación, siga las instrucciones para registrar la aplicación.

En el caso de las cuentas de FHIR existentes, puede ver la opción de cifrado de clave (clave administrada por el cliente o por el servicio) en la hoja Base de datos como se muestra a continuación. La opción de configuración no se puede modificar una vez seleccionada. Sin embargo, se puede modificar y actualizar la clave.

Base de datos

Además, puede crear una nueva versión de la clave especificada, después de la cual los datos se cifrarán con la nueva versión sin ninguna interrupción del servicio. También puede quitar el acceso a la clave para quitar el acceso a los datos. Cuando la clave esté deshabilitada, las consultas generarán un error. Si se vuelve a habilitar, las consultas se volverán a realizar correctamente.

Uso de Azure PowerShell

Con el URI de la clave de Azure Key Vault, puede configurar la clave administrada por el cliente con PowerShell mediante la ejecución del comando de PowerShell siguiente:

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

Uso de la CLI de Azure

Al igual que con el método de PowerShell, puede configurar la clave administrada por el cliente pasando el URI de la clave de Azure Key Vault del parámetro key-vault-key-uri y ejecutando el comando de la CLI siguiente:

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 de la plantilla de Azure Resource Manager

Con el URI de la clave de Azure Key Vault puede configurar la clave administrada por el cliente pasándolo por la propiedad keyVaultKeyUri del objeto 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
                }
            }
        }
    ]
}

Y puede implementar la plantilla con el siguiente script de 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

Pasos siguientes

En este artículo ha aprendido a configurar las claves administradas por el cliente en reposo mediante Azure Portal, PowerShell, la CLI y la plantilla de Resource Manager. Puede consultar la sección de preguntas más frecuentes sobre Azure Cosmos DB para más información.

FHIR® es una marca registrada de HL7 y se usa con el permiso de HL7.