你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:配置 Azure 存储对文档进行去标识化处理

Azure Health Data Services 去识别化服务(预览版)可以通过异步作业对 Azure 存储中的文档进行去标识化处理。 如果有许多文档需要去标识化,使用作业是一个不错的选择。 作业还提供一致替代,这意味着在去标识化输出中的替代值将在所有文档中匹配。 有关去识别化的详细信息(包括一致替代),请参阅什么是去识别化服务(预览版)?

当你选择在 Azure Blob 存储中存储文档时,我们会根据 Azure 存储定价向你收费。 去识别化服务定价中不包括此成本。 浏览 Azure Blob 存储定价

在本教程中,你将了解:

  • 创建存储帐户和容器
  • 上传示例文档
  • 授予去识别化服务访问权限
  • 配置网络隔离

先决条件

打开 Azure CLI

安装 Azure CLI 并打开所选终端。 在本教程中,我们将使用 PowerShell。

创建存储帐户和容器

  1. 设置上下文,将包含去识别化服务的订阅名称替换为 <subscription_name> 占位符:
    az account set --subscription "<subscription_name>"
    
  2. 保存资源组的变量,替换包含 <resource_group> 占位符的去识别化服务的资源组:
    $ResourceGroup = "<resource_group>"
    
  3. 创建存储帐户,并为 <storage_account_name> 占位符提供值:
    $StorageAccountName = "<storage_account_name>"
    $StorageAccountId = $(az storage account create --name $StorageAccountName --resource-group $ResourceGroup --sku Standard_LRS --kind StorageV2 --min-tls-version TLS1_2 --allow-blob-public-access false --query id --output tsv)
    
  4. 为自己分配一个角色,以对存储帐户执行数据操作:
    $UserId = $(az ad signed-in-user show --query id -o tsv)
    az role assignment create --role "Storage Blob Data Contributor" --assignee $UserId --scope $StorageAccountId
    
  5. 创建用于保存示例文档的容器:
    az storage container create --account-name $StorageAccountName --name deidtest --auth-mode login
    

上传示例文档

接下来,上传包含合成受保护健康信息 (PHI) 的文档:

$DocumentContent = "The patient came in for a visit on 10/12/2023 and was seen again November 4th at Contoso Hospital."
az storage blob upload --data $DocumentContent --account-name $StorageAccountName --container-name deidtest --name deidsample.txt --auth-mode login

授予去识别化服务对存储帐户的访问权限

在此步骤中,将授予去识别化服务系统分配的托管标识对容器的基于角色的访问权限。 授予存储 Blob 数据参与者角色权限,因为去识别化服务将同时读取原始文档和写入已去识别化的输出文档。 将去识别化服务的名称替换为 <deid_service_name> 占位符:

$DeidServicePrincipalId=$(az resource show -n <deid_service_name> -g $ResourceGroup --resource-type microsoft.healthdataaiservices/deidservices --query identity.principalId --output tsv)
az role assignment create --assignee $DeidServicePrincipalId --role "Storage Blob Data Contributor" --scope $StorageAccountId

在存储帐户上配置网络隔离

接下来,更新存储帐户以禁用公共网络访问,并且仅允许从受信任的 Azure 服务(例如去识别化服务)进行访问。 运行此命令后,你将无法查看存储容器的内容,除非设置网络例外。 若要了解详细信息,请参阅配置 Azure 存储防火墙和虚拟网络

az storage account update --name $StorageAccountName --public-network-access Disabled --bypass AzureServices

清理资源

完成存储帐户的操作后,可以删除存储帐户和角色分配:

az role assignment delete --assignee $DeidServicePrincipalId --role "Storage Blob Data Contributor" --scope $StorageAccountId
az role assignment delete --assignee $UserId --role "Storage Blob Data Contributor" --scope $StorageAccountId
az storage account delete --ids $StorageAccountId --yes

下一步