顧客管理の暗号鍵(CMEK)について

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

CMEK を使用すべきユーザー

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

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

CMEK 機能を使用すると、独自の暗号鍵を Memorystore for Redis Cluster の保存データに使用できます。CMEK 対応の Memorystore for Redis Cluster インスタンスの場合、Google はユーザーの鍵を使用してすべての保存データにアクセスします。

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

  • DEK 暗号化: Memorystore は DEK を使用して、Memorystore for Redis Cluster のデータを暗号化します。
  • KEK 暗号化: Memorystore は KEK を使用して DEK を暗号化します。

Memorystore for Redis Cluster インスタンスは、暗号化された DEK と暗号化されたデータをディスクに保存し、Google は Google KEK を管理します。CMEK を使用して、Google KEK をラップする鍵を作成します。CMEK を使用すると、KEK の作成無効化または破棄ローテーション有効化または復元を行うことができます。

次の図は、デフォルトの Google 管理の暗号化と CMEK を使用した場合の Memorystore for Redis Cluster インスタンス内での保存データの暗号化の仕組みを示しています。

CMEK を使用しない場合

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

CMEK を使用する場合

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

CMEK でラップされたデータを復号する場合、Memorystore は Cloud Key Management Service の KEK を使用して DEK を復号し、復号した DEK を使用して保存されたデータを復号します。

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

料金

Memorystore for Redis Cluster では、CMEK を有効にしたクラスタに対して他のクラスタと同様に課金されます。追加料金は発生しません。詳細については、Memorystore for Redis Cluster の料金をご覧ください。

Cloud KMS API を使用して CMEK を管理します。CMEK を使用して Memorystore for Redis クラスタ インスタンスを作成すると、Memorystore は鍵を定期的に使用してデータを暗号化し、鍵の権限が正しく、鍵が有効になっていることを確認します。

Memorystore for Redis Cluster が鍵を使用すると、Cloud KMS から鍵の費用と暗号化 / 復号オペレーションの費用が請求されます。詳細については、Cloud KMS の料金をご覧ください。

CMEK を使用してどのようなデータが暗号化されますか?

CMEK は、永続ストレージに保存されている次のタイプの顧客データを暗号化します。

  • バックアップ: バックアップを使用すると、データを特定の時点に復元したり、データをエクスポートして分析したりできます。バックアップは、障害復旧、データ移行、データ共有、コンプライアンスのシナリオにも役立ちます。
  • 永続性: Memorystore for Redis Cluster は、次の 2 種類の永続性をサポートしています。
    • RDB 永続性: Redis データベース(RDB)機能は、耐久性の高いストレージにデータのスナップショットを保存することでデータを保護します。
    • AOF 永続性: この機能はデータの耐久性を優先します。すべての書き込みコマンドを Append-Only File(AOF)と呼ばれるログファイルに記録することで、データを耐久的に保存します。システム障害または再起動が発生すると、サーバーは AOF ファイル コマンドを順番に再生してデータを復元します。

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

CMEK を使用してインスタンスを作成する場合は、cloudkms.cryptoKeyEncrypterDecrypter ロールを次の形式の Memorystore for Redis Cluster サービス アカウントに付与する必要があります。

  • service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com

この権限を付与することで、サービス アカウントは Cloud KMS から鍵のアクセスをリクエストできるようになります。

この権限をサービス アカウントに付与する手順については、Memorystore for Redis Cluster サービス アカウントに鍵へのアクセス権を付与するをご覧ください。

鍵について

Cloud KMS では、対称暗号化アルゴリズムを使用する暗号鍵を使用してキーリングを作成する必要があります。新しい Memorystore for Redis Cluster インスタンスを作成する場合は、この鍵を選択してインスタンスを暗号化します。鍵とインスタンスの両方に対し 1 つのプロジェクトを作成できます。また、それぞれに異なるプロジェクトを作成することもできます。

CMEK は、すべての Memorystore for Redis Cluster インスタンスのロケーションで使用できます。鍵とキーリングのリージョンは、インスタンスと同じリージョンに設定する必要があります。マルチリージョンまたはグローバル リージョン鍵は使用できません。リージョンが一致しない場合、インスタンスの作成リクエストは失敗します。

CMEK は次の形式を使用します。

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[KEY_RING_NAME]/cryptoKeys/[KEY_NAME]

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

CMEK で暗号化されたデータを永続的に破棄する必要が生じることも考えられます。これを行うには、鍵バージョンを破棄します。キーリングや鍵の破棄はできませんが、鍵のバージョンは破棄できます。

CMEK 鍵バージョンの動作

このセクションでは、鍵バージョンの無効化、破棄、ローテーション、有効化、復元を行うとどうなるかについて説明します。

CMEK 鍵バージョンを無効にするか破棄する

CMEK のプライマリ鍵バージョンを無効にするか破棄すると、バックアップと永続性について次の条件が適用されます。

バックアップ

永続性

  • 永続性を有効にすると、Memorystore for Redis Cluster はメンテナンスで使用されるものと同様の更新を実行し、永続性機能を無効にします。この機能の料金は請求されなくなります。
  • Memorystore for Redis Cluster は、CMEK を使用して新しいデータを永続ストレージにフラッシュしません。
  • Memorystore for Redis Cluster は、永続ストレージに存在する既存のデータを読み取ることができません。
  • 主キーのバージョンを有効にするか復元するまで、永続性を更新または再有効化することはできません。

CMEK の主キー バージョンを有効にしても、古い鍵バージョンを無効にするか破棄すると、バックアップと永続性について次の条件が適用されます。

  • バックアップを作成できます。ただし、バックアップが、無効または破棄された古い鍵バージョンで暗号化されている場合、バックアップにはアクセスできません。
  • 永続性を有効にすると、この機能は有効なままになります。永続性で使用されている古い鍵バージョンが無効または破棄されると、Memorystore for Redis クラスタはメンテナンスで使用されるものと同様の更新を実行し、主キー バージョンでデータを再暗号化します。

プライマリ CMEK 鍵バージョンをローテーションする

CMEK のプライマリ鍵バージョンをローテーションして新しいプライマリ鍵バージョンを作成すると、バックアップと永続性について次の条件が適用されます。

  • CMEK の最新のプライマリ鍵バージョンで新しいバックアップが暗号化されます。
  • 既存のバックアップでは、再暗号化は行われません。
  • 永続性の場合、VM はアクションを実行しません。VM は、次のメンテナンス イベントまで古い鍵バージョンを引き続き使用します。

プライマリ CMEK 鍵バージョンを有効にするか復元する

CMEK のプライマリ鍵バージョンを有効にするか復元すると、バックアップと永続性について次の条件が適用されます。

  • オンデマンド バックアップと自動バックアップを再度作成できます。
  • Memorystore for Redis Cluster は、メンテナンスで使用されるものと同様の更新を実行し、永続性を再度有効にします。

制限事項

Memorystore for Redis Cluster で CMEK を使用する場合、次の制限が適用されます。

  • 既存の Memorystore for Redis Cluster デプロイで CMEK を有効にすることはできません。
  • 鍵、キーリング、インスタンスのリージョンはすべて同じである必要があります。
  • 鍵には対称暗号化アルゴリズムを使用する必要があります。
  • Cloud KMS の暗号化と復号の割合は、割り当ての対象になります。