顧客管理の暗号鍵(CMEK)の概要

このページでは、顧客管理の暗号鍵が Cloud SQL でどのように機能するかについて説明します。この機能をすぐに使用する場合は、顧客管理の暗号鍵(CMEK)の使用をご覧ください。

CMEK は私に適していますか?

顧客管理の暗号鍵は、機密データや規制対象データを保管しているため、独自の暗号鍵を管理する必要のある組織を対象にしています。

Google が管理する暗号鍵と顧客管理の暗号鍵

顧客管理の暗号鍵機能を使用すると、独自の暗号鍵を Cloud SQL 内に保存されたデータに使用できます。顧客管理の暗号鍵を追加すると、API 呼び出しが行われるたびに Cloud SQL は鍵を使用してデータにアクセスします。

Cloud SQL は、Google が管理するデータ暗号鍵(DEK)と鍵暗号鍵(KEK)を使用して Cloud SQL を暗号化します。暗号化には次の 2 つのレベルがあります。

  1. DEK はデータを暗号化します。
  2. KEK は DEK を暗号化します。

Cloud SQL インスタンスは、暗号化された DEK と暗号化されたデータを PD に保存し、Google は Google KEK を管理します。顧客管理の暗号鍵を使用して、Google KEK をラップする鍵を作成します。顧客管理の暗号鍵を使用すると、KEK の作成、取り消し、削除ができます。

顧客管理の暗号鍵は、Key Management Service(KMS)というマネージド サービスに格納されます。

下の図は、デフォルトの Google 暗号鍵と顧客管理の暗号鍵を使用した Cloud SQL インスタンス内での保存データの暗号化の仕組みを示しています。

CMEK を使用しない場合

データは Google にアップロードされた後にチャンク化されます。各チャンクは独自のデータ暗号鍵で暗号化されます。データ暗号鍵は、鍵暗号鍵を使用してラップされます。デフォルトの Google 暗号化では、鍵暗号鍵は Google の内部キーストアから取得されます。暗号化されたチャンクとラップされた暗号鍵は、Google のストレージ インフラストラクチャ全体に分散されます。

CMEK を使用する場合

データは Google にアップロードされた後にチャンク化されます。各チャンクは独自のデータ暗号鍵で暗号化されます。データ暗号鍵は、鍵暗号鍵を使用してラップされます。Cloud KMS を使用する CMEK では、鍵暗号鍵が Cloud KMS から取得されます。暗号化されたチャンクとラップされた暗号鍵は、Google のストレージ インフラストラクチャ全体に分散されます。

顧客管理の暗号鍵でラップされたデータを復号する場合、Cloud SQL は KEK を使用して DEK を復号し、保存されたデータの復号には暗号化されていない DEK を使用します。

DEK で暗号化され、ラップされた DEK で保存されたデータチャンク。DEK のラップ解除リクエストは KMS ストレージに送信され、KMS ストレージにはエクスポートできない KEK が保存されます。KMS ストレージは、ラップ解除された DEK を返します。

Cloud SQL はいつ CMEK の鍵を操作するのですか?

オペレーション
インスタンスの作成 インスタンスの作成時に、顧客管理の暗号鍵を使用するようにインスタンスを構成します。
バックアップの作成 CMEK を有効化したインスタンスのバックアップ中、顧客管理の暗号鍵は、ユーザーのクエリやレスポンスなどのユーザーデータを暗号化します。CMEK を有効化したインスタンスからのバックアップは、ソース インスタンスと同じ KMS の鍵を使用した暗号化を継承します。
インスタンスの復元 CMEK を有効化したインスタンスの復元中、Cloud SQL は鍵を使用して、復元されるバックアップ インスタンスのデータにアクセスします。別のインスタンスに復元する場合、ターゲット インスタンスは暗号化に別の鍵を使用できます。
レプリカの作成 CMEK を有効化したインスタンスからのリードおよびフェイルオーバー レプリカは、マスター インスタンスと同じ KMS の鍵を使用した CMEK の暗号化を継承します。
クローンの作成 CMEK を有効化したインスタンスのクローンは、ソース インスタンスと同じ KMS の鍵を使用した CMEK の暗号化を継承します。
インスタンスの更新 CMEK を有効化したインスタンスの更新中、Cloud SQL は CMEK の鍵をチェックします。

CMEK を有効化した Cloud SQL インスタンスをサポートするロケーションはどこですか?

CMEK は、すべての Cloud SQL インスタンスのロケーションで使用できます。

サービス アカウントについて

Cloud SQL インスタンスで CMEK が有効になっている場合、サービス アカウントを使用して kms_name_short から鍵のアクセスをリクエストする必要があります。

プロジェクトで顧客管理の暗号鍵を使用するには、サービス アカウントを作成し、顧客管理の暗号鍵にサービス アカウントへのアクセス権を付与する必要があります。プロジェクト内でサービス アカウントを作成します。サービス アカウントはすべてのリージョンで表示されます。

鍵について理解する

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 はその鍵バージョンで暗号化されたインスタンスを再開します。

鍵をローテーションすると、その鍵で暗号化されたインスタンスは、新しいメインの鍵バージョンでは再暗号化されません。

CMEK で暗号化されたデータを完全にアクセスできなくするにはどうすればよいですか?

CMEK で暗号化されたデータを完全に破棄したい場合があります。これを行うには、顧客管理の暗号鍵バージョンを破棄します。キーリングまたは鍵は破棄できませんが、鍵の鍵バージョンは破棄できます。

CMEK を有効化したインスタンスからエクスポートされたデータをインポートするにはどうすればよいですか?

CMEK を有効化したインスタンスに以前にデータが保存されていた場合、新しいインスタンスにデータをインポートするための特別な要件や制限はありません。

制限事項

顧客管理の暗号鍵を使用する場合は次の制限が適用されます。

  • 既存のインスタンスで鍵バージョンをローテーションすることはできません。
  • 別の鍵バージョンをレプリカに割り当てることはできません。
  • クローンに別の鍵バージョンを割り当てることはできません。
  • 顧客管理の暗号鍵を使用して暗号化することはできません。

    • 外部サーバー(外部マスター インスタンスと外部レプリカ)
    • インスタンス ID、データベースのバージョン、マシンタイプ、フラグ、バックアップ スケジュールなどのインスタンス メタデータ。
    • MySQL 第 1 世代インスタンス
  • 顧客管理の暗号鍵を使用して、ユーザークエリやレスポンスなどの送信中のユーザーデータを暗号化することはできません。

次のステップ