Tip
Microsoft Fabric Data Warehouse は、将来のアーキテクチャ、組み込みの AI、および新機能を備えた、Data Lake 基盤上のエンタープライズ 規模のリレーショナル ウェアハウスです。 データ ウェアハウスを初めて使用する場合は、Fabric Data Warehouseから始めます。 既存の dedicated SQL プール ワークロードは、Fabric にアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。
- Fabric無料試用版を開始します。
- Fabric Data Warehouseの移行アシスタント。
適用対象: Azure Synapse Analytics 専用 SQL プール (旧称 SQL DW)
Transparent Data Encryption (TDE)は、保存時のデータベースファイル、トランザクション ログ ファイル、バックアップを暗号化することで、専用 SQL プールを悪意のあるオフライン アクティビティから保護します。 暗号化と復号はリアルタイムで行われ、アプリケーションの変更を必要としません。
Azure Synapse Analyticsのスタンドアロン専用SQLプールでは、手動でTDEを有効にする必要があります。
TDE では、ページ レベルでデータのリアルタイム I/O 暗号化と暗号化解除が実行されます。 各ページは、メモリに読み込まれるときに暗号化解除され、ディスクに書き込まれる前に暗号化されます。 TDE では、データベース暗号化キー (DEK) という対称キーを使用してデータベース全体のストレージが暗号化されます。 データベースの起動時に、DEK の暗号化は解除され、SQL Server データベース エンジン プロセスでデータベース ファイルの暗号化解除と再暗号化を行うために使用されます。 TDEプロテクターはDEKを保護します。 TDEプロテクタはサービス管理証明書(サービス管理透過データ暗号化)です。
Azure Synapseでは、TDEプロテクターをサーバーレベルで設定し、そのサーバーに関連付けられたすべてのデータベースがそれを継承します。
Note
この記事では、 論理サーバー上でホストされる専用SQLプール(旧称SQL DW)について扱っています。 Synapseワークスペース内の専用SQLプールについては、「Azure Synapse Analytics workspacesの暗号化」を参照してください。
TDEの仕組み
TDEは対称的なデータベース暗号化鍵(DEK)を用いてデータベースページを暗号化します。 DEKはデータベースのブートレコードに保存され、TDEプロテクタがそれを保護します。 プロテクタはサービス管理された証明書です。
論理サーバーでTDEプロテクターを設定し、そのサーバー上の専用SQLプールがそれを継承します。 各ページはメモリに読み込まれた際に復号され、ストレージに書き込まれる前に暗号化されます。
サービス管理型TDE
Azure では、TDE の既定の設定は、組み込みのサーバー証明書によって保護される DEK です。 組み込みのサーバー証明書はサーバーごとに一意であり、使用される暗号化アルゴリズムは暗号ブロック チェーン (CBC) モードの AES 256 です。 データベースが geo レプリケーションのリレーションシップに含まれている場合、プライマリ データベースと geo セカンダリ データベースの両方が、プライマリ データベースの親サーバー キーによって保護されます。 2 つのデータベースが同じサーバーに接続されている場合は、同じ組み込み証明書も共有されます。 Microsoft では社内のセキュリティ ポリシーに従い、これらの証明書を年に 1 回自動的にローテーションします。ルート キーは、Microsoft の内部シークレット ストアによって保護されています。 お客様は、Microsoft Trust Center で入手可能な独立したサード パーティの監査レポートで、SQL Database および SQL Managed Instance が内部セキュリティ ポリシーに準拠していることを確認できます。 Microsoft は、地理的レプリケーションや復元に必要に応じて、キーをシームレスに移動および管理します。
カスタマー マネージド TDE
顧客管理のTDEでは、プロテクターはAzure Key VaultまたはAzure Key Vault Managed HSMで制御する非対称キーです。 鍵の作成、アクセス権限、ローテーション、バックアップ、削除を自分でコントロールできます。 キーはキーストアから出ません。
論理サーバーの鍵へのアクセスを取り消すと、暗号化された専用SQLプールにアクセスできなくなります。 ソフト削除、パージ保護、監視、最小権限アクセスでキーストアを保護します。
Azure Synapseは、DEKを復号・暗号化するために顧客所有のキーボールトに対する権限を付与される必要があります。 サーバーからキー コンテナーへのアクセス許可が取り消されると、データベースはアクセス不可となり、すべてのデータが暗号化されます。
要件および推奨事項については、Azure Synapse AnalyticsのCustomer-managed TDEを参照してください。
Transparent Data Encryptionで保護されたデータベースを移動する
Azure 内での操作のためにデータベースを暗号化解除する必要はありません。 ソース データベースまたはプライマリ データベースの TDE の設定は、ターゲットに透過的に継承されます。 含まれている操作は次のとおりです。
- ジオ復元
- セルフサービスのポイントインタイム リストア
- 削除されたデータベースの復元
- アクティブ ジオレプリケーション
- データベース コピーの作成
TDE で保護されたデータベースを BACPAC ファイルにエクスポートする場合、データベースのエクスポートされたコンテンツは暗号化されません。 既存の空のデータベースにインポートする場合、暗号化は、そのデータベースで TDE が有効かどうかによって異なります。
Transparent Data Encryptionの管理
Azure portal
TDEを有効または無効にするには、Azureポータルの専用SQLプールを開き、「透過データ暗号化」を選択し、必要な状態を保存してください。 顧客管理プロテクターを設定するには、論理サーバーでTransparent Data encryptionを開き、Azure Key Vaultから鍵を選択します。 ユーザー データベース以下の TDE 設定を見つけます。 既定では、サーバー レベルの暗号化キーが使用されます。 データベースを含むサーバー用の TDE 証明書が自動的に生成されます。
PowerShell
PowerShell を使用して TDE を管理します。
Important
Az モジュールは、AzureRMを置き換えます。 今後の開発はすべて、Az.Sql モジュール用です。
PowerShell で TDE を構成するには、Azure の所有者、共同作成者、または SQL セキュリティ マネージャーとして接続する必要があります。
以下のAz.SQLコマンドレットをご利用ください:
| コマンドレット | Purpose |
|---|---|
| Set-AzSqlDatabaseTransparentDataEncryption | 専用SQLプールのためにTDEを有効または無効にしてください。 |
| Get-AzSqlDatabaseTransparentDataEncryption | 現在のTDE状態を取得しましょう。 |
| Add-AzSqlServerKeyVaultKey | 論理サーバーにキーを追加します。 |
| Get-AzSqlServerKeyVaultKey | 論理サーバーで利用可能なキーを一覧表示します。 |
| Set-AzSqlServerTransparentDataEncryptionProtector | サーバーのTDEプロテクターを設定してください。 |
| Get-AzSqlServerTransparentDataEncryptionProtector | 現在のTDEプロテクターを取得してください。 |
| Remove-AzSqlServerKeyVaultKey | 論理サーバーからキーを削除してください。 |
Transact-SQL
Transact-SQL を使用して TDE を管理します。
データベースの master ロールの管理者またはメンバーであるログインを使用してデータベースに接続します。
| 命令 | Description |
|---|---|
| ALTER DATABASE (Azure SQL Database) |
SET ENCRYPTION ON/OFF はデータベースを暗号化または復号します |
| sys.dm_database_encryption_keys | データベースの暗号化の状態と、関連付けられているデータベース暗号化キーに関する情報を返します。 |
| sys.dm_pdw_nodes_database_encryption_keys | 各 Azure Synapse ノードの暗号化の状態と、関連付けられているデータベース暗号化キーに関する情報を返します。 |
Transact-SQL を使って TDE プロテクターを Azure Key Vault のキーに切り替えることはできません。 PowerShell または Azure portal を使用してください。
REST API
以下のSQL管理リソースは、論理サーバーおよび専用SQLプールに適用されます。
REST API で TDE を構成するには、Azure の所有者、共同作成者、または SQL セキュリティ マネージャーとして接続する必要があります。
Azure Synapse Analytics のスタンドアロン専用 SQL プールに対しては以下のコマンドセットを使います:
| 命令 | Description |
|---|---|
| サーバーの作成または更新 | Microsoft Entra ID (旧称 Azure Active Directory) の ID をサーバーに追加します。 (Azure Key Vault へのアクセスを許可するために使用) |
| サーバー キーの作成または更新 | Azure Key Vault キーをサーバーに追加します。 |
| サーバー キーの削除 | サーバーから Azure Key Vault キーを削除します。 |
| サーバー キーの取得 | サーバーから特定の Azure Key Vault キーを取得します。 |
| サーバーごとにサーバー キーのリストを取得 | サーバーの Azure Key Vault キーを取得します。 |
| 暗号化保護機能の作成または更新 | サーバーの TDE 保護機能を設定します。 |
| 暗号化保護機能の取得 | サーバーの TDE 保護機能を取得します。 |
| サーバーごとに暗号化保護機能のリストを取得 | サーバーの TDE 保護機能を取得します。 |
| Transparent Data Encryption 構成の作成または更新 | データベースの TDE を有効または無効にします。 |
| Transparent Data Encryption 構成の取得 | データベースの TDE 構成を取得します。 |
| Transparent Data Encryption 構成の結果リストの取得 | データベースの暗号化結果を取得します。 |