バックアップの暗号化

適用対象:SQL Server

この記事では、SQL Server バックアップの暗号化オプションについて概説します。 バックアップ時の暗号化の使用、利点、および推奨される操作の詳細が含まれています。

概要

SQL Server 2014 (12.x) 以降では、バックアップの作成時に SQL Server がデータを暗号化する機能があります。 バックアップの作成時に暗号化アルゴリズムと暗号化機能 (証明書または非対称キー) を指定することにより、暗号化されたバックアップ ファイルを作成することができます。 あらゆるバックアップ先ストレージ、つまり内部設置型のストレージも Azure Storage もサポートされます。 さらに、SQL Server 2014 (12.x) で導入された新機能である Microsoft Azure への SQL Server マネージド バックアップの運用にあたり、暗号化オプションを構成できます。

バックアップ時に暗号化を行うには、暗号化アルゴリズムを指定し、暗号化キーを保護するための暗号化機能を指定する必要があります。 サポートされている暗号化オプションは次のとおりです。

  • 暗号化アルゴリズム: サポートされている暗号化アルゴリズムは、AES 128、AES 192、AES 256、および Triple DES です。

  • 暗号化機能: 証明書または非対称キー。

注意事項

証明書または非対称キーをバックアップすることが非常に重要であり、これらを使用して暗号化したバックアップ ファイルとは別の場所に保存することをお勧めします。 証明書または非対称キーがないと、バックアップを復元できず、バックアップ ファイルのレンダリングが使用できなくなります。 包含システム データベースに格納されている証明書もバックアップする必要があります。

暗号化されたバックアップの復元: SQL Server の復元では、復元時に暗号化パラメーターを指定する必要はありません。 ただし、バックアップ ファイルの暗号化に使用された証明書または非対称キーを復元先のインスタンスで使用できる必要があります。 復元を実行するユーザー アカウントには、証明書またはキーに対する VIEW DEFINITION 権限が必要です。 暗号化されたバックアップを別のインスタンスに復元する場合は、そのインスタンスで証明書を使用できるようにする必要があります。
暗号化されたデータベースを新しい場所に復元する手順は次のようになります。

  1. 以前のデータベースで BACKUP CERTIFICATE (Transact-SQL)
  2. 新しい場所の master データベースで CREATE MASTER KEY (Transact-SQL)
  3. 新しいサーバー上の場所にインポートされた古いデータベースのバックアップ証明書から CREATE CERTIFICATE (Transact-SQL)
  4. データベースを新しい場所に復元する (SQL Server)

TDE で暗号化されたデータベースからバックアップを復元する場合、復元先のインスタンスで TDE の証明書を使用できる必要があります。 詳細については、「別の SQL Server への TDE で保護されたデータベースの移動」を参照してください。

メリット

  1. データベースのバックアップを暗号化することは、データの保護に役立ちます。SQL Server では、バックアップの作成時にバックアップ データを暗号化するためのオプションが提供されます。

  2. 暗号化は、TDE を使用して暗号化されたデータベースにも使用できます。

  3. Microsoft Azure への SQL Server マネージド バックアップによって実行されるバックアップでは、暗号化がサポートされているため、オフサイト バックアップのセキュリティを強化できます。

  4. この機能では、AES 256 ビットまでの複数の暗号化アルゴリズムがサポートされます。 このため、要件に合うアルゴリズムを選択できます。

  5. 暗号化キーは拡張キー管理 (EKM) プロバイダーと統合できます。

前提条件

バックアップを暗号化するための前提条件は次のとおりです。

  1. master データベースのデータベース マスター キーの作成: データベース マスター キー (DMK) は、証明書の秘密キーやデータベース内に存在する非対称キーを保護するために使用される対称キーです。 詳細については、「SQL Server とデータベースの暗号化キー (データベース エンジン)」を参照してください。

  2. バックアップ暗号化に使用する証明書または非対称キーを作成します。 証明書の作成の詳細については、「CREATE CERTIFICATE (Transact-SQL)」を参照してください。 証明書の作成の詳細については、「CREATE ASYMMETRIC KEY (Transact-SQL)」を参照してください。

    重要

    サポートされるのは、拡張キー管理 (EKM) に存在する非対称キーのみです。

制限事項

