このページでは、Cloud SQL for SQL Server での透過的データ暗号化(TDE)について説明します。
Cloud SQL for SQL Server は、TDE を使用した Cloud SQL for SQL Server インスタンスに保存されているデータの暗号化をサポートしています。TDE は、データがストレージに書き込まれる前に自動的にデータを暗号化し、データがストレージから読み取られるときに自動的に復号します。
TDE は、Google のデフォルト サービスである保存データの暗号化と Google のオプション サービスである顧客管理の暗号鍵(CMEK)に加えて、別の暗号化レイヤが必要なシナリオで使用されます。具体的には、TDE を使用して、Payment Card Industry データ セキュリティ基準(PCI DSS)などの規制コンプライアンス要件を満たす、または暗号化されたバックアップをインポートあるいはエクスポートすることが可能です。
TDE の仕組み
Cloud SQL for SQL Server の TDE は、2 層の鍵アーキテクチャを使用して暗号鍵管理を可能にします。データ暗号鍵の保護には、データベースのプライマリキーから生成された証明書が使用されます。データベース暗号鍵は、ユーザー データベース上のデータの暗号化と復号を行います。Cloud SQL は、データベースのプライマリキーと TDE 証明書の両方を管理します。
対象となる Cloud SQL for SQL Server インスタンスごとに、1 年間有効な一意の TDE 証明書がプロビジョニングされます。Cloud SQL for SQL Server は、この証明書を毎年自動的にローテーションします。
外部 TDE 証明書をインスタンスにインポートできますが、ローテーションは手動で行う必要があります。
インスタンスにレプリカがある場合、Cloud SQL によって管理される証明書や手動でインポートした証明書など、すべての TDE 証明書がすべてのレプリカに自動的に分散されます。
TDE が有効になっているインスタンスは、
gcloud_cloudsqladmin
という内部データベースを生成します。このデータベースは内部 Cloud SQL プロセス用に予約されており、ユーザーはアクセスできません。保存されるデータは最小限で、ストレージ費用はわずかです。Cloud SQL for SQL Server は、TDE 証明書をプロビジョニングするときに
gcloud_tde_system_
という命名接頭辞を使用します。インポートされた証明書は、
gcloud_tde_user_
CERT_NAME_
UUID という命名接頭辞を使用します。TDE とポイントインタイム リカバリ(PITR)の両方が有効になっているインスタンスで証明書をインポートまたはローテーションすると、インスタンスは新しいバックアップを作成します。これにより、暗号化されたデータベースを、インスタンスが証明書にアクセスできるようになる前の時点に復元する必要がある場合に、証明書が失われるリスクを軽減できます。
制限事項
次のデータベース バージョンの Cloud SQL for SQL Server インスタンスでのみ使用できます。
- SQL Server Enterprise
- SQL Server 2019 以降(Standard エディション)
レプリカのあるインスタンスに TDE を使用し、VPC Service Controls が有効になっている場合は、プライマリ インスタンスとすべてのレプリカが同じサービス境界内にあることを確認する必要があります。
詳細については、VPC Service Controls を構成すると VPC Service Controls の概要をご覧ください。
Cloud SQL によって管理されている TDE 証明書は削除できません。
TDE 証明書は、使用中は削除できません。
外部 TDE 証明書をレプリカ インスタンスに直接インポートすることはできません。
インスタンスごとにインポートできる TDE 証明書は 10 個までです。証明書をさらにインポートする必要がある場合は、
msdb.dbo.gcloudsql_drop_tde_user_certificate
ストアド プロシージャを使用して不要な証明書を削除します。