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)

この記事では、Azure Key VaultのTDEプロテクターを使用するSQLサーバーのキーローテーションについて説明します。 サーバーの論理 TDE 保護機能をローテーションすることは、サーバー上のデータベースを保護する新しいサポートされているキーに切り替えることを意味します。 構成に応じて、TDE プロテクターでは、Azure Key Vault または Azure Key Vault Managed HSM に格納された、サポートされている非対称 (RSA) キーまたは対称 (AES) キーを使用できます。 鍵の回転はオンライン操作であり、数秒で完了するはずです。なぜなら、この操作はデータベースのデータ暗号化鍵のみを復号・再暗号化するためであり、データベース全体を復号・再暗号化するものではないからです。

この記事では、サーバーの TDE 保護機能をローテーションする自動化された方法と手動の方法の両方について説明します。

Note

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

重要な考慮事項

  • 古いキーバージョンは、少なくともデータベースバックアップの保持期間中は保持してください。 古いバックアップを復元するには、それを暗号化したプロテクターが必要です。
  • サービス管理型プロテクターに戻しても、古い鍵は保持してください。
  • 一時停止した専用SQLプールはローテーション前に 再開 しなければなりません。
  • キーボールト名とキー名の合計は94文字を超えてはなりません。

Prerequisites

  • この記事は、すでにAzure SQL DatabaseやAzure Synapse AnalyticsのTDEプロテクターとしてAzure Key Vaultのキーを使っていることを前提としています。 詳細については、Customer-managed TDE for Azure Synapse Analytics をご覧ください。
  • Azure PowerShell がインストールされ、実行されている必要があります。

Tip

推奨ただし省略可能 - まず TDE 保護機能のキー素材をハードウェア セキュリティ モジュール (HSM) またはローカル キー ストアで作成し、そのキー素材を Azure Key Vault にインポートします。 詳しくは、ハードウェアセキュリティモジュール(HSM)とAzure Key Vaultの使用手順をご覧ください。

Azure ポータル に移動します。

キーの自動ローテーション

サーバーやデータベースのTDEプロテクターを設定する際には、TDEプロテクターの 自動回転 を有効にしてください。 Azureポータルから自動ローテーションを有効にするか、以下のPowerShellやAzure CLIコマンドを使うことができます。 自動回転を有効にすると、サーバーやデータベースはTDEプロテクタとして使われる鍵の新しいバージョンをキーボールト内で継続的にチェックします。 サーバーやデータベースが新しい鍵のバージョンを検出すると、24時間以内に自動的にTDEプロテクターを最新の鍵バージョンにローテーションします。

サーバー、データベース、またはマネージド インスタンスで自動ローテーションを使い、Azure Key Vault の自動キー ローテーションと組み合わせて、TDE キーのエンドツーエンドのゼロタッチ ローテーションを実現してください。

Azure portal

Azure portal を使用して以下を実行します。

  1. 既存のサーバーまたはマネージド インスタンスの [Transparent Data Encryption] セクションに移動します。
  2. 顧客管理キーオプションを選択し、TDEプロテクタとして使用するキーボールトとキーを選択します。
  3. 自動回転キーチェック ボックスを選択してください。
  4. 保存 を選択します。

PowerShell

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

PowerShellを使ってTDEプロテクターの自動回転を有効にするには、以下のスクリプトを参照してください。 Azure Key Vault から<keyVaultKeyId>を取得できます。

Set-AzSqlServerTransparentDataEncryptionProtectorをご利用ください:

Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault -KeyId <keyVaultKeyId> `
   -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName> `
    -AutoRotationEnabled <boolean>

Azure CLI

Azure CLIの最新リリースのインストールに関する情報は、「Azure CLIのインストール」をご覧ください。

Azure CLIを使ってTDEプロテクターの自動回転を有効にするには、以下のスクリプトをご覧ください。

az sql server tde-key set を使用します:

az sql server tde-key set --server-key-type AzureKeyVault
                          --auto-rotation-enabled true
                          [--kid] <keyVaultKeyId>
                          [--resource-group] <SQLDatabaseResourceGroupName> 
                          [--server] <logicalServerName>

手動でのキーのローテーション

手動でのキーの交換では、次のコマンドを使用して新しいキーを追加します。このキーは、新しいキー名で、場合によっては別の Key Vault に存在する可能性があります。 Azureポータルを使って手動でキーを回転させることもできます。

Key Vaultで手動でキーを回転させて新しい鍵バージョンを作成する場合(手動または自動キー回転ポリシーを通じて)、サーバー上でそのキーバージョンをTDEプロテクターとして手動設定する必要があります。

Note

キーボールト名とキーネームの合計長さは94文字を超えてはなりません。

Azure portal

  1. SQLサーバーでトランスペアレント データ暗号化を開く。
  2. 顧客管理キーを選択します。
  3. 顧客管理キー (CMK) オプションを選択し、新しい TDE プロテクターとして使用するキー コンテナーとキーを選択します。
  4. 保存 を選択します。

PowerShell

キー コンテナーに新しいキーを追加するには、Add-AzKeyVaultKey コマンドを使います。

# add a new key to Azure Key Vault
Add-AzKeyVaultKey -VaultName <keyVaultName> -Name <keyVaultKeyName> -Destination <hardwareOrSoftware>

次のコマンドを使用します。


# add the new key from Azure Key Vault to the server
Add-AzSqlServerKeyVaultKey -KeyId <keyVaultKeyId> -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
  
# set the key as the TDE protector for all resources under the server
Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault -KeyId <keyVaultKeyId> `
   -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>

Azure CLI

キー コンテナーに新しいキーを追加するには、az keyvault key create コマンドを使います。

# add a new key to Azure Key Vault
az keyvault key create --name <keyVaultKeyName> --vault-name <keyVaultName> --protection <hsmOrSoftware>

次のコマンドを使用します。

# add the new 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>

TDE 保護機能モードを切り替える

Azure portal

Azureポータルを使ってTDEプロテクターをMicrosoft管理モードからBYOKモードに切り替えてください:

  1. 既存のサーバーまたはマネージド インスタンスの [Transparent Data Encryption] メニューに移動します。
  2. [カスタマー マネージド キー] オプションを選択します。
  3. TDE プロテクターとして使用するキー コンテナーとキーを選択します。
  4. 保存 を選択します。

PowerShell

  • TDE 保護機能を Microsoft による管理から BYOK モードに切り替えるには、Set-AzSqlServerTransparentDataEncryptionProtector コマンドを使用します。

    Set-AzSqlServerTransparentDataEncryptionProtector -Type AzureKeyVault `
         -KeyId <keyVaultKeyId> -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
    
  • TDE 保護機能を BYOK モードから Microsoft による管理に切り替えるには、Set-AzSqlServerTransparentDataEncryptionProtector コマンドを使用します。

    Set-AzSqlServerTransparentDataEncryptionProtector -Type ServiceManaged `
         -ServerName <logicalServerName> -ResourceGroup <SQLDatabaseResourceGroupName>
    

Azure CLI

次の例では az sql server tde-key set を使用します。

  • TDE 保護機能を Microsoft による管理から BYOK モードに切り替えるには、次のようにします。

    az sql server tde-key set --server-key-type AzureKeyVault --kid <keyVaultKeyId> --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>
    
  • TDE 保護機能を BYOK モードから Microsoft による管理に切り替えるには、次のようにします。

    az sql server tde-key set --server-key-type ServiceManaged --resource-group <SQLDatabaseResourceGroupName> --server <logicalServerName>