保存状態のカスタマー マネージド キーを構成する
重要
Azure API for FHIR は、2026 年 9 月 30 日に廃止されます。 移行戦略に従って、その日までに Azure Health Data Services FHIR® サービスに切り替えてください。 Azure API for FHIR が廃止されたため、2025 年 4 月 1 日以降、新しいデプロイは許可されません。 Azure Health Data Services FHIR サービス は、お客様が他の Azure サービスへの統合を使用して、FHIR、DICOM、および MedTech サービスを管理できるようにする、進化したバージョンの Azure API for FHIR です。
新しい Azure API for FHIR® アカウントを作成すると、既定では、Microsoft マネージド キーを使用してデータが暗号化されます。 これで、自分で選択して管理しているキーを使用して、第 2 のデータ暗号化レイヤーを追加できるようになります。
Azure では通常、これを実現するために、お客様の Azure Key Vault にある暗号化キーが使用されます。 その機能が提供される例として、Azure SQL、Azure Storage、Azure Cosmos DB があります。 Azure API for FHIR では、このサポートを Azure Cosmos DB から利用します。 アカウントの作成時には、Azure Key Vault キーの URI を指定することもできます。 このキーは、DB アカウントのプロビジョニング時に、Azure Cosmos DB に渡されます。 高速ヘルスケア相互運用性リソース (FHIR) 要求が送信されると、Azure Cosmos DB ではキーを取得し、それを使用してデータの暗号化または暗号化解除を実行します。
まずは、次のリンク先を参照してください。
- Azure サブスクリプション用の Azure Cosmos DB リソース プロバイダーを登録する
- Azure Key Vault インスタンスを構成する
- Azure Key Vault インスタンスにアクセス ポリシーを追加する
- Azure Key Vault でキーを生成する
Azure portal を使用して
Azure portal で Azure API for FHIR アカウントを作成すると、[追加の設定] タブの [データベースの設定] に [データの暗号化] 構成オプションが表示されます。既定では、サービスマネージド キー オプションが選択されています。
重要
データ暗号化オプションは、Azure API for FHIR が作成されたときにのみ選択可能で、後で変更することはできません。 ただし、[カスタマー マネージド キー] オプションが選択されている場合は、暗号化キーを表示して更新することができます。
キーの選択から、自分のキーを選択することもできます。
または、ここで [カスタマー マネージド キー] オプションを選択することで、自分の Azure Key Vault キーを指定できます。
次のようにキーの URI を入力することもできます。
重要
Azure Key Vault のすべてのアクセス許可が適切に設定されていることを確認します。 詳細については、「Azure Key Vault インスタンスにアクセス ポリシーを追加する」を参照してください。 さらに、Key Vault のプロパティで論理的な削除が有効になっていることを確認します。 これらの手順を完了しないと、デプロイ エラーが発生します。 詳細については、「キー コンテナーで論理的な削除が有効になっているかどうかを確認し、論理的な削除を有効にする」を参照してください。
Note
ブラジル南部、東アジア、東南アジアの Azure リージョンでカスタマー マネージド キーを使用するには、Microsoft が生成したエンタープライズ アプリケーション ID が必要です。 エンタープライズ アプリケーション ID をリクエストするには、Azure portal でワンタイム サポート チケットを作成します。 アプリケーション ID を受け取った後、指示に従ってアプリケーションを登録します。
既存の FHIR アカウントの場合は、次のように、[データベース] ブレードにキー暗号化の選択肢 ([サービス マネージド キー] または [カスタマー マネージド キー]) が表示されます。 この構成オプションは、選択後に変更することはできません。 ただし、キーを変更したり更新したりすることはできます。
さらに、指定したキーの新しいバージョンを作成することができます。その後、サービスが中断されることなく、既存のデータはその新しいバージョンで暗号化されます。 また、キーへのアクセス権を削除することで、データへのアクセス権を削除することもできます。 キーが無効になると、クエリがエラーになります。 キーが再度有効になると、クエリが再び正常に実行されるようになります。
Azure PowerShell の使用
Azure Key Vault キー URI を使用し、PowerShell を使用して次の PowerShell コマンドを実行することで、CMK を構成できます。
New-AzHealthcareApisService
-Name "myService"
-Kind "fhir-R4"
-ResourceGroupName "myResourceGroup"
-Location "westus2"
-CosmosKeyVaultKeyUri "https://<my-vault>.vault.azure.net/keys/<my-key>"
Azure CLI の使用
PowerShell の方法と同様に、key-vault-key-uri
パラメーターで Azure Key Vault キー URI を渡し、次の CLI コマンドを実行することで、CMK を構成できます。
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>"
Azure Resource Manager テンプレートの使用
properties オブジェクトの keyVaultKeyUri プロパティで Azure Key Vault キー URI を渡すことで、CMK を構成できます。
{
"$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
}
}
}
]
}
次の 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
よく寄せられる質問
FHIR API で使用される 'cosmosdb_key_vault_key_versionless_id' は、FHIR サービスのマネージド Cosmos DB に接続するように設計されていますか?
はい。FHIR API でカスタマー マネージド キーを有効にする場合は、[cosmosdb_key_vault_key_versionless_id] を選択すると、FHIR サービスのマネージド Cosmos DB に接続します。
次のステップ
この記事では、Azure portal、PowerShell、CLI、Resource Manager テンプレートを使用して、保存時のカスタマー マネージド キーを構成する方法について説明しました。 詳細については、Azure Cosmos DB の FAQ セクションを参照してください。
Note
FHIR® は HL7 の登録商標であり、HL7 の許可を得て使用しています。