保存状態のカスタマー マネージド キーを構成する

新しい 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 Portal の使用

Azure portal で Azure API for FHIR アカウントを作成中、[追加設定] タブの [データベース設定] の下に [データ暗号化] 構成オプションが表示されます。既定では、[サービス マネージド キー] オプションが選択されます。

重要

データ暗号化オプションは、Azure API for FHIR が作成されたときにのみ選択可能で、後で変更することはできません。 ただし、[カスタマー マネージド キー] オプションが選択されている場合は、暗号化キーを表示して更新することができます。

キーの選択から、自分のキーを選択することもできます。

キーの選択

または、ここで [カスタマー マネージド キー] オプションを選択することで、自分の Azure Key Vault キーを指定できます。

ここには、キーの URI を入力することもできます。

Azure API for FHIR の作成

重要

Azure Key Vault のすべてのアクセス許可が適切に設定されていることを確認します。 詳細については、「Azure Key Vault インスタンスにアクセス ポリシーを追加する」を参照してください。 さらに、Key Vault のプロパティで論理的な削除が有効になっていることを確認します。 これらの手順を完了しないと、デプロイ エラーが発生します。 詳細については、「キー コンテナーで論理的な削除が有効になっているかどうかを確認し、論理的な削除を有効にする」を参照してください。

注意

ブラジル南部、東アジア、東南アジアの Azure リージョンでカスタマー マネージド キーを使用するには、Microsoft によって生成されたエンタープライズ アプリケーション ID が必要です。 エンタープライズ アプリケーション ID を要求するには、Azure portalを通じて 1 回限りのサポート チケットを作成します。 アプリケーション ID を受け取った後、 指示に従ってアプリケーションを登録します

既存の FHIR アカウントの場合は、以下に示すように、[データベース] ブレードにキー暗号化の選択肢 ([サービス マネージド キー] または [カスタマー マネージド キー]) が表示されます。 この構成オプションは、選択後に変更することはできません。 ただし、キーを変更したり更新したりすることはできます。

[データベース]

さらに、指定したキーの新しいバージョンを作成することができます。その後、サービスが中断されることなく、既存のデータはその新しいバージョンで暗号化されます。 また、キーへのアクセス権を削除することで、データへのアクセス権を削除することもできます。 キーが無効になると、クエリがエラーになります。 キーが再度有効になると、クエリが再び正常に実行されるようになります。

Azure PowerShell の使用

Azure Key Vault キー URI を使用して、次の 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

次のステップ

この記事では、Azure portal、PowerShell、CLI、Resource Manager テンプレートを使用して、保存時のカスタマー マネージド キーを構成する方法について説明しました。 詳細については、Azure Cosmos DB の FAQ セクションを参照してください。

FHIR® は HL7 の登録商標であり、HL7 の権限を得て使用しています。