次の方法で共有


PowerShell を使用した Transparent Data Encryption (TDE) 保護機能の削除

適用対象:Azure SQL データベースAzure SQL Managed InstanceAzure Synapse Analytics (専用の SQL プールのみ)

この記事では、Azure Key Vault のカスタマー マネージド キー、つまり Bring Your Own Key (BYOK) をサポートする TDE を使用している Azure SQL Database または Azure Synapse Analytics の TDE 保護機能が侵害された可能性がある場合に対応する方法について説明します。 TDE の BYOK サポートの詳細については、概要ページをご覧ください。

注意

この記事で説明する手順は、極端な状況またはテスト環境でのみ実行する必要があります。 アクティブに使用されている TDE 保護機能を Azure Key Vault から削除すると、データベースは使用不能になるため、手順をよく確認してください。

サービスまたはユーザーがキーに不正アクセスしているなど、キーが侵害された疑いがある場合は、キーを削除するのが最善です。

Azure Key Vault で TDE 保護機能が削除されると、最大 10 分以内に、すべての暗号化されたデータベースが、対応するエラー メッセージを含むすべての接続の拒否を開始し、その状態を [アクセス不可] に変更することに注意してください。

このハウツー ガイドでは、侵害インシデント対応の後でデータベースがアクセスされないようにする方法を説明します。

この記事は、Azure SQL Database、Azure SQL Managed Instance、Azure Synapse Analytics (専用 SQL プール (以前の SQL DW)) に適用されます。 Synapse ワークスペース内の専用 SQL プールの Transparent Data Encryption に関するドキュメントについては、Azure Synapse Analytics の暗号化に関する記事を参照してください。

前提条件

  • Azure サブスクリプションがあり、そのサブスクリプションの管理者である必要があります。
  • Azure PowerShell がインストールされ、実行されている必要があります。
  • このハウツー ガイドは、Azure SQL Database または Azure Synapse の TDE 保護機能として、Azure Key Vault のキーを既に使用していることを前提としています。 詳細については、BYOK をサポートする Transparent Data Encryption に関する記事をご覧ください。

Az モジュールのインストール手順については、Azure PowerShell のインストールを参照してください。 Azure PowerShell Az モジュールを使用します。

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 から安全に削除することができます。

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

  1. Azure Key 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 保護機能に更新されたことを確認します。

    サーバーにあるすべてのデータベースとセカンダリ データベースに新しい 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 コマンドレットを使用して、侵害されたキーを Azure Key Vault から削除します。

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

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

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

  1. 侵害された可能性のあるキーによって暗号化されているデータベースを削除します。

    データベースとログ ファイルは自動的にバックアップされるので、(キーを提供すれば) データベースのポイントインタイム リストアをいつでも実行できます。 最新のトランザクションの最大 10 分間のデータが失われる可能性を防ぐために、アクティブな TDE 保護機能を削除する前にデータベースを削除する必要があります。

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

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

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