カスタマー マネージド キーを使用した Azure SQL Transparent Data Encryption

適用対象:Azure SQL データベースAzure SQL マネージドインスタンスAzure Synapse Analytics(Dedicated SQL プールのみ)

カスタマー マネージド キー (CMK) を使用した Azure SQL Transparent Data Encryption (TDE) を使用すると、保存データの保護に Bring Your Own Key (BYOK) シナリオが可能になり、組織がキーとデータの管理における職務の分離を実施できるようになります。 カスタマー マネージド TDE では、キー ライフサイクル管理 (キーの作成、アップロード、交換、削除)、キーの使用権限、およびキーに対する操作の監査は、お客様の責任であり、お客様がこれらを完全に制御できます。

このシナリオでは、TDE 保護機能と呼ばれるデータベース暗号化キー (DEK) の暗号化に使用されるキーは、顧客が所有し、顧客が管理する Azure Key Vault (AKV) (クラウドベースの外部キー管理システム) に格納されている、カスタマー マネージド非対称キーです。 Key Vault は、FIPS 140-2 Level 2 認定のハードウェア セキュリティ モジュール (HSM) をオプションで使用できる、RSA 暗号化キー向けの、可用性が高くスケーラブルでセキュリティで保護されたストレージです。 格納されているキーに直接アクセスすることはできませんが、キーを使用して暗号化/復号化のサービスを認証されたエンティティに提供します。 キーは、Key Vault で生成するか、インポートするか、オンプレミスの HSM デバイスから Key Vault に転送することができます。

Azure SQL Database と Azure Synapse Analytics の場合、TDE 保護機能はサーバー レベルで設定され、そのサーバーに関連付けられているすべての暗号化されたデータベースによって継承されます。 Azure SQL Managed Instance の場合、TDE 保護機能はインスタンス レベルで設定され、そのインスタンス上のすべての暗号化されたデータベースによって継承されます。 "サーバー" という用語は、別途明記されていない限り、このドキュメントでは、SQL Database や Azure Synapse のサーバーと、SQL Managed Instance のマネージド インスタンスの両方を指します。

Azure SQL Database でデータベース レベルで TDE 保護機能を管理できます。 詳細については、「カスタマー マネージド キーを使用したデータベース レベルでの Transparent Data Encryption (TDE)」をご覧ください。

Note

  • この記事は、Azure SQL Database、Azure SQL Managed Instance、Azure Synapse Analytics (専用 SQL プール (以前の SQL DW)) に適用されます。 Synapse ワークスペース内の専用 SQL プールの Transparent Data Encryption に関するドキュメントについては、Azure Synapse Analytics の暗号化に関する記事を参照してください。
  • Azure SQL のお客様に、2 つのレイヤーで保存データの暗号化を提供するため、プラットフォーム マネージド キーによる (AES-256 暗号化アルゴリズムを使用した) インフラストラクチャ暗号化がロールアウトされています。これにより、既に利用可能なカスタマー マネージド キーによる TDE と共に、保存時の暗号化の追加レイヤーが提供されます。 Azure SQL Database と Azure SQL Managed Instance の場合、インフラストラクチャの暗号化が有効になっていると、master データベースやその他のシステム データベースを含むすべてのデータベースが暗号化されます。 現時点では、お客様はこの機能に対するアクセスを要求する必要があります。 この機能に関心がある場合は、AzureSQLDoubleEncryptionAtRest@service.microsoft.com にお問い合わせください。

Note

Microsoft Entra ID の、旧称は Azure Active Directory(Azure AD)です。

カスタマー マネージド TDE の利点

カスタマー マネージド TDE は、顧客に次の利点をもたらします。

  • TDE 保護機能の使用と管理の完全かつ詳細な制御

  • TDE 保護機能の使用の透過性

  • 組織内でキーとデータの管理における職務の分離を実施することができる

  • Key Vault 管理者は、暗号化されたデータベースにアクセスできないようにキーのアクセス許可を取り消すことができる

  • AKV でのキーの一元管理

  • AKV は Microsoft が暗号化キーを表示したり抽出したりできないように設計されているため、エンド カスタマーからの信頼が高まる

重要

