顧客管理の暗号鍵(CMEK)を使用する

顧客管理の暗号鍵(CMEK)を使用すると、鍵を制御できます。これにより、保護レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud Key Management Service(KMS)でこれらの鍵の制御と管理を行います。

始める前に

  1. ユーザー アカウントに Redis 管理者のロールがあることを確認します。

    [IAM] ページに移動

CMEK を使用するクラスタを作成するワークフロー

  1. Memorystore for Redis Cluster のクラスタを配置する場所にキーリングを作成します。

  2. 鍵の名前(KEY_NAME)、鍵のロケーション、キーリングの名前(KEY_RING)をコピーするか書き留めます。この情報は、サービス アカウントに鍵へのアクセス権を付与するときに必要になります。

  3. Memorystore for Redis Cluster サービス アカウントに鍵へのアクセス権を付与します。

  4. プロジェクトに移動し、キーリングと鍵と同じリージョンで CMEK を有効にして Memorystore for Redis Cluster にクラスタを作成します。

CMEK でクラスタが有効になります。

キーリングと鍵を作成する

鍵リングを作成します。両方とも、Memorystore for Redis Cluster のクラスタと同じリージョンに存在する必要があります。鍵が同じリージョンにある限り、別のプロジェクトの鍵であっても問題ありません。また、鍵には対称暗号化アルゴリズムを使用する必要があります。

キーリングと鍵を作成したら、KEY_NAME、鍵のロケーション、KEY_RING をコピーするか書き留めます。この情報は、サービス アカウントに鍵へのアクセス権を付与するときに必要になります。

Memorystore for Redis Cluster サービス アカウントに鍵へのアクセス権を付与する

CMEK を使用する Memorystore for Redis Cluster にクラスタを作成する前に、特定の Memorystore for Redis Cluster サービス アカウントに鍵へのアクセス権を付与する必要があります。

gcloud CLI を使用して、サービス アカウントに鍵へのアクセス権を付与できます。サービス アカウントにアクセス権を付与するには、次の形式を使用します。

  service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
  

gcloud

サービス アカウントに鍵へのアクセス権を付与するには、gcloud kms keys add-iam-policy-binding コマンドを使用します。

gcloud kms keys add-iam-policy-binding  \
projects/PROJECT_ID/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

次のように置き換えます。

  • PROJECT_ID: キーリングを含むプロジェクトの ID または番号
  • REGION_ID: キーリングが配置されているリージョン
  • KEY_RING: 鍵を含むキーリングの名前
  • KEY_NAME: サービス アカウントにアクセス権を付与する鍵の名前
  • PROJECT_NUMBER: サービス アカウントを含むプロジェクトの ID または番号

CMEK を使用するクラスタを作成する

CMEK を使用するクラスタは、gcloud CLI を使用して作成できます。

gcloud

CMEK を使用するクラスタを作成するには、gcloud redis clusters create コマンドを使用します。

gcloud redis clusters create CLUSTER_ID \
--project=PROJECT_NAME \
--region=REGION_ID \
--network=NETWORK_ID \
--kms-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME \
--shard-count=SHARD_NUMBER \
--persistence-mode=PERSISTENCE_MODE

次のように置き換えます。

  • CLUSTER_ID: 作成するクラスタの ID。
  • PROJECT_NAME: クラスタを作成するプロジェクトの名前。
  • REGION_ID: クラスタを配置するリージョンの ID。
  • NETWORK_ID: クラスタの作成に使用するネットワークの ID。
  • KEY_RING: 鍵を含むキーリングの名前。
  • KEY_NAME: 鍵の名前
  • SHARD_NUMBER: クラスタに必要なシャードの数。
  • PERSISTENCE_MODE: クラスタの永続モード。このモードは次のいずれかの値に設定できます。
    • aof: クラスタの Append-Only File(AOF)ベースの永続性を有効にします。
    • disabled: クラスタの永続性を無効にします。
    • rdb: クラスタの Redis データベース(RDB)ベースの永続性を有効にします。

CMEK 対応クラスタの鍵情報を表示する

CMEK 対応クラスタに関する情報は、gcloud CLI を使用して表示できます。この情報には、クラスタで CMEK が有効になっているかどうかと、有効な鍵が含まれます。

gcloud

CMEK が有効かどうかを確認し、キー参照を確認するには、gcloud redis clusters describe コマンドを使用して encryptionInfo フィールドと kmsKey フィールドを表示します。

gcloud redis clusters describe CLUSTER_ID \
--project=PROJECT_NAME \
--region=REGION_ID

次のように置き換えます。

  • CLUSTER_ID: 情報を表示するクラスタの ID
  • PROJECT_NAME: クラスタを含むプロジェクトの名前
  • REGION_ID: クラスタが配置されているリージョンの ID

鍵バージョンを管理する

鍵バージョンの無効化、破棄、ローテーション、有効化、復元を行うとどうなるかについては、CMEK 鍵バージョンの動作をご覧ください。

鍵バージョンの無効化と再有効化の手順については、鍵バージョンの有効化と無効化をご覧ください。

鍵バージョンの破棄と復元の手順については、鍵バージョンの破棄と復元をご覧ください。

次のステップ