PowerShell を使用した Transparent Data Encryption (TDE) 保護機能の削除
適用対象: Azure SQL データベース
Azure SQL Managed Instance
Azure 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 から削除すると、データベースは使用不能になるため、手順をよく確認してください。
サービスまたはユーザーがキーに不正アクセスしているなど、キーが侵害された疑いがある場合は、キーを削除するのが最善です。
Key Vault で TDE 保護機能を削除したら、最大 10 分ですべての暗号化されたデータベースで、対応するエラー メッセージを使用してすべての接続の拒否が開始され、状態が [アクセス不可] に変更されることに注意してください。
このハウツー ガイドでは、侵害インシデント対応の後でデータベースがアクセスされないようにする方法を説明します。
Note
この記事は、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 のインストールを参照してください。 具体的なコマンドレットについては、「AzureRM.Sql」を参照してください。 Azure PowerShell Az モジュールを使用します。
TDE 保護機能の拇印を確認する
次の手順では、特定のデータベースの仮想ログ ファイル (VLF) でまだ使用されている TDE 保護機能の拇印を確認する方法の概要を示します。 データベースの現在の TDE 保護機能の拇印、およびデータベース ID は、
SELECT [database_id],
[encryption_state],
[encryptor_type], /*asymmetric key means AKV, certificate means service-managed keys*/
[encryptor_thumbprint]
FROM [sys].[dm_database_encryption_keys]
次のクエリでは、VLF と、使用中の TDE 保護機能のそれぞれの拇印が返されます。 異なる拇印でそれぞれ、Azure Key Vault (AKV) の異なるキーが参照されます。
SELECT * FROM sys.dm_db_log_info (database_id)
PowerShell または Azure CLI を使用することもできます。
PowerShell コマンド Get-AzureRmSqlServerKeyVaultKey
を実行すると、クエリで使用される TDE 保護機能の拇印が提供されるため、AKV で保持するキーと削除するキーを確認できます。 データベースで使用されなくなったキーのみを、Azure Key Vault から安全に削除することができます。
暗号化されたリソースを引き続きアクセス可能にしておく
Key Vault に新しいキーを作成します。 アクセス制御はコンテナー レベルでプロビジョニングされるため、この新しいキーは、侵害された可能性のある TDE 保護機能とは別のキー コンテナーに作成する必要があります。
Add-AzSqlServerKeyVaultKey および Set-AzSqlServerTransparentDataEncryptionProtector コマンドレットを使用してサーバーに新しいキーを追加し、サーバーの新しい TDE 保護機能として更新します。
# add the key from 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>
Get-AzSqlServerTransparentDataEncryptionProtector コマンドレットを使用して、サーバーとすべてのレプリカが新しい TDE 保護機能に更新されたことを確認します。
Note
サーバーにあるすべてのデータベースとセカンダリ データベースに新しい TDE 保護機能が伝達されるまでに数分かかる場合があります。
Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
Key Vault 内の新しいキーのバックアップを作成します。
# -OutputFile parameter is optional; if removed, a file name is automatically generated. Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
Remove-AzKeyVaultKey コマンドレットを使用して、侵害されたキーを Key Vault から削除します。
Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
今後、Key Vault にキーを復元するときは、Restore-AzKeyVaultKey コマンドレットを使用します。
Restore-AzKeyVaultKey -VaultName <KeyVaultName> -InputFile <BackupFilePath>
暗号化されたリソースをアクセス不可にする
侵害された可能性のあるキーによって暗号化されているデータベースを削除します。
データベースとログ ファイルは自動的にバックアップされるので、(キーを提供すれば) データベースのポイントインタイム リストアをいつでも実行できます。 最新のトランザクションの最大 10 分間のデータが失われる可能性を防ぐために、アクティブな TDE 保護機能を削除する前にデータベースを削除する必要があります。
Key Vault 内の TDE 保護機能のキー マテリアルをバックアップします。
侵害された可能性のあるキーを Key Vault から削除します。
Note
キー コンテナーに対してアクセス許可の変更が有効になるまで、約 10 分かかる場合があります。 これには、AKV の TDE プロテクターへのアクセス許可の取り消しが含まれます。この概算時間内のユーザーには、まだアクセス許可がある可能性があります。
関連するコンテンツ
- セキュリティ要件に準拠するためにサーバーの TDE 保護機能をローテーションする方法を確認する:PowerShell を使用して Transparent Data Encryption (TDE) 保護機能をローテーションする
- TDE の Bring Your Own Key サポートを使用する:PowerShell で Key Vault の独自のキーを使用して TDE を有効にする