この記事では、次のような内容について説明します。
- Synapse Analytics ワークスペースでの保存データの暗号化。
- カスタマー マネージド キーを使用した暗号化を有効にするための Synapse ワークスペースの構成。
- ワークスペース内のデータの暗号化に使用されるキーの管理。
保存データの暗号化
完全な保存時暗号化ソリューションを使用すると、データが非暗号化形式で保持されることは決してありません。 保存データを二重に暗号化すると、2 つの独立した暗号化レイヤーを使用して、1 つのレイヤーの侵害に対して保護することで脅威が軽減されます。 Azure Synapse Analytics は、カスタマー マネージド キーを使用して、ワークスペース内のデータに対して 2 番目の暗号化レイヤーを提供します。 このキーは Azure Key Vault で保護されます。これにより、キーの管理とローテーションの所有権を取得できます。
Azure サービスの最初の暗号化レイヤーは、プラットフォーム マネージド キーで有効になります。 既定では、Azure ディスクと、Azure Storage アカウントのデータは、保存時に自動的に暗号化されます。 Microsoft Azure での暗号化の使用方法の詳細については、「Azure の暗号化の概要」を参照してください。
Note
テーブル名、オブジェクト名、インデックス名など、カスタマー コンテンツと見なされる一部の項目は、Microsoft によるサポートとトラブルシューティングのためにログ ファイルで送信される場合があります。
Azure Synapse の暗号化
このセクションは、Synapse ワークスペース内でカスタマー マネージド キーの暗号化を有効にして適用する方法について理解を深めるのに役立ちます。 この暗号化では、Azure Key Vault で生成された既存のキーまたは新しいキーが使用されます。 ワークスペース内のすべてのデータを暗号化するために 1 つのキーが使用されます。 Synapse ワークスペースでは、RSA 2048 および3072 のバイトサイズのキーと RSA-HSM キーがサポートされています。
Note
Synapse ワークスペースでは、EC、EC-HSM、oct-HSM キーを使用した暗号化はサポートされていません。
次の Synapse コンポーネントのデータは、ワークスペース レベルで構成されているカスタマー マネージド キーで暗号化されます。
- SQL プール
- 専用 SQL プール
- サーバーレス SQL プール
- Data Explorer プール
- Apache Spark プール
- Azure Data Factory 統合ランタイム、パイプライン、データセット。
ワークスペースの暗号化構成
ワークスペースの作成時に、カスタマー マネージド キーを使用してワークスペースの二重暗号化を有効にするように構成できます。 新しいワークスペースを作成するときに、[セキュリティ] タブでカスタマー マネージド キーを使用して二重暗号化を有効にします。 キー識別子の URI を入力するか、ワークスペースと同じリージョン内のキー コンテナーの一覧から選択することができます。 キー コンテナー自体の消去保護を有効にする必要があります。
Important
二重暗号化の構成設定は、ワークスペースの作成後は変更できません。
前提条件: キーのローテーションと SQL プールの状態
Warning
ワークスペースの暗号化キーを変更する前に、
- すべての専用 SQL プールがオンライン状態であることを確認します。 オフライン プールは再暗号化されず、古いキーまたはキーのバージョンが削除、無効化、または期限切れになった場合は再開できません。
- すべての SQL プールがオンラインになり、新しいキーで再暗号化されるまで、暗号化に使用されたすべての古いキーとキー バージョンを保持します。 すべてのプールが新しいキーに正常にローテーションされた後にのみ、古いキーを無効または削除します。
⚠ ️ これらの前提条件に従わないと、SQL プールに永続的にアクセスできなくなったり、バックアップ データが回復不能になったりする可能性があります。
キーローテーションチェックリスト
| Step | Action | Status |
|---|---|---|
| 1 | すべての SQL プールがオンラインであることを確認する | ☐ |
| 2 | 古いキーが保持され、有効になっていることを確認する | ☐ |
| 3 | CMK の回転 | ☐ |
| 4 | すべてのプールが再暗号化されていることを確認する | ☐ |
| 5 | 古いキーまたはキー バージョンを安全に無効にする (すべてのプールが完了した後) | ☐ |
主要な管理のベスト プラクティス
Important
ワークスペースの暗号化キーを変更するときは、ワークスペース内のキーを新しいキーに置き換えるまで 、古い キーを保持します。 これで、以前のキーを使用してデータを解読してから、そのデータを新しいキーで再暗号化できるようになります。
SQL プール (オンライン/オフライン) の状態は、ワークスペースのカスタマー マネージド キー (CMK) ローテーション プロセスには影響 しません が、 オフライン プールは古いキーまたはキー バージョンで暗号化されたままになります。
古いキーまたはキーのバージョンが無効になっているか、有効期限が切れている場合、暗号化解除が不可能であるため、 オフライン プールは再開されません 。 これらのプールを再開するときは、古いキーまたはキーのバージョンを有効にし、(2) 新しいキーまたはキー のバージョンを使用した暗号化解除とその後の再暗号化を可能にするために、(2) 有効期限を設定する必要があります。
スムーズな CMK ローテーションを確実に行うために、 プロセス中に一部の SQL プールがオフラインになっている場合は、古いキーまたはキーのバージョンを有効にし、今後有効期限を設定する必要があります。 これは、オフライン プールが正常に再開されて新しいキーまたはキー バージョンで再暗号化されるようにするために、きわめて重要です。
すべてのプールとバックアップが正常に再暗号化されて検証されるまで、古いキーまたはキーのバージョンを削除しないでください。 すべての要件が満たされた後にのみ、古いキーを 無効にします 。
キー ローテーションのトラブルシューティング
キーのローテーション後に SQL プールがオフラインでスタックしている場合:
PowerShell を使用して SQL プールの特定のキー バージョンを確認し、プールが想定しているキーまたはキー バージョンを確認します。
Get-AzSqlServerTransparentDataEncryptionProtector -ServerName 'ContosoServer' -ResourceGroupName 'WORKSPACE_MANAGED_RESOURCE_GROUP'
Note
ResourceGroupNameは、ワークスペースのマネージド リソース グループを参照します。 これを見つけるには、Azure portal で Synapse ワークスペースを選択し、JSON ビューで managedResourceGroup 値を表示します。
Azure Key Vault で必要な古いキーまたはキー バージョンを有効にします。
古いキーまたはキーのバージョンに対して、将来の有効期限を設定します。
SQL プールを再開します。
プールがオンラインに戻ったら、新しいキーを使用して再暗号化できるようにします。
SQL プールで次の T-SQL クエリを実行して、各データベースの暗号化状態を確認します。
SELECT [name], [is_encrypted] FROM sys.databases;-
is_encrypted列には、暗号化の状態が表示されます (1= 暗号化済み、0= 暗号化されていません)。
-
すべてのプールとバックアップがアクセス可能で暗号化されていることを確認した後、古いキーまたはキーのバージョンを安全に無効に (削除しない) 場合があります。
キー アクセスとワークスペースのアクティブ化
カスタマー マネージド キーを使用した Azure Synapse 暗号化モデルでは、必要に応じて暗号化と暗号化解除を行うために Azure Key Vault 内のキーにワークスペースがアクセスします。 アクセス ポリシーまたは Azure Key Vault RBAC を使用して、ワークスペースがキーにアクセスできるようになります。 Azure Key Vault アクセス ポリシーを使用してアクセス許可を付与する場合は、ポリシーの作成時にアプリケーションのみオプションを選択します (ワークスペースのマネージド ID を選択し、承認済みアプリケーションとして追加しないでください)。
ワークスペースをアクティブ化する前に、ワークスペースのマネージド ID には、それがキー コンテナー上で必要となるアクセス許可を付与する必要があります。 この段階的なワークスペースのアクティブ化により、ワークスペース内のデータはカスタマー マネージド キーで確実に暗号化されます。 暗号化は、個別の専用 SQL プールに対して有効または無効にできます。 既定では各専用プールで暗号化は有効になっていません。
ユーザー割り当てマネージド ID を使用する
ユーザー割り当てマネージド ID を使用して Azure Key Vault に格納されているカスタマー マネージド キーにアクセスするように、ワークスペースを構成できます。 カスタマー マネージド キーで二重暗号化を使用する場合は、Azure Synapse ワークスペースの段階的なアクティブ化が行われないように、ユーザー割り当てマネージド ID を構成します。 ユーザー割り当てマネージド ID を Azure Synapse ワークスペースに割り当てるには、マネージド ID 共同作成者の組み込みロールが必要です。
Note
Azure Key Vault がファイアウォールの内側にあるときは、カスタマー マネージド キーにアクセスするようにユーザー割り当てマネージド ID を構成することはできません。
Permissions
保存データを暗号化または暗号化解除するには、マネージド ID に次のアクセス許可が必要です。 同様に、Resource Manager テンプレートを使用して新しいキーを作成する場合、テンプレートの 'keyOps' パラメーターには次のアクセス許可が必要です。
- WrapKey (新しいキーの作成時に Key Vault にキーを挿入する場合)。
- UnwrapKey (暗号化解除のためのキーを取得する場合)。
- Get (キーの公開部分を読み取る場合)
ワークスペースのアクティブ化
ワークスペースの作成の間に、カスタマー マネージド キーにアクセスするようにユーザー割り当てマネージド ID を構成しない場合、アクティブ化が成功するまでワークスペースは "保留中" の状態のままになります。 すべての機能を使用するには、ワークスペースをアクティブにする必要があります。 たとえば、新しい専用 SQL プールを作成できるのは、アクティブ化が成功した場合にのみです。 ワークスペースのマネージド ID にキー コンテナーへのアクセス権を付与し、ワークスペースの Azure portal バナーでアクティブ化リンクを選択します。 アクティブ化が正常に完了すると、ワークスペースはすぐに使用できるようになり、そこに含まれるすべてのデータはカスタマー マネージド キーで確実に保護されます。 既に説明したように、アクティブ化に成功するには、キー コンテナーで消去保護が有効になっている必要があります。
ワークスペースのカスタマー マネージド キーを管理する
データの暗号化に使用するカスタマー マネージド キーは、Azure portal の [暗号化] ページから変更できます。 ここでも、キー識別子を使用して新しいキーを選択するか、ワークスペースと同じリージョン内でユーザーがアクセス権を持つキー コンテナーから選択することができます。 以前に使用したものとは異なるキー コンテナー内のキーを選択する場合は、新しいキー コンテナーに対する "Get"、"Wrap"、"Unwrap" アクセス許可をワークスペースのマネージド ID に付与します。 ワークスペースは、新しいキー コンテナーへのアクセス権を検証し、ワークスペース内のすべてのデータが新しいキーで再暗号化されます。
自動化された定期的なキー ローテーションのための Azure Key Vault ポリシーや、キーの操作によって、新しいキーの複数のバージョンが作成される可能性があります。 最新バージョンのアクティブ キーを使用して、ワークスペース内のすべてのデータを再暗号化することを選択できます。 再暗号化するには、Azure portal のキーを一時キーに変更してから、暗号化に使用するキーに戻します。 たとえば、最新バージョンのアクティブ キー Key1 を使用してデータ暗号化を更新するには、ワークスペースのカスタマー マネージド キーを一時キー Key2 に変更します。 Key2 による暗号化が終了するまで待機します。 次に、ワークスペースのカスタマー マネージド キーを元の Key1 に切り替えます。ワークスペース内のデータは、最新バージョンの Key1 で再暗号化されます。
Note
キーのローテーションは、次の 3 つの手順で行います。
- ワークスペースのカスタマー マネージド キーを メイン キー から 一時キーに変更します。
- 再暗号化プロセスが完了するまで 15 ~ 30 分待ちます。
- ワークスペースのカスタマー マネージド キーを メイン キー に戻します (現在は新しいバージョンを使用しています)。
このプロセスにより、すべてのワークスペース データが最新のキー バージョンで安全に再暗号化されます。
Note
Azure Synapse Analytics では、新しいキー バージョンが作成されたときにデータを自動的に再暗号化しません。 ワークスペースの一貫性を確保するために、上の手順で説明したプロセスを使用してデータの再暗号化を強制してください。
サービス マネージド キーを使用した SQL Transparent Data Encryption
SQL Transparent Data Encryption (TDE) は、二重暗号化が有効になっていないワークスペース内の専用 SQL プールで使用できます。 この種類のワークスペースでは、サービス マネージド キーを使用して、専用 SQL プール内のデータを二重暗号化します。 サービス マネージド キーを使用した TDE は、個々の専用 SQL プールに対して有効または無効にすることができます。
Azure SQL Database と Azure Synapse のコマンドレット
PowerShell で TDE を構成するには、Azure の所有者、共同作成者、または SQL セキュリティ マネージャーとして接続する必要があります。
Azure Synapse ワークスペースには、次のコマンドレットを使用します。
| Cmdlet | Description |
|---|---|
| Set-AzSynapseSqlPoolTransparentDataEncryption | SQL プールの透過的なデータ暗号化を有効または無効にします。 |
| Get-AzSynapseSqlPoolTransparentDataEncryption | SQL プールの透過的なデータ暗号化の状態を取得します。 |
| New-AzSynapseWorkspaceKey | ワークスペースに Key Vault キーを追加します。 |
| Get-AzSynapseWorkspaceKey | ワークスペースの Key Vault キーを取得します |
| Update-AzSynapseWorkspace | ワークスペースの透過的なデータ暗号化の保護機能を設定します。 |
| Get-AzSynapseWorkspace | Transparent Data Encryption 保護機能を取得します。 |
| Remove-AzSynapseWorkspaceKey | ワークスペースから Key Vault キーを削除します。 |