次の方法で共有


チュートリアル: ドキュメントを匿名化するように Azure Storage を構成する

Azure Health Data Services の匿名化サービスでは、非同期ジョブを介して Azure Storage 内のドキュメントを匿名化できます。 匿名化するドキュメントが多数ある場合は、ジョブを使用することをお勧めします。 また、ジョブは一貫サブロゲーションを提供します。つまり、匿名化された出力の代理値はすべてのドキュメントで一致します。 一貫サブロゲーションを含む匿名化の詳細については、「匿名化サービスとは」を参照してください。

Azure Blob Storage にドキュメントを格納する場合は、Azure Storage の価格に基づいて課金されます。 このコストは、匿名化サービスの価格には含まれません。 Azure Blob Storage の価格を調査します

このチュートリアルでは、次の作業を行いました。

  • ストレージ アカウントとコンテナーの作成
  • サンプル ドキュメントをアップロードする
  • 匿名化サービスへのアクセスを許可する
  • ネットワークの分離を設定する

前提条件

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

匿名化サービスにストレージ アカウントへのアクセス権を付与する

この手順では、匿名化サービスのシステム割り当てマネージド ID ロールベースのアクセス権をコンテナーに付与します。 匿名化サービスは元のドキュメントの読み取りと、匿名化された出力ドキュメントの書き込みの両方を行うため、ストレージ 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 Storage ファイアウォールおよび仮想ネットワークを構成する」を参照してください。

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

次のステップ