サービス マネージド TDE を使用していて、カスタマー マネージド TDE の使用を開始する場合は、切り替え処理中はデータが暗号化されたままとなり、データベース ファイルのダウンタイムが生じたり再暗号化が行われたりすることはありません。 サービス マネージド キーからカスタマー マネージド キーへの切り替えに必要なのは、高速のオンライン操作である DEK の再暗号化だけです。

カスタマー マネージド TDE のしくみ

Setup and functioning of the customer-managed TDE

Azure の論理サーバーが DEK の暗号化に AKV に格納されている TDE 保護機能を使用できるようにするには、キー コンテナー管理者が一意の Microsoft Entra ID を使用して、サーバーに次のアクセス権を付与する必要があります。

  • get - Key Vault 内のキーの公開部分とプロパティを取得します

  • wrapKey - DEK を保護 (暗号化) できるようにします

  • unwrapKey - DEK を保護解除 (復号化) できるようにします

キー コンテナー管理者は、後で監査できるように、キー コンテナーの監査イベントのログ記録を有効にすることもできます。

AKV の TDE 保護機能を使用するようにサーバーを構成すると、そのサーバーから各 TDE 対応データベースの DEK が暗号化のためキー コンテナーに送信されます。 キー コンテナーから、暗号化された DEK が返され、その後、ユーザー データベースに格納されます。

必要に応じて、保護された DEK が復号化のためにサーバーからキー コンテナーに送信されます。

ログ記録が有効になっている場合、監査者は Azure Monitor を使用してキー コンテナーの AuditEvent ログを確認できます。

Note

キー コンテナーに対してアクセス許可の変更が有効になるまで、約 10 分かかる場合があります。 これには、AKV の TDE プロテクターへのアクセス許可の取り消しが含まれます。この概算時間内のユーザーには、まだアクセス許可がある可能性があります。

カスタマー マネージド TDE を構成するための要件

AKV を構成するための要件

  • キー (またはキー コンテナー) の誤削除によってデータが失われないよう保護するために、キー コンテナーで論理的な削除機能と消去保護機能を有効にする必要があります。

  • Microsoft Entra ID を使用して、サーバーまたはマネージド インスタンスにキー コンテナーへのアクセス権 (getwrapKeyunwrapKey) を付与します。 サーバー ID には、システム割り当てマネージド ID またはサーバーに割り当てられたユーザー割り当てマネージド ID を指定できます。 Azure portal を使用する場合、サーバーの作成時に Microsoft Entra ID が自動的に作成されます。 PowerShell または Azure CLI を使用する場合は、Microsoft Entra ID を明示的に作成し、検証する必要があります。 PowerShell を使用するときの詳細な手順については、BYOK 対応 TDE の構成および SQL Managed Instance 用 BYOK 対応 TDE の構成に関する記事を参照してください。

    • Key vault のアクセス許可モデル (アクセスポリシーまたは Azure RBAC) に応じて、key vault にアクセスポリシーを作成するか、ロール {1}Key Vault Crypto Service 暗号化ユーザー{2}を使用して新しい Azure RBAC ロールの割り当てを作成することによって、key vault のアクセス権を付与できます
  • AKV でファイアウォールを使用しているときは、[信頼された Microsoft サービスがファイアウォールをバイパスすることを許可する] オプションを有効にする必要があります。 詳細については、「Azure Key Vault のファイアウォールと仮想ネットワークを構成する」を参照してください。

AKV の論理的な削除と消去保護を有効にする

重要

新しいまたは既存のサーバーまたはマネージド インスタンスで、カスタマー マネージド TDE を構成する場合、キー コンテナーで論理的な削除消去保護の両方を有効にする必要があります。

