このページでは、顧客管理の暗号鍵が Cloud SQL でどのように機能するかについて説明します。この機能をすぐに使用する場合は、顧客管理の暗号鍵(CMEK)を使用するをご覧ください。
CMEK は私に適していますか?
顧客管理の暗号鍵は、機密データや規制対象データを保管し、独自の暗号鍵で管理する必要のある組織を対象にしています。
Google が管理する暗号鍵と顧客管理の暗号鍵の比較
CMEK 機能を使用すると、独自の暗号鍵を Cloud SQL 内の保存データに使用できます。顧客管理の暗号鍵を追加すると、API が呼び出されるたびに Cloud SQL はその鍵を使用してデータにアクセスします。
Cloud SQL は、Google が管理するデータ暗号鍵(DEK)と鍵暗号鍵(KEK)を使用して Cloud SQL を暗号化します。暗号化には次の 2 つのレベルがあります。
- DEK がデータを暗号化する。
- KEK が DEK を暗号化する。
Cloud SQL インスタンスは、暗号化された DEK と暗号化されたデータを PD に保存し、Google は Google KEK を管理します。顧客管理の暗号鍵を使用して、Google KEK をラップする鍵を作成します。顧客管理の暗号鍵を使用すると、KEK の作成、取り消し、削除ができます。
ソフトウェア、ハードウェア、外部鍵などを含む、顧客管理の暗号鍵はすべて Cloud Key Management Service API を介して管理されます。
下の図は、デフォルトの Google 暗号鍵と顧客管理の暗号鍵を使用した Cloud SQL インスタンス内での保存データの暗号化の仕組みの違いを示しています。
CMEK を使用しない場合
CMEK を使用する場合
顧客管理の暗号鍵でラップされたデータを復号する場合、Cloud SQL は KEK を使用して DEK を復号し、復号した DEK を使用して保存されたデータを復号します。
Cloud SQL はいつ CMEK の鍵を操作するのですか?
オペレーション | 注 |
インスタンスの作成 | インスタンスの作成時に、顧客管理の暗号鍵を使用するようにインスタンスを構成します。 |
バックアップの作成 | CMEK を有効化したインスタンスのバックアップ中に、顧客管理の暗号鍵は、ユーザーのクエリやレスポンスなどのユーザーデータを暗号化します。CMEK を有効化したインスタンスからのバックアップは、ソース インスタンスと同じ Cloud KMS の鍵を使用した暗号化を継承します。 |
インスタンスの復元 | CMEK を有効化したインスタンスの復元中に、Cloud SQL は鍵を使用して、復元中のバックアップ インスタンスのデータにアクセスします。別のインスタンスに復元する場合、ターゲット インスタンスは暗号化に別の鍵を使用できます。 |
レプリカの作成 | Cloud SQL インスタンスのリードレプリカを同じリージョン内に作成すると、親インスタンスから CMEK を継承します。別のリージョンにリードレプリカを作成する場合は、他のリージョンから CMEK を選択する必要があります。リージョンごとに独自の鍵セットが使用されます。 |
クローンの作成 | CMEK を有効化したインスタンスのクローンは、ソース インスタンスと同じ Cloud KMS の鍵を使用した CMEK の暗号化を継承します。 |
インスタンスの更新 | CMEK を有効化したインスタンスの更新中に、Cloud SQL は CMEK の鍵をチェックします。 |
CMEK を有効化した Cloud SQL インスタンスはどこでサポートされていますか?
CMEK は、すべての Cloud SQL インスタンスのロケーションで使用できます。
サービス アカウントについて
Cloud SQL インスタンスで CMEK が有効になっている場合、サービス アカウントを使用して Cloud KMS から鍵のアクセスをリクエストする必要があります。
顧客管理の暗号鍵をプロジェクトで使用するには、サービス アカウントを使用し、顧客管理の暗号鍵にサービス アカウントへのアクセス権を付与する必要があります。サービス アカウントはプロジェクト内に存在する必要があります。サービス アカウントはすべてのリージョンで表示されます。
Console を使用してインスタンスを作成する場合、最初に [顧客管理の暗号鍵] オプションを選択すると、Cloud SQL によってサービス アカウントが自動的に作成されます(サービス アカウントがまだ存在しない場合)。Cloud SQL によるサービス アカウントの自動作成では、ユーザー アカウントに特別な権限は必要ありません。
鍵について
Cloud KMS では、ロケーションが設定された暗号鍵を使用して、キーリングを作成する必要があります。新しい Cloud SQL インスタンスを作成する場合は、この鍵を選択してインスタンスを暗号化します。
顧客管理の暗号鍵を使用する新しい Cloud SQL インスタンスを作成する場合は、鍵 ID と鍵リージョンを確認する必要があります。新しい Cloud SQL インスタンスは、インスタンスに関連付けられた顧客管理の暗号鍵と同じリージョンに配置する必要があります。鍵と Cloud SQL インスタンスに対し 1 つのプロジェクトを作成できます。また、それぞれに異なるプロジェクトを作成することもできます。
顧客管理の暗号鍵は次の形式を使用します。
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
Cloud SQL が鍵にアクセスできない場合(鍵バージョンを無効にした場合など)、Cloud SQL はインスタンスを一時停止します。鍵が再びアクセス可能になると、Cloud SQL はインスタンスを自動的に再開します。
鍵をローテーションすると、その鍵で暗号化されたインスタンスは、自動的に新しい主キーのバージョンで再暗号化されることはありません。既存の CMEK プライマリ インスタンスまたはレプリカを新しい主キーのバージョンで再暗号化できます。鍵のローテーション後に Cloud SQL インスタンスまたはレプリカを再暗号化する詳しい方法については、既存の CMEK 対応インスタンスまたはレプリカを再暗号化するをご覧ください。
外部鍵マネージャー
Fortanix、Ionic、Thales などの外部鍵マネージャーに保存されている鍵を、顧客管理の暗号鍵として使用できます。Cloud KMS で外部鍵を使用する方法については、Cloud External Key Manager(Cloud EKM)をご覧ください。
Key Access Justifications
Cloud EKM の一部として、Key Access Justifications(KAJ)を使用できます。KAJ では、Cloud EKM リクエストの理由を確認できます。さらに、示された理由に基づいて、リクエストを自動的に承認または拒否できます。詳細については、概要をご覧ください。
KAJ では、データを復号する正当な理由をすべて提供することで、データをより細かく制御します。
Cloud SQL インスタンスで鍵を使用する方法については、CMEK を使用した Cloud SQL インスタンスの作成をご覧ください。
CMEK で暗号化されたデータを永続的にアクセスできなくするにはどうすればよいですか?
CMEK で暗号化されたデータを永続的に破棄する必要が生じることも考えられます。これを行うには、顧客管理の暗号鍵バージョンを破棄します。キーリングや鍵の破棄はできませんが、鍵の鍵バージョンは破棄できます。
CMEK 対応インスタンスとの間でデータをエクスポートおよびインポートするにはどうすればよいですか?
顧客管理の暗号鍵を使用して暗号化した状態でデータをエクスポートまたはインポートするには、Cloud Storage バケットに顧客管理の暗号鍵を設定してからデータをエクスポートする必要があります。顧客管理の暗号鍵を使用して有効にしたインスタンスにデータが以前に保存されていた場合でも、新しいインスタンスにデータをインポートするための特別な要件や制限はありません。
制限事項
顧客管理の暗号鍵を使用する場合は次の制限が適用されます。
- 顧客管理の暗号鍵を既存のインスタンスで有効にすることはできません。
- プライマリ インスタンスと同じリージョン内のレプリカに別の鍵を割り当てることはできません。クロスリージョン レプリカの場合、レプリカ リージョンに対して新しい鍵を作成する必要があります。
- 別の鍵をクローンに割り当てることはできません。
- 顧客管理の暗号鍵は、次の暗号化には使用できません。
- 外部サーバー(外部プライマリ インスタンスと外部レプリカ)
- インスタンス ID、データベースのバージョン、マシンタイプ、フラグ、バックアップ スケジュールなどのインスタンス メタデータ。
- 顧客管理の暗号鍵を使用して、ユーザークエリやレスポンスなどの送信中のユーザーデータを暗号化することはできません。
次のステップ
- Google Cloud Platform での保存時の暗号化について学習する。
- CMEK を有効にしてインスタンスを作成する方法について学習する。
- Cloud Key Management Service(Cloud KMS)について学習する。
- Cloud KMS リソースの割り当てについて確認する。
- IAM サービス アカウントについて学習する。
- 鍵に Key Access Justifications を追加する方法を学習する。
- CMEK を使用するその他のプロダクトを探す。