Azure Synapse Analytics ワークスペースの暗号化
この記事では、次のような内容について説明します。
- 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 を入力するか、ワークスペースと同じリージョン内のキー コンテナーの一覧から選択することができます。 キー コンテナー自体の消去保護を有効にする必要があります。
重要
二重暗号化の構成設定は、ワークスペースの作成後は変更できません。
キー アクセスとワークスペースのアクティブ化
カスタマー マネージド キーを使用した 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 を構成することはできません。
アクセス許可
保存データを暗号化または暗号化解除するには、マネージド ID に次のアクセス許可が必要です。 同様に、Resource Manager テンプレートを使用して新しいキーを作成する場合、テンプレートの 'keyOps' パラメーターには次のアクセス許可が必要です。
- WrapKey (新しいキーの作成時に Key Vault にキーを挿入する場合)。
- UnwrapKey (暗号化解除のためのキーを取得する場合)。
- Get (キーの公開部分を読み取る場合)
ワークスペースのアクティブ化
ワークスペースの作成の間に、カスタマー マネージド キーにアクセスするようにユーザー割り当てマネージド ID を構成しない場合、アクティブ化が成功するまでワークスペースは "保留中" の状態のままになります。 すべての機能を使用するには、ワークスペースをアクティブにする必要があります。 たとえば、新しい専用 SQL プールを作成できるのは、アクティブ化が成功した場合にのみです。 ワークスペースのマネージド ID にキー コンテナーへのアクセス権を付与し、ワークスペースの Azure portal バナーでアクティブ化リンクを選択します。 アクティブ化が正常に完了すると、ワークスペースはすぐに使用できるようになり、そこに含まれるすべてのデータはカスタマー マネージド キーで確実に保護されます。 既に説明したように、アクティブ化に成功するには、キー コンテナーで消去保護が有効になっている必要があります。
ワークスペースのカスタマー マネージド キーを管理する
データの暗号化に使用するカスタマー マネージド キーは、Azure portal の [暗号化] ページから変更できます。 ここでも、キー識別子を使用して新しいキーを選択するか、ワークスペースと同じリージョン内でユーザーがアクセス権を持つキー コンテナーから選択することができます。 以前に使用したものとは異なるキー コンテナー内のキーを選択する場合は、新しいキー コンテナーに対する "Get"、"Wrap"、"Unwrap" アクセス許可をワークスペースのマネージド ID に付与します。 ワークスペースは、新しいキー コンテナーへのアクセス権を検証し、ワークスペース内のすべてのデータが新しいキーで再暗号化されます。
重要
ワークスペースの暗号化キーを変更するときは、ワークスペース内の変更前のキーを新しいキーに置き換えるまで、変更前のキーを保持してください。 これで、以前のキーを使用してデータを解読してから、そのデータを新しいキーで再暗号化できるようになります。 SQL プールの状態 (オンライン/オフライン) は、ワークスペースのカスタマー マネージド キー (CMK) ローテーションのプロセスには影響しません。
CMK ローテーション時にオフラインの SQL プールは、以前のキーまたはキー バージョンで暗号化されたままになります。 以前のキーまたはキー バージョンが無効化されているか有効期限切れの場合は、解読不可能のためプールは再開されません。 このようなプールを再開するときに、以前のキーまたはキー バージョンが 1) 有効化されている、かつ 2) 有効期限が未来の日付に設定されている必要があります。これで、解読とそれ以降の再暗号化を新しいキーまたはキー バージョンで行うことができるようになります。
スムーズな CMK ローテーションを確実にするには、このプロセス時にオフラインの SQL プールがある場合に、以前のキーまたはキー バージョンを有効のままにするとともにその有効期限を未来の日付に設定する必要があります。 これは、オフライン プールが正常に再開されて新しいキーまたはキー バージョンで再暗号化されるようにするために、きわめて重要です。
以前のキーまたはキー バージョンも、バックアップの暗号化の解除に必要になる可能性があるため、"削除" はしないことを強くお勧めします。 代わりに、すべての SQL プールが新しいキーまたはキー バージョンで再び暗号化された後に、以前のキーまたはキー バージョンを "無効" にしてください。 これで、以前のキーまたはキー バージョンが引き続き、以前のバックアップの暗号化解除が必要になったときに使用できる状態になります。
自動化された定期的なキー ローテーションのための Azure Key Vault ポリシーや、キーの操作によって、新しいキーの複数のバージョンが作成される可能性があります。 最新バージョンのアクティブ キーを使用して、ワークスペース内のすべてのデータを再暗号化することを選択できます。 再暗号化するには、Azure portal のキーを一時キーに変更してから、暗号化に使用するキーに戻します。 たとえば、最新バージョンのアクティブ キー Key1 を使用してデータ暗号化を更新するには、ワークスペースのカスタマー マネージド キーを一時キー Key2 に変更します。 Key2 による暗号化が終了するまで待機します。 次に、ワークスペースのカスタマー マネージド キーを元の Key1 に切り替えます。ワークスペース内のデータは、最新バージョンの Key1 で再暗号化されます。
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 ワークスペースには、次のコマンドレットを使用します。
コマンドレット | 説明 |
---|---|
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 キーを削除します。 |