Configurar chaves gerenciada pelo cliente em repouso

Quando você criar uma conta da API do Azure para FHIR, os seus dados serão criptografados usando as chaves gerenciadas pela Microsoft por padrão. Agora, você pode adicionar uma segunda camada de criptografia nos dados usando a própria chave escolhida e gerenciada por conta própria.

No Azure, isso normalmente é feito usando uma chave de criptografia no Azure Key Vault do cliente. O SQL do Azure, o Armazenamento do Azure e o Azure Cosmos DB são alguns exemplos que oferecem essa funcionalidade no momento. A API do Azure para FHIR aproveita esse suporte do Azure Cosmos DB. Ao criar uma conta, existe a opção de especificar um URI de chave do Azure Key Vault. Essa chave será passada ao Azure Cosmos DB quando a conta do BD for provisionada. Quando uma solicitação do FHIR® (Fast Healthcare Interoperability Resources) é feita, o Azure Cosmos DB busca a chave e a usa para criptografar/descriptografar os dados.

Para começar, confira os seguintes links:

Usando o Portal do Azure

Depois de criar a conta da API do Azure para FHIR no portal do Azure, você verá uma opção de configuração Criptografia de Dados em Configurações do Banco de Dados na guia Configurações Adicionais. Por padrão, a opção de chave gerenciada pelo serviço será escolhida.

Importante

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

Você pode escolher a chave no KeyPicker:

KeyPicker

Ou você também pode especificar a chave do Azure Key Vault aqui selecionando a opção Chave gerenciada pelo cliente.

Você também pode inserir o URI da chave aqui:

Criar a API do Azure para FHIR

Importante

Verifique se todas as permissões do Azure Key Vault estão definidas corretamente. Para obter mais informações, confira Adicionar uma política de acesso à instância do Azure Key Vault. Além disso, verifique se a exclusão reversível está habilitada nas propriedades do Key Vault. Se essas etapas não forem concluídas, haverá um erro de implantação. Para obter mais informações, confira Verificar se a exclusão reversível está habilitada em um cofre de chaves e habilitá-la.

Observação

O uso de chaves gerenciadas pelo cliente nas regiões Sul do Brasil, Leste da Ásia e Sudeste da Ásia do Azure requer uma ID de Aplicativo Empresarial gerada pela Microsoft. Você pode solicitar a ID do Aplicativo Enterprise criando um tíquete de suporte único por meio do portal do Azure. Depois de receber a ID do aplicativo, siga as instruções para registrar o aplicativo.

Para contas do FHIR existentes, você pode ver a opção de criptografia de chave (Chave gerenciada pelo serviço ou Chave gerenciada pelo cliente) na folha Banco de dados, conforme a descrição abaixo. A opção de configuração não poderá ser modificada depois que for escolhida. No entanto, você pode modificar e atualizar a sua chave.

Backup de banco de dados

Além disso, você pode criar uma versão da chave especificada, após a qual os seus dados serão criptografados com a nova versão sem nenhuma interrupção do serviço. Você também pode remover o acesso à chave para remover o acesso aos dados. Quando a chave estiver desabilitada, as consultas resultarão em um erro. Se a chave for habilitada novamente, as consultas terão sucesso novamente.

Usando o PowerShell do Azure

Com o URI de chave do Azure Key Vault, você pode configurar a CMK por meio do PowerShell executando 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>"

Usando a CLI do Azure

Assim como ocorre com o método do PowerShell, você pode configurar a CMK transmitindo o URI de chave do Azure Key Vault no parâmetro key-vault-key-uri e executando 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>"

Usar o modelo do Azure Resource Manager

Com o URI de chave do Azure Key Vault, você pode configurar a CMK transmitindo-a para a propriedade keyVaultKeyUri no 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
                }
            }
        }
    ]
}

Além disso, implante 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

Próximas etapas

Neste artigo, você aprendeu a configurar chaves gerenciadas pelo cliente inativas usando o portal do Azure, o PowerShell, a CLI e o modelo do Resource Manager. Consulte a seção de perguntas frequentes do Azure Cosmos DB para obter mais informações.

O FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.