Azure AI Bot Service での保存データの暗号化

この記事の対象: SDK v4

Azure AI Bot Service は、データがクラウドに保存されている場合にそのデータを自動的に暗号化し、データを保護して、組織のセキュリティとコンプライアンスのコミットメントを満たします。

暗号化と暗号化解除は透過的であり、暗号化とアクセスはユーザーによって管理されます。 データは既定でセキュリティ保護され、暗号化を利用するためにコードまたはアプリケーションを変更する必要はありません。

暗号化キーの管理について

サブスクリプションでは、Microsoft が管理する暗号化キーが既定で使用されます。 カスタマー マネージド キーと呼ばれるユーザー独自のキーでボット リソースを管理できます。 カスタマー マネージド キーを使用すると、Azure AI Bot Service に格納されたデータのアクセス制御の作成、ローテーション、無効化、取り消しを、より柔軟に行うことができます。 また、データを保護するために使われる暗号化キーを監査することもできます。

データを暗号化する場合、Azure AI Bot Service は 2 つのレベルの暗号化を使用して暗号化します。 カスタマー マネージド キーが有効になっていない場合、使用されるキーはどちらも Microsoft が管理するキーです。 カスタマー マネージド キーが有効になっている場合、データはカスタマー マネージド キーと Microsoft マネージド キーの両方で暗号化されます。

Azure Key Vault でのカスタマー マネージド キー

カスタマー マネージド キー機能を利用するには、Azure Key Vault にキーを格納して管理する必要があります。 独自のキーを作成してキー コンテナーに格納することも、Azure Key Vault API を使ってキーを生成することもできます。 Azure Bot リソースとキー コンテナーは異なるサブスクリプションにあってもかまいませんが、同じ Microsoft Entra ID テナントに存在する必要があります。 Azure Key Vault の詳細については、「Azure Key Vault とは」をご覧ください。

カスタマー マネージド キーを使用する場合、Azure AI Bot Service はストレージ内のデータを暗号化します。 そのキーへのアクセスが取り消された場合、またはキーが削除された場合、ボットは Azure AI Bot Service を使用してメッセージを送受信することはできず、Azure portal でボットの構成にアクセスしたり編集したりすることはできません。

ポータルを使用して Azure Bot リソースを作成すると、Azure によってアプリ IDパスワードが生成されますが、Azure Key Vault には格納されません。 キー コンテナーは、Azure AI Bot Service と共に使用できます。 詳細については、「Key Vault に接続するように Web アプリを構成する」を参照してください。 Key Vault を使用してシークレットを格納および取得する方法の例については、「クイック スタート: .NET 用 Azure Key Vault シークレット クライアント ライブラリ (SDK v4)」を参照してください。

重要

Azure AI Bot Service チームは、キーにアクセスしないと、カスタマー マネージド暗号化キー ボットを復旧できません。

どのデータが暗号化されていますか?

Azure AI Bot Service は、ボット、ボットが使用するチャネル、開発者が設定する構成設定、および必要に応じて、現在アクティブな会話のレコードに関する顧客データを格納します。 また、一時的に、24 時間以内の間、Direct Line または Web チャット チャネル経由で送信されたメッセージと、アップロードされた添付ファイルが格納されます。

すべての顧客データは、Azure AI Bot Service の 2 つの暗号化レイヤーで暗号化されます。Microsoft マネージド暗号化キーを使用するか、もしくはMicrosoft とカスタマー マネージド暗号化キーを使用するかです。 Azure AI Bot Service は、Microsoft マネージド暗号化キーを使用して一時的に格納されたデータを暗号化し、Azure Bot リソースの構成に応じて、Microsoft またはカスタマー マネージド暗号化キーを使用して長期的なデータを暗号化します。

Note

Azure AI Bot Service は、Azure AI Bot Service の外部の他のサービスでユーザーとの間でメッセージを配信する機能を顧客に提供するために存在するため、暗号化はこれらのサービスに拡張されません。 つまり、Azure AI Bot Service の制御下では、この記事のガイダンスに従ってデータが暗号化されて格納されます。ただし、サービスを離れて別のサービスに配信される場合、データは復号化され、TLS 1.2 暗号化を使用してターゲット サービスに送信されます。

Azure Key Vault インスタンスを構成する方法

Azure AI Bot Service でカスタマー マネージド キーを使用するには、暗号化キーをホストするために使用しようとしている Azure Key Vault インスタンスで 2 つのプロパティを設定する必要があります。論理的な削除消去の保護です。 これらの機能により、何らかの理由でキーが誤って削除された場合でもキーを回復できます。 論理的な削除と消去の保護の詳細については、「Azure Key Vault の論理的な削除の概要」を参照してください。

Screenshot of soft delete and purge protection enabled.

既存の Azure Key Vault インスタンスを使用している場合は、Azure portal の [プロパティ] セクションを見て、これらのプロパティが有効であることを確認できます。 これらのプロパティのいずれかが有効になっていない場合は、「論理的な削除と消去の保護を有効にする方法」の キー コンテナー セクションを参照してください。

