Azure Synapse AnalyticsでTransparent Data Encryptionプロテクターを解除してください

Tip

Microsoft Fabric Data Warehouse は、将来のアーキテクチャ、組み込みの AI、および新機能を備えた、Data Lake 基盤上のエンタープライズ 規模のリレーショナル ウェアハウスです。 データ ウェアハウスを初めて使用する場合は、Fabric Data Warehouseから始めます。 既存の dedicated SQL プール ワークロードは、Fabric にアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。

適用対象: Azure Synapse Analytics 専用 SQL プール (旧称 SQL DW)

顧客管理のTDEプロテクターが侵害される可能性がある場合には、この手順を用いてください。 古いキーを削除または無効にする前に新しいプロテクターに切り替え、専用SQLプールがアクセス可能なままにします。

Caution

アクティブなTDEプロテクターを削除または無効にすると、それに依存している専用のSQLプールがすべてアクセスできなくなります。 キーを外す前に、インシデント対応計画とバックアップ・保持要件を確認しましょう。

Note

この記事では、スタンドアロン専用SQLプール(旧SQL DW)について扱っています。 Synapseワークスペース内の専用SQLプールについては、「Azure Synapse Analytics workspacesの暗号化」を参照してください。

鍵を削除しても、以前バックアップされたまたは別の鍵保管庫に復元されたその鍵のコピーが無効になるわけではありません。 インシデント対応の一環として、すべてのコピーを保護し、目録作成を行いましょう。

Prerequisites

TDEプロテクターのサムプリントを確認してください

以下の手順では、特定のデータベースの仮想ログファイル(VLF)がまだ使用しているTDEプロテクターのサムプリントを確認する方法を説明します。

データベースの現在のTDEプロテクターのサムプリントとデータベースIDを調べるために、以下のクエリを実行してください:

SELECT [database_id],
       [encryption_state],
       [encryptor_type], /*asymmetric key means Azure Key Vault, certificate means service-managed keys*/
       [encryptor_thumbprint]
 FROM [sys].[dm_database_encryption_keys]

以下のクエリを実行して、使用中のVLFとTDEプロテクターのサムプリントを返します。 それぞれ異なるサムプリントはAzure Key Vault内の異なるキーを指しています:

SELECT * FROM sys.dm_db_log_info (database_id)

または、PowerShell または Azure CLI を使用できます。

  • PowerShellコマンドGet-AzSqlServerKeyVaultKeyは、クエリで使用されたTDEプロテクターのサムプリントを提供し、どのキーを保持し、Azure Key Vault でどのキーを削除すべきかを判断できます。 データベースがもう使っていない鍵のみをAzure Key Vaultから安全に削除できます。

  • Azure CLIコマンドaz sql server key showは、クエリで使用されたTDEプロテクターの拇印を提供するため、Azure Key Vault でどのキーを保持し、どのキーを削除するかを確認できます。 データベースがもう使っていない鍵のみをAzure Key Vaultから安全に削除できます。

暗号化されたリソースを引き続きアクセス可能にしておく

PowerShell

  1. Azure Key Vault に新しいキーを作成します。 アクセス制御はVault レベルでプロビジョニングされるため、この新しいキーは、侵害された可能性のあるTDEプロテクターとは別のキー コンテナーに作成してください。

  2. Add-AzSqlServerKeyVaultKeyとSet-AzSqlServerTransparentDataEncryptionProtectorコマンドレットを使って新しい鍵をサーバーに追加し、それをサーバーの新しいTDE プロテクターとして設定します。

    # add the key from Azure Key Vault to the server  
    Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId>
    
    # set the key as the TDE protector for all resources under the server
    Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -ServerName <LogicalServerName> -Type AzureKeyVault -KeyId <KeyVaultKeyId>
    
  3. Get-AzSqlServerTransparentDataEncryptionProtector コマンドレットを使って、サーバーおよびすべてのレプリカが新しいTDEプロテクターに更新されていることを確認してください。

    Note

    サーバーにあるすべてのデータベースとセカンダリ データベースに新しい TDE 保護機能が伝達されるまでに数分かかる場合があります。

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. Azure Key Vault で新しいキーのバックアップ を作成します。

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. Remove-AzKeyVaultKey cmdletを使ってAzure Key Vaultから侵害された鍵を削除してください。

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. 今後 Azure Key Vault にキーを復元するには、 Restore-AzKeyVaultKey コマンドレットを使用します。

    Restore-AzKeyVaultKey -VaultName <KeyVaultName> -InputFile <BackupFilePath>
    

Azure CLI

コマンド リファレンスについては、 Azure CLI keyvault を参照してください。

  1. Azure Key Vault に新しいキーを作成します。 アクセス制御はボールト レベルでプロビジョニングされるため、この新しいキーを、侵害されている可能性のある TDE プロテクターとは別のキー コンテナーで作成してください。

  2. 新しいキーをサーバーに追加し、サーバーの新しい TDE 保護機能として更新します。

    # add the key from Azure Key Vault to the server  
    az sql server key create --kid <KeyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
    # set the key as the TDE protector for all resources under the server
    az sql server tde-key set --server-key-type AzureKeyVault --kid <KeyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
  3. サーバーおよびレプリカが新しいTDEプロテクターに更新されていることを確認してください。

    Note

    サーバーにあるすべてのデータベースとセカンダリ データベースに新しい TDE 保護機能が伝達されるまでに数分かかる場合があります。

    az sql server tde-key show --resource-group <SQLDatabaseResourceGroupName> --server <LogicalServerName>
    
  4. Azure Key Vault で新しいキーのバックアップを作成します。

    # --file parameter is optional; if removed, a file name is automatically generated.
    az keyvault key backup --file <DesiredBackupFilePath> --name <KeyVaultKeyName> --vault-name <KeyVaultName>
    
  5. 侵害されたキーを Azure Key Vault から削除します。

    az keyvault key delete --name <KeyVaultKeyName> --vault-name <KeyVaultName>
    
  6. 将来使用するためにAzure Key Vaultにキーを復元してください。

    az keyvault key restore --file <BackupFilePath> --vault-name <KeyVaultName>
    

暗号化されたリソースをアクセス不可にする

  1. 暗号化のために、侵害された可能性のある鍵を使うデータベースを削除しましょう。

    システムはデータベースとログファイルを自動でバックアップするため、キーを提供すればいつでもデータベースのポイントインタイム復元が可能です。 アクティブな TDE プロテクターを削除する前にデータベースを削除し、最新のトランザクションの最大 10 分分のデータ損失を回避しましょう。

  2. Azure Key Vault の TDE 保護機能のキー マテリアルをバックアップします。

  3. 侵害された可能性のあるキーを Azure Key Vault から削除します。

Note

キー コンテナーで許可の変更が有効になるまで約10分かかる場合があります。 今回はAKVのTDEプロテクターへのアクセス権限の取り消しも含まれており、ユーザーは引き続きアクセス権限を保持している可能性があります。