論理的な削除消去保護は、削除されたコンテナーと削除されたキー コンテナー オブジェクトの回復を可能にする Azure Key Vault の重要な機能であり、ユーザーがキーまたはキー コンテナーを誤ってまたは悪意を持って削除するリスクを軽減します。

  • お客様が復旧または消去しない限り、ソフト削除されたリソースは 90 日間保持されます。 復旧消去アクションには、キー コンテナーのアクセス ポリシーに関連付けられた独自のアクセス許可があります。 論理的な削除機能は、新しいキー コンテナーに対し既定でオンにされ、Azure portal、PowerShell、または Azure CLI を使用して有効にすることもできます。

  • 消去保護は、 またはPowerShellを使用Azure CLI有効にできます。 消去保護を有効にすると、保持期間が経過するまで、削除された状態のコンテナーまたはオブジェクトを消去できません。 既定の保有期間は 90 日ですが、7 日から 90 日の間に構成Azure portal。

  • Azure SQL では、サーバーまたはマネージド インスタンスの TDE 保護機能として使用される暗号化キーを格納するキー コンテナーで、論理的な削除と消去保護を有効にすることを必要とします。 これにより、データベースがアクセスできない状態になる可能性がある、誤ったまたは悪意によるキー コンテナーまたはキーの削除のシナリオを防ぐために役立 ちます。

  • 既存のサーバーまたはサーバーの作成時に TDE 保護機能を構成すると、Azure SQL によって、使用されているキー コンテナーで論理的な削除と消去保護が有効にされていることが検証されます。 キー コンテナーで論理的な削除と消去保護が有効にされていない場合、TDE 保護機能のセットアップがエラーで失敗します。 この場合、最初にキー コンテナーで論理的な削除と消去保護を有効にしてから、TDE 保護機能のセットアップを実行する必要があります。

TDE 保護機能を構成するための要件

  • TDE 保護機能には、非対称、RSA、または RSA HSM の各キーのみを指定できます。 サポートされているキーの長さは、2048 ビットおよび 3072 ビットです。

  • キーがアクティブ化された日時 (設定する場合) は、過去の日付と時刻にする必要があります。 有効期限の日時 (設定する場合) は、将来の日付と時刻にする必要があります。

  • キーは、"有効" 状態になっている必要があります。

  • キー コンテナーに既存のキーをインポートする場合は、サポートされているファイル形式 (.pfx.byok.backup) で提供するようにしてください。

Note

Azure SQL では、マネージド HSM に格納されている RSA キーを TDE プロテクターとして使用できるようになりました。 Azure Key Vault Managed HSM は、フル マネージド、高可用性、シングル テナント、標準準拠を特徴とするクラウド サービスで、FIPS 140-2 レベル 3 適合の HSM を使用してクラウド アプリケーションの暗号化キーを保護することができます。 マネージド HSM の詳細を参照してください。

Note

v2.8.0 より前の Thales CipherTrust Manager バージョンの問題により、Azure Key Vault に新しくインポートされたキーは、カスタマー マネージド TDE シナリオの Azure SQL Database または Azure SQL Managed Instance で使用できなくなります。 この問題の詳細については、こちらをご覧ください。 このような場合、キー コンテナーにキーをインポートしてから 24 時間待って、その後、サーバーまたはマネージド インスタンスの TDE 保護機能としてその使用を開始してください。 この問題は Thales CipherTrust Manager v2.8.0 で解決されています。

カスタマー マネージド TDE を構成する際の推奨事項

AKV を構成する際の推奨事項

  • サーバーがキー コンテナー内の TDE 保護機能にアクセスする際の高可用性を確保するために、1 つのサブスクリプションで 1 つのキー コンテナーに最大 500 の General Purpose データベースまたは 200 の Business Critical データベースを関連付けます。 これらの数字は経験に基づいており、キー コンテナー サービスの制限に記載されています。 ここでの目的は、サーバーのフェールオーバー後の問題を回避することです。これは、フェールオーバーによってそのサーバー内のデータベースと同じ数のキー操作がコンテナーに対してトリガーされるためです。

  • キー コンテナーにリソース ロックを設定して、この重要なリソースを削除できるユーザーを制御し、誤削除や許可されていない削除を防ぎます。 リソース ロックの詳細については、こちらをご覧ください。

  • すべての暗号化キーの監査およびレポートを有効にします。キー コンテナーで提供されるログは、他のセキュリティ情報およびイベント管理ツールに簡単に挿入できます。 Operations Management Suite Log Analytics は、既に統合されているサービスの一例です。

  • 暗号化されたデータベースの高可用性を確保するため、各サーバーを異なるリージョンに存在する 2 つのキー コンテナーとリンクします。 キー コンテナーの 1 つからキーを TDE 保護機能としてマークします。 1 つ目のリージョン内のキー コンテナーに影響する障害が発生した場合、システムは同じキー マテリアルを含む 2 つ目のリージョン内のキー コンテナーに自動的に切り替わります。

Note

