Configurar chaves geridas pelo cliente inativas

Quando cria uma nova API do Azure para a conta FHIR, os seus dados são encriptados através de chaves geridas pela Microsoft por predefinição. Agora, pode adicionar uma segunda camada de encriptação aos dados mediante a utilização da sua chave, escolhida e gerida por si.

No Azure, isto é normalmente conseguido com uma chave de encriptação no Azure Key Vault do cliente. SQL do Azure, o Armazenamento do Azure e o Azure Cosmos DB são alguns exemplos que fornecem esta capacidade atualmente. A API do Azure para FHIR tira partido deste suporte do Azure Cosmos DB. Quando cria uma conta, terá a opção de especificar um URI de chave de Key Vault do Azure. Esta chave será transmitida para o Azure Cosmos DB quando a conta DB for aprovisionada. Quando é feito um pedido FHIR® (Fast Healthcare Interoperability Resources), o Azure Cosmos DB obtém a sua chave e utiliza-a para encriptar/desencriptar os dados.

Para começar, consulte as seguintes ligações:

Com o Portal do Azure

Ao criar a sua API do Azure para a conta FHIR no portal do Azure, irá reparar na opção de configuração de Encriptação de Dados no separador Definições da Base de Dados no separador Definições Adicionais. Por predefinição, a opção chave gerida pelo serviço será selecionada.

Importante

A opção de encriptação de dados só está disponível quando a API do Azure para FHIR é criada e não pode ser alterada posteriormente. No entanto, pode ver e atualizar a chave de encriptação se a opção Chave gerida pelo cliente estiver selecionada.

Pode escolher a sua chave no KeyPicker:

KeyPicker

Também pode especificar a chave de Key Vault do Azure aqui ao selecionar a opção Chave gerida pelo cliente.

Também pode introduzir o URI da chave aqui:

Criar a API do Azure para FHIR

Importante

Certifique-se de que todas as permissões do Azure Key Vault estão definidas adequadamente. Para obter mais informações, veja Adicionar uma política de acesso à instância do Azure Key Vault. Além disso, certifique-se de que a eliminação recuperável está ativada nas propriedades do Key Vault. Não concluir estes passos resultará num erro de implementação. Para obter mais informações, veja Verificar se a eliminação recuperável está ativada num cofre de chaves e ativar a eliminação recuperável.

Nota

A utilização de chaves geridas pelo cliente nas regiões sul, leste asiático e sudeste asiático do Azure requer um ID de Aplicação Empresarial gerado pela Microsoft. Pode pedir o ID da Aplicação Empresarial ao criar um pedido de suporte único através do portal do Azure. Depois de receber o ID da Aplicação, siga as instruções para registar a aplicação.

Para contas FHIR existentes, pode ver a opção de encriptação de chaves (chave gerida pelo serviço ou Chave gerida pelo cliente) no painel Base de Dados, conforme mostrado abaixo. A opção de configuração não pode ser modificada depois de ser selecionada. No entanto, pode modificar e atualizar a sua chave.

Base de Dados

Além disso, pode criar uma nova versão da chave especificada, após a qual os seus dados serão encriptados com a nova versão sem qualquer interrupção do serviço. Também pode remover o acesso à chave para remover o acesso aos dados. Quando a chave é desativada, as consultas resultarão num erro. Se a chave for reativada, as consultas serão bem-sucedidas novamente.

Utilizar o Azure PowerShell

Com o URI da chave do Azure Key Vault, pode configurar a CMK com o PowerShell ao executar o comando do PowerShell abaixo:

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

Utilizar a CLI do Azure

Tal como acontece com o key-vault-key-uri método do PowerShell, pode configurar a CMK ao transmitir o URI da chave do Azure Key Vault no parâmetro e ao executar o comando da CLI abaixo:

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

Utilizar o Modelo de Resource Manager do Azure

Com o URI da chave do Azure Key Vault, pode configurar a CMK ao transmiti-la na propriedade keyVaultKeyUri no objeto de propriedades.

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

Além disso, pode implementar o modelo com o seguinte script do 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

Passos seguintes

Neste artigo, aprendeu a configurar chaves geridas pelo cliente inativas com o modelo portal do Azure, PowerShell, CLI e Resource Manager. Pode consultar a secção FAQ do Azure Cosmos DB para obter mais informações.

FHIR® é uma marca registada do HL7 e é utilizada com a permissão de HL7.