Azure AI Bot Service にキー コンテナーへのアクセス権を付与する

このために作成したキー コンテナーに Azure AI Bot Service がアクセスできるようにするには、アクセス ポリシーを設定する必要があります。これにより、Azure AI Bot Service のサービス プリンシパルに現在のアクセス許可セットが付与されます。 キー コンテナーの作成方法など、Azure Key Vault の詳細については、「Azure Key Vault について」を参照してください。

  1. キー コンテナーを含むサブスクリプションに Azure AI Bot Service リソース プロバイダーを登録します。

    1. Azure ポータルにアクセスします。
    2. [サブスクリプション] ブレードで、キー コンテナーを含むサブスクリプションを選択します。
    3. [リソース プロバイダー] ブレードを開き、Microsoft.BotService リソース プロバイダーを登録します。

    Microsoft.BotService registered as a resource provider

  2. Azure Key Vault では、Azure ロールベースのアクセス制御 (RBAC) または Vault アクセス ポリシーの 2 種類のアクセス許可モデルがサポートされます。 どちらのアクセス許可モデルを使用するか選択できます。 キー コンテナーの [ネットワーク] ブレードのファイアウォールと仮想ネットワークが、すべてのネットワークからのパブリック アクセスを許可するように設定されていることをこの手順で確認してください。 さらに、オペレーターにキー管理操作のアクセス許可が付与されていることを確認してください。

    Screenshot of the two permission models available for your key vault.

    1. キー コンテナーで Azure RBAC アクセス許可モデルを設定するには。

      1. [キー コンテナー] ブレードを 開き、キー コンテナーを選択します。
      2. [Access Control (IAM)] ブレードに移動し、Key Vault Crypto Service Encryption User ロールを Bot Service CMEK Prod に割り当てます。この変更を行うことができるのは、サブスクリプション所有者ロールを持つユーザーだけです。

      Screenshot of key vault configuration showing the crypto service encryption user role has been added.

    2. Key Vault アクセス ポリシー のアクセス許可モデルをキー コンテナーで設定するには。

      1. [キー コンテナー] ブレードを 開き、キー コンテナーを選択します。
      2. Bot Service CMEK Prod アプリケーションをアクセス ポリシーとして追加し、次のアクセス許可を割り当てます。
      • 取得 (キー管理操作から)
      • キーの折り返しを解除 (暗号化操作から)
      • キーの折り返し (暗号化操作から)
      1. [保存] を選択して、行ったすべての変更を保存します。

      Bot Service CMEK Prod added as an access policy

  3. キー コンテナー にファイアウォールのバイパスを許可します。

    1. [キー コンテナー] ブレードを 開き、キー コンテナーを選択します。
    2. [ネットワーク] ブレードを開き、 [ファイアウォールと仮想ネットワーク] タブを選択します。
    3. [アクセスの許可] が [パブリック アクセスを無効にする] に設定されている場合は、[信頼されたMicrosoft サービスがこのファイアウォールをバイパスすることを許可する] が選択されていることを確認してください。
    4. [保存] を選択して、行ったすべての変更を保存します。

    Firewall exception added for Key Vault

カスタマー マネージド キーを有効にする

カスタマー マネージド暗号化キーを使用してボットを暗号化するには、次の手順に従います。

  1. ボットの [Azure Bot リソース] ブレードを開きます。

  2. ボットの [暗号化] ブレードを開き、暗号化の種類として [カスタマー マネージド キー] を選択します。

  3. キーの完全な URI (バージョンを含む) を入力するか、[キー コンテナーとキーの選択] をクリック してキー を検索します。

  4. ブレードの上部にある [保存] をクリックします。

    Bot resource using customer-managed encryption

これらの手順が完了すると、Azure AI Bot Service によって暗号化プロセスが開始されます。完了までには最大 24 時間かかることがあります。 この期間中、ボットは再メイン機能します。

カスタマー マネージド キーをローテーションする

カスタマー マネージド暗号化キーをローテーションするには、新しいキー (または既存のキーの新しいバージョン) に新しい URI を使用するように Azure AI Bot Service リソースを更新する必要があります。

新しいキーを使用した再暗号化は非同期的に行われるため、古いキーが使用可能であることを確認すれば、データの暗号化を解除し続けることができます。それ以外の場合は、ボットが動作を停止する可能性があります。 古いキーは少なくとも 1 週間保持する必要があります。

カスタマー マネージド キーへのアクセス権を取り消す

アクセスを取り消すには、Bot Service CMEK Prod サービス プリンシパルのアクセス ポリシーをキー コンテナーから削除します。

Note

アクセスを取り消すと、ボットに関連付けられているほとんどの機能が中断されます。 カスタマー マネージド キー機能を無効にするには、アクセスを取り消す前に機能をオフにして、ボットが動作し続けられるようにします。

次のステップ

Azure Key Vault の詳細を確認する