カスタマー マネージド TDE の構成の柔軟性が高くなるように、あるリージョンの Azure SQL Database と Azure SQL Managed Instance を、他のリージョンのキー コンテナーにリンクできるようになりました。 サーバーとキーコンテナーが同じリージョンに併置されている必要はありません。

TDE 保護機能を構成する際の推奨事項

  • TDE 保護機能のコピーを安全な場所に保管するか、エスクロー サービスにエスクローします。

  • キーがキー コンテナー内に生成される場合は、初めて AKV でキーを使用する前に、キーのバックアップを作成します。 バックアップは Azure Key Vault にのみ復元できます。 Backup-AzKeyVaultKey コマンドの詳細については、こちらをご覧ください。

  • キー (キー属性、タグ、ACL など) に変更を加えるたびに新しいバックアップを作成します。

  • データベースの古いバックアップを復元できるように、キーを交換するときは、キー コンテナーにキーの以前のバージョンを保持します。 データベースの TDE 保護機能が変更されても、データベースの古いバックアップが、最新の TDE 保護機能を使用するように更新されることはありません。 復元時には、各バックアップに作成時に暗号化された TDE 保護機能が必要です。 キーの交換を行うには、PowerShell を使用した Transparent Data Encryption 保護機能のローテーションに関する記事の手順に従います。

  • サービス マネージド キーに切り替えた後でも、以前に使用したすべてのキーを AKV で保持します。 これにより、AKV に格納された TDE 保護機能を使用してデータベースのバックアップを復元できます。 Azure Key Vault で作成された TDE 保護機能は、残りの保存されているすべてのバックアップがサービス マネージド キーを使用して作成されるまで保持される必要があります。 Backup-AzKeyVaultKey を使用して、これらのキーの回復可能なバックアップ コピーを作成します。

  • セキュリティ インシデントの発生時に、データ損失のリスクを伴わずに、侵害された可能性のあるキーを削除するには、侵害された可能性のあるキーの削除の手順に従ってください。

TDE 保護機能のローテーション

サーバーの TDE 保護機能のローテーションは、サーバー上のデータベースを保護する新しい非対称キーに切り替えることを示します。 キーのローテーションはオンライン操作であり、数秒で完了します。 この操作では、データベース全体ではなく、データベース暗号化キーの暗号化の解除と再暗号化のみが行われます。

TDE 保護機能のローテーション は、手動、または、自動回転機能を使用して行うことができます。

サーバーの TDE 保護機能を構成するときに、TDE 保護機能の自動ローテーションを有効にすることができます。 既定では、自動ローテーションは無効になっています。 有効にすると、サーバーで、TDE 保護機能として使用されているキーの新しいバージョンがないか、キー コンテナーが継続的にチェックされます。 新しいバージョンのキーが検出された場合、60 分以内にサーバー上の TDE 保護機能が自動的に最新のキー バージョンにローテーションされます。

Azure Key Vault で自動キーローテーションと共に使用すると、この機能により、Azure SQL Database と Azure SQL Managed Instance の TDE 保護機能に対してエンドツーエンドのゼロタッチローテーションが可能になります。

Note

キーの手動または自動ローテーションを使用して CMK で TDE を設定すると、常にサポートされている最新バージョンのキーが使用されます。 このセットアップでは、以前のバージョンまたは下位バージョンのキーを使用できません。 常に最新のキー バージョンを使用すると、侵害される可能性のある以前のキー バージョンを禁止する Azure SQL セキュリティ ポリシーに準拠します。 以前のバージョンのキーは、データベースのバックアップまたは復元の目的で必要になる場合があります。特に、古いキー バージョンを保持する必要がある長期保有バックアップの場合です。 geo レプリケーションのセットアップでは、ソース サーバーに必要なすべてのキーがターゲット サーバーに存在する必要があります。

TDE 保護機能の自動ローテーションを構成するときの geo レプリケーションに関する考慮事項