暗号化オプションに適用される制限事項は次のとおりです。

  • バックアップ データの暗号化に非対称キーを使用する場合は、EKM プロバイダーに存在する非対称キーのみがサポートされます。

  • SQL Server Express および SQL Server Web では、バックアップ時の暗号化がサポートされません。 ただし、暗号化されたバックアップから SQL Server Express インスタンスまたは SQL Server Web インスタンスへの復旧は、サポートされます。

  • 以前のバージョンの SQL Server では、暗号化されたバックアップを読み取ることができません。

  • [既存のバックアップ セットに追加する] オプションは、暗号化されたバックアップに対してはサポートされません。

アクセス許可

暗号化されたデータベースでバックアップ操作を行うアカウントには、特定の権限が必要です。

  • バックアップするデータベースの db_backupoperator データベース レベル ロール。 これは、暗号化に関係なく必要です。

  • VIEW DEFINITION データベース内の証明書に対する master 権限。

    次の例では、証明書に対する適切な権限を付与します。

    USE [master]
    GO
    GRANT VIEW DEFINITION ON CERTIFICATE::[<SERVER_CERT>] TO [<db_account>]
    GO
    

Note

TDE で保護されたデータベースをバックアップまたは復元する場合、TDE 証明書へのアクセスは必要ありません。

バックアップ暗号化方法

以下のセクションでは、バックアップ時にデータを暗号化する手順の概要を説明します。 Transact-SQL を使用して既存のバックアップを暗号化するためのさまざまな手順を示した完全なチュートリアルについては、「 暗号化されたバックアップの作成」を参照してください。

SQL Server Management Studio を使用する

次のいずれかのダイアログ ボックスを使用して、データベース バックアップの作成時にバックアップを暗号化することができます。

  1. データベースのバックアップ (バックアップ オプション)バックアップ オプション ページで、暗号化 を選択し、暗号化に使用する暗号化アルゴリズムと証明書または非対称キーを指定します。

  2. メンテナンス プラン ウィザードの使用 : [データベースのバックアップ () タスクの定義] ページの [オプション] タブでバックアップ タスクを選択する場合は、 [バックアップの暗号化]を選択し、暗号化に使用する暗号化アルゴリズムと証明書またはキーを指定することができます。

Transact-SQL の使用

バックアップ ファイルを暗号化するためのサンプル Transact-SQL ステートメントを次に示します。

BACKUP DATABASE [MYTestDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'
WITH
  COMPRESSION,
  ENCRYPTION
   (
   ALGORITHM = AES_256,
   SERVER CERTIFICATE = BackupEncryptCert
   ),
  STATS = 10
GO

Transact-SQL ステートメントの完全な構文については、「BACKUP (Transact-SQL)」を参照してください。

PowerShell の使用

この例では、暗号化オプションを作成し、それを Backup-SqlDatabase コマンドレットのパラメーター値として使用して暗号化されたバックアップを作成します。

$encryptionOption = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorType ServerCertificate -EncryptorName "BackupCert"

Backup-SqlDatabase -ServerInstance . -Database "<myDatabase>" -BackupFile "<myDatabase>.bak" -CompressionOption On -EncryptionOption $encryptionOption

インスタンスがインストールされているローカル コンピューター以外の場所に暗号化証明書とキーのバックアップを作成します。 ディザスター リカバリー シナリオに対応するには、証明書またはキーのバックアップをオフサイトに保管することを検討します。 バックアップの暗号化に使用された証明書がないと、暗号化されたバックアップを復元することはできません。

暗号化されたバックアップを復元するには、復元先のインスタンスで、バックアップの作成時に使用された元の証明書および対応するサムプリントを使用できるようにしておく必要があります。 このため証明書には、有効期限切れによる更新またはその他の変更を行わないでください。 更新すると証明書が更新され拇印の変更が発生するため、バックアップ ファイルに対して証明書が無効になることがあります。 復元を実行するアカウントには、バックアップ時に暗号化に使用される証明書または非対称キーに対する VIEW DEFINITION 権限が必要です。

可用性グループ データベースのバックアップは、通常は優先されるバックアップ レプリカで実施します。 バックアップを実施したのとは異なるレプリカでバックアップを復元する場合は、バックアップに使用した元の証明書が、復元先のレプリカで利用できることを確認してください。

データベースが TDE 対応の場合は、データベースの暗号化とバックアップに別々の証明書または非対象キーを選択することにより、セキュリティを強化します。