geo レプリケーションの確立中またはその実行中に問題が発生しないようにするには、プライマリまたはセカンダリ サーバーで TDE 保護機能の自動ローテーションが有効になっている場合、geo レプリケーションを構成するときに次の規則に従うことが重要です。

  • プライマリ サーバーとセカンダリ サーバーの両方に、プライマリ サーバーのキー コンテナー (プライマリ サーバーの TDE 保護機能キーを保持するキー コンテナー) に対する GetwrapKeyunwrapKey のアクセス許可が必要です。

  • 自動キーローテーションが有効になっているサーバーの場合、geo レプリケーションを開始する前に、プライマリ サーバーで TDE 保護機能として使用されている暗号化キーをセカンダリ サーバーに追加します。 セカンダリ サーバーは、プライマリ サーバーで使用されているのと同じキー コンテナー内のキーにアクセスする必要があります (同じキー マテリアルを持つ別のキーにはアクセスできません)。 または、geo レプリケーションを開始する前に、セカンダリ サーバーのマネージド ID (ユーザー割り当てまたはシステム割り当て) にプライマリ サーバーのキー コンテナーに対する必要なアクセス許可があることを確認します。その後、システムによりセカンダリ サーバーへのキーの追加が試みられます。

  • 既存の geo レプリケーションのセットアップでは、プライマリ サーバーで自動キーローテーションを有効にする前に、プライマリ サーバーで TDE 保護機能として使用されている暗号化キーをセカンダリ サーバーに追加します。 セカンダリ サーバーは、プライマリ サーバーで使用されているのと同じキー コンテナー内のキーにアクセスする必要があります (同じキー マテリアルを持つ別のキーにはアクセスできません)。 または、自動化キーを有効にする前に、セカンダリ サーバーのマネージド ID (ユーザー割り当てまたはシステム割り当て) にプライマリ サーバーのキー コンテナーに対する必要なアクセス許可があることを確認します。その後、システムによりセカンダリ サーバーへのキーの追加が試みられます。

  • TDE にカスタマー マネージド キー (CMK) を使用する geo レプリケーション シナリオがサポートされています。 Azure portal で TDE を構成する場合は、自動キー ローテーションを使用する TDE をすべてのサーバーで構成する必要があります。 TDE を使用する geo レプリケーション構成用の自動キー ローテーションの設定について詳しくは、「geo レプリケーション構成のキーの自動ローテーション」をご覧ください。

アクセスできない TDE 保護機能

TDE がカスタマー マネージド キーを使用するように構成されている場合、データベースをオンラインのままにするには、TDE 保護機能への継続的アクセスが必要です。 サーバーが AKV 内のカスタマー マネージド TDE 保護機能にアクセスできなくなると、データベースは 10 分以内に対応するエラー メッセージですべての接続を拒否するようになり、状態が "アクセス不可" に変わります。 アクセス不可状態のデータベースで許可される唯一のアクションは、削除だけです。

Note

断続的なネットワークの停止が原因でデータベースにアクセスできない場合、必要な操作はなく、データベースは自動的にオンラインに戻ります。

キーへのアクセスが復元された後、データベースをオンラインに戻すには、追加の時間と手順が必要です。これは、キーにアクセスできなくなってからの経過時間とデータベース内のデータのサイズによって異なる場合があります。

注意

  • キーのアクセスが 30 分以内に復元された場合、データベースは次の 1 時間以内に自動回復します。
  • キーのアクセスが 30 分以上経ってから復元された場合、データベースの自動回復は実行できません。 データベースを復旧するには Azure portal で追加の手順を実行する必要があり、データベースのサイズによってはかなりの時間がかかることがあります。
  • データベースがオンラインに戻ると、以前に構成したサーバーレベルの設定 (フェールオーバー グループ構成、タグなど) と、データベースレベルの設定 (エラスティック プールの構成、読み取りスケール、自動一時停止、ポイントインタイム リストアの履歴、長期保有ポリシーなど) は失われます。 そのため、暗号化キーのアクセスの損失を 30 分以内に特定する通知システムをお客様が実装することをお勧めします。 30 分の期間を過ぎた後は、復旧されたデータベースのサーバー レベルの設定とデータベース レベルの設定をすべて検証することをお勧めします。

以下は、アクセスできないデータベースをオンラインに戻すためにポータルで必要な追加手順です。

TDE BYOK Inaccessible Database

TDE 保護機能アクセスの誤失効

キー コンテナーに対する十分なアクセス権を持つユーザーが、次のことを行うことで、キーへのサーバー アクセスを誤って無効にしてしまうことがあります。

  • サーバーからキー コンテナーの getwrapKeyunwrapKey のアクセス許可を取り消す

  • キーを削除する

  • キー コンテナーを削除する

  • キー コンテナーのファイアウォール規則を変更する

  • Microsoft Entra ID 内のサーバーのマネージド ID を削除する

データベースにアクセスできなくなる一般的な原因については、こちらを参照してください。

SQL Managed Instance と Key Vault の間のブロックされている接続

SQL Managed Instance では、Azure Key Vault で TDE の保護機能にアクセスしようとしたときにネットワーク エラーが発生し、データベースの状態が "アクセス不可" に変更されない可能性がありますが、その後、インスタンスは使用できなくなります。 これは主に、キー コンテナー リソースが存在するが、マネージド インスタンスからそのエンドポイントに到達できない場合に発生します。 キー コンテナー エンドポイントに到達できるが、接続が拒否されたり、アクセス許可がないなどのシナリオではすべて、データベースの状態が "アクセス不可" に変更されます。

Key Vault へのネットワーク接続がない最も一般的な原因は次のとおりです。

  • Key Vault はプライベート エンドポイントを介して公開され、AKV サービスのプライベート IP アドレスは、マネージド インスタンス サブネットに関連付けられているネットワーク セキュリティ グループ (NSG) のアウトバウンド規則では許可されません。
  • キー コンテナーの FQDN が解決されない場合や無効な IP アドレスに解決された場合など、DNS 解決が正しくありません。

SQL Managed Instance から TDE 保護機能をホストしている Key Vault への接続をテストします。

  • エンドポイントは、<vault_name>.vault.azure.net (https:// なし) など、コンテナーの FQDN です。
  • テストするポートは 443 です。
  • RemoteAddress の結果は、正しい IP アドレスとして存在する必要があります
  • TCP テストの結果は TcpTestSucceeded: True である必要があります。

テストで TcpTestSucceeded: False が返される場合は、次のネットワーク構成を確認してください。

  • 解決された IP アドレスを調べて、それが有効であることを確認します。 値がない場合は、DNS 解決に問題があることを意味します。
    • 特に、解決されたアドレスがキー コンテナーのプライベート エンドポイントに属している場合、マネージド インスタンスのネットワーク セキュリティ グループに、ポート 443 で解決された IP アドレスを含むアウトバウンド規則があることを確認します。
    • ルート テーブル、仮想アプライアンスの存在、その構成などの他のネットワーク構成を確認します。

カスタマー マネージド TDE の監視

データベースの状態を監視したり、TDE 保護機能にアクセスできなくなった場合のアラートを有効にしたりするには、Azure の次の機能を構成します。

  • Azure Resource Health。 TDE 保護機能へのアクセスが失われたアクセス不可能なデータベースには、データベースへの最初の接続が拒否された後、"使用できません" と表示されます。
  • アクティビティ ログ。ユーザーが管理するキー コンテナーの TDE 保護機能へのアクセスに失敗すると、アクティビティ ログにエントリが追加されます。 これらのイベントに対してアラートを作成すると、できるだけ早くアクセスを再開できるようになります。
  • アクション グループを定義して、設定 (たとえば、メール、SMS、プッシュ、音声、ロジック アプリ、Webhook、ITSM、Automation Runbook) に基づいて通知やアラートを送信できます。

カスタマー マネージド TDE を使用したデータベースのバックアップと復元

Key Vault のキーを使用して TDE でデータベースを暗号化すると、新しく生成されるバックアップも同じ TDE 保護機能で暗号化されます。 TDE 保護機能が変更されても、データベースの古いバックアップが、最新の TDE 保護機能を使用するように更新されることはありません

Key Vault の TDE 保護機能で暗号化されたバックアップを復元するには、キー マテリアルがターゲット サーバーで使用できることを確認します。 そのため、データベースのバックアップを復元できるように、TDE 保護機能の古いバージョンをすべてキー コンテナーに保持しておくことをお勧めします。

重要

どのような時でも 1 台のサーバーに対して複数の TDE 保護機能を設定することはできません。 これは、Azure Portal ウィンドウで“キーをデフォルトの TDE 保護機能にする“とマークされたキーです。 ただし、TDE 保護機能としてマークしなくても、複数の追加キーをサーバーにリンクすることができます。 これらのキーは DEK の保護には使用されませんが、バックアップ ファイルが対応する拇印を持つキーで暗号化されている場合は、バックアップからの復元中に使用できます。

ターゲット サーバーでバックアップの復元に必要なキーが使用できなくなった場合は、復元の試行時に次のエラー メッセージが返されます。"ターゲット サーバー <Servername> は、<Timestamp #1> から <Timestamp #2> の間に作成されたいずれの AKV URI にもアクセスできません。 すべての AKV URI を復元してから操作をやり直してください\)

これを軽減するには、ターゲット サーバーに対して Get-AzSqlServerKeyVaultKey コマンドレットを実行するか、ターゲット マネージド インスタンスに対して Get-AzSqlInstanceKeyVaultKey を実行して、使用可能なキーの一覧を返し、不足しているキーを識別します。 すべてのバックアップを復元できるようにするには、復元のターゲット サーバーが必要なすべてのキーにアクセスできることを確認します。 これらのキーを TDE 保護機能としてマークする必要はありません。

SQL Database のバックアップ回復の詳細については、SQL Database のデータベース回復に関する記事を参照してください。 Azure Synapse Analytics の専用 SQL プールのバックアップ復旧の詳細については、専用 SQL プールの復旧に関するページを参照してください。 SQL Managed Instance を使用した SQL Server のネイティブ バックアップと復元については、SQL Managed Instance にデータベースを復元する方法についてのクイックスタートに関するページを参照してください。

ログ ファイルに関するその他の考慮事項: 交換され、データベースが新しい TDE の保護機能を使用している場合でも、バックアップ ログ ファイルは元の TDE の保護機能で暗号化されたままになっています。 復元時に、データベースを復元するには両方のキーが必要になります。 サービス マネージド TDE を使用するようにデータベースが変更された場合でも、Azure Key Vault に格納されている TDE 保護機能がログ ファイルで使用されている場合は、復元時にこのキーが必要になります。

カスタマー マネージド TDE による高可用性

サーバーに geo 冗長が構成されていない場合でも、同じキー マテリアルで、2 つの異なるリージョンの 2 つの異なるキー コンテナーを使用するようにサーバーを構成することを強くお勧めします。 他のリージョンのセカンダリ キー コンテナー内のキーは、TDE 保護機能としてマークすることはできず、許可もされません。 プライマリ キー コンテナーに影響する障害が発生したときに初めて、システムにより、セカンダリ キー コンテナー内に同じ拇印を持つ他のリンクされたキーに自動的に切り替えられます (存在する場合)。 アクセス権の取り消しにより、あるいはキーまたはキー コンテナーが削除されたことにより TDE 保護機能にアクセスできない場合、切り替えは行われないことに注意してください。顧客がサーバーからキーへのアクセスを意図的に制限することを望む場合があるためです。 異なるリージョンの 2 つのキー コンテナーに同じキー マテリアルを提供するには、キー コンテナーの外側にキーを作成し、それらを両方のキー コンテナーにインポートします。

または、あるリージョンのプライマリ キー コンテナーを使用してキーを生成し、別の Azure リージョンのキー コンテナーにキーを複製する方法もあります。 Backup-AzKeyVaultKey コマンドレットを使用して、プライマリ キー コンテナーから暗号化された形式のキーを取得し、Restore-AzKeyVaultKey コマンドレットを使用して、キーを複製する 2 つ目のリージョンのキー コンテナーを指定します。 または、Azure portal を使用して、キーのバックアップと復元を行います。 キーのバックアップ/復元操作は、同じ Azure サブスクリプションおよび Azure の地域内のキー コンテナー間でのみ許可されます。

Single-Server HA

Geo-DR とカスタマー マネージド TDE

アクティブ geo レプリケーションフェールオーバー グループの両方のシナリオで、関連するプライマリ サーバーとセカンダリ サーバーは、同じキー コンテナー (任意のリージョン) にも、個別のキー コンテナーにもリンクさせることができます。 個別のキー コンテナーがプライマリ サーバーとセカンダリ サーバーにリンクされている場合、顧客は、キー コンテナー間でキー マテリアルを一貫性のあるものに保つ責任があります。これにより、リージョンの停止によってプライマリにアクセスできなくなり、フェールオーバーがトリガーされた場合に、同期されている geo セカンダリが、同じキーを使用して、リンクされているキー コンテナーから引き継ぐことができます。 最大 4 つのセカンダリを構成でき、チェーン (セカンダリのセカンダリ) はサポートされていません。

不完全なキー マテリアルが原因で geo レプリケーションの確立中または実行中に問題が発生するのを回避するには、カスタマー マネージド TDE を構成するときに、次の規則に従うことが重要です (プライマリ サーバーとセカンダリ サーバーに個別のキー コンテナーが使用されている場合)。

  • 関連するすべてのキー コンテナーに、同じプロパティと、それぞれのサーバーに対する同じアクセス権がある必要があります。

  • 関連するすべてのキー コンテナーに、同じキー マテリアルが含まれている必要があります。 これは現在の TDE 保護機能だけでなく、バックアップ ファイルで使用されている可能性がある以前のすべての TDE 保護機能にも適用されます。

  • TDE 保護機能の初期セットアップとローテーションは、どちらも最初にセカンダリで実行してから、プライマリで実行する必要があります。

Failover groups and geo-dr

フェールオーバーをテストするには、アクティブ geo レプリケーションの概要の手順に従います。 フェールオーバーのテストを定期的に行い、SQL Database で両方のキー コンテナーへのアクセス許可が保持されていることを検証する必要があります。

あるリージョンの Azure SQL Database サーバーと SQL Managed Instance を、他のリージョンのキー コンテナーにリンクできるようになりました。 サーバーとキー コンテナーが同じリージョンに併置されている必要はありません。 これにより、わかりやすくするために、プライマリサーバーとセカンダリサーバーを同じ key vault (任意のリージョン) に接続できます。 これにより、両方のサーバーで別個のキー コンテナーが使用されている場合にキー マテリアルが同期しないという状況を回避できます。 Azure Key Vault には、サービスまたはリージョンで障害が発生した場合でもキーとキーコンテナーを確実に使用できるようにするために、複数の層の冗長性があります。 Azure Key Vault の可用性と冗長性

カスタマー マネージド TDE の Azure Policy

Azure SQL Database サーバーや Azure SQL Managed Instance の作成または更新中、Azure Policy を使用して、カスタマー マネージド TDE を適用することができます。 このポリシーが適用されていると、Azure 内で論理サーバーを、またはマネージド インスタンスを作成または更新しようとしても、カスタマー マネージド キーを使用して構成されていない場合は失敗します。 Azure Policy は、Azure サブスクリプション全体に適用することも、リソース グループ内だけに適用することも可能です。

Azure Policy の詳細については、「Azure Policy とは」および「Azure Policy の定義の構造」を参照してください。

Azure Policy では、カスタマー マネージド TDE に対して、次の 2 つの組み込みポリシーがサポートされています。

  • SQL サーバーでは保存データを暗号化するためにカスタマー マネージド キーを使用する必要がある
  • マネージド インスタンスでは保存データを暗号化するためにカスタマー マネージド キーを使用する必要がある

カスタマー マネージド TDE を管理するには、Azure portal にアクセスし、Policy サービスを検索します。 [定義] で、カスタマー マネージド キーを検索します。

これらのポリシーには、次の 3 つの効果があります。

  • 監査 - 既定の設定。Azure Policy アクティビティ ログ内で監査レポートをキャプチャするだけです
  • 拒否 - カスタマー マネージド キーを構成せず、論理サーバーまたはマネージド インスタンスが作成/更新されないようにします
  • 無効 - ポリシーを無効にします。カスタマー マネージド TDE を有効にせず、ユーザーによる論理サーバーまたはマネージド インスタンスの作成/更新は制限されません

カスタマー マネージド TDE の Azure Policy が [拒否] に設定されている場合、Azure SQL 論理サーバーまたはマネージド インスタンスの作成は失敗します。 このエラーの詳細は、リソース グループのアクティビティ ログに記録されます。

重要

AuditIfNotExist 効果を含むカスタマー マネージド TDE に対する以前のバージョンの組み込みポリシーは非推奨になりました。 非推奨のポリシーを使用している既存のポリシー割り当てには影響がなく、これまでと同様に動作し続けます。

次のステップ

また、カスタマー マネージド TDE を使用した一般的な操作については、次の PowerShell サンプル スクリプトでも確認できます。

また、Microsoft Defender for SQL を有効にし、データベースの潜在的な脆弱性を検出し、軽減する機能や、データベースに対する脅威を示す異常な行動を検出する機能でデータベースとそのデータを保護します。