Si usas claves de cifrado gestionadas por el cliente (CMEK), tendrás control sobre tus claves. De esta forma, puedes controlar el nivel de protección, la ubicación, el calendario de rotación, los permisos de uso y acceso, y los límites criptográficos. En lugar de que Google sea el propietario y el gestor de las claves de encriptado simétricas (KEKs) que protegen tus datos, tú controlas y gestionas estas claves en Cloud Key Management Service (KMS).
Antes de empezar
Asegúrate de que tu cuenta de usuario tenga el rol de administrador de Redis.
Flujo de trabajo para crear una instancia que use CMEK
Crea un conjunto de claves y una clave en la ubicación en la que quieras que esté la instancia de Memorystore para Redis.
Copia o anota el nombre de la clave (
KEY_NAME), la ubicación de la clave y el nombre del conjunto de claves (KEY_RING). Necesitarás esta información para conceder acceso a la clave a la cuenta de servicio.Concede acceso a la clave a la cuenta de servicio de Memorystore para Redis.
Ve a un proyecto y crea una instancia de Memorystore para Redis con la CMEK habilitada en la misma región que el conjunto de claves y la clave.
Tu instancia de Memorystore para Redis ahora tiene habilitada la CMEK.
Crear un conjunto de claves y una clave
Crea un conjunto de claves y una clave. Ambos deben estar en la misma región que tu instancia de Memorystore para Redis. La clave puede ser de otro proyecto, siempre que esté en la misma región. Además, la clave debe usar el algoritmo de cifrado simétrico.
Después de crear el conjunto de claves y la clave, copia o anota el KEY_NAME, la ubicación de la clave y el KEY_RING. Necesitarás esta información cuando concedas acceso a la clave a la cuenta de servicio.
Concede a la cuenta de servicio de Memorystore for Redis acceso a la clave
Para crear una instancia de Memorystore para Redis que use CMEK, debes conceder acceso a la clave a una cuenta de servicio específica de Memorystore para Redis. Puedes conceder acceso a la clave a la cuenta de servicio mediante la Google Cloud consola Google Cloud o la CLI de Google Cloud.
Para conceder acceso a la cuenta de servicio, usa el siguiente formato:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
Consola
Concedes acceso a la clave a la cuenta de servicio como parte de los pasos para crear una instancia de Memorystore para Redis que use CMEK.
gcloud
Para conceder acceso a la clave a la cuenta de servicio, usa el comando
gcloud kms keys add-iam-policy-binding.
gcloud kms keys add-iam-policy-binding KEY_NAME \ --location=REGION_ID \ --keyring=KEY_RING \ --member=serviceAccount:service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Haz las siguientes sustituciones:
- KEY_NAME: el nombre de la clave a la que quieres dar acceso a la cuenta de servicio
- REGION_ID: la región en la que se encuentra el conjunto de claves
- KEY_RING: el nombre del conjunto de claves que contiene la clave
- PROJECT_NUMBER: el ID o el número del proyecto que contiene la cuenta de servicio
Crear una instancia de Memorystore para Redis que use CMEK
Puedes crear una instancia que use CMEK mediante la Google Cloud consola o la CLI de gcloud.
Consola
Asegúrate de crear un conjunto de claves y una clave en la misma región en la que quieras crear tu instancia.
Sigue las instrucciones del artículo Crear una instancia de Redis en una red de VPC hasta que llegues al paso para habilitar CMEK. Después, vuelve a estas instrucciones.
Selecciona Usar una clave de cifrado gestionada por el cliente (CMEK).
Para seleccionar la tecla, usa el menú.
Seleccione el resto de las configuraciones de la instancia y, a continuación, haga clic en Crear.
gcloud
Para crear una instancia que use CMEK, usa el comando
gcloud redis instances create.
gcloud redis instances create INSTANCE_ID \ --size=SIZE \ --region=REGION_ID \ --customer-managed-key=projects/PROJECT_NAME/locations/REGION_ID/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Haz las siguientes sustituciones:
- INSTANCE_ID: el ID de la instancia que vas a crear
- SIZE: el tamaño de la instancia que quieres crear, en gibibytes (GiB)
- REGION_ID: el ID de la región en la que quieres que se encuentre la instancia.
- PROJECT_NAME: el nombre del proyecto en el que quieres crear la instancia
- KEY_RING: el nombre del conjunto de claves que contiene la clave
- KEY_NAME: el nombre de la clave.
Ver información clave de una instancia habilitada para CMEK
Para ver información clave de una instancia habilitada para CMEK, puedes usar laGoogle Cloud consola o la CLI de gcloud. Esta información incluye la clave activa y si CMEK está habilitada en tu instancia.
Consola
En la Google Cloud consola, ve a la página Instancias.
Haz clic en el ID de tu instancia.
En el panel de la izquierda, haz clic en la pestaña Seguridad. La página Seguridad contiene un enlace a la clave activa y muestra la ruta de referencia de la clave. Si no aparece esta información, significa que no has habilitado CMEK en tu instancia.
gcloud
Para verificar si CMEK está habilitada y ver la referencia de la clave, usa el comando gcloud redis instances describe para ver el campo customerManagedKey.
gcloud redis instances describe INSTANCE_ID \ --project=PROJECT_NAME \ --region=REGION_ID
Haz las siguientes sustituciones:
- INSTANCE_ID: el ID de la instancia sobre la que quieres ver información
- PROJECT_NAME: el nombre del proyecto que contiene la instancia
- REGION_ID: el ID de la región en la que se encuentra la instancia.
Gestionar versiones de clave
Para obtener información sobre lo que ocurre cuando se inhabilita, destruye, rota, habilita y restaura una versión de una clave, consulta Comportamiento de una versión de clave de cifrado gestionada por el cliente.
Para obtener instrucciones sobre cómo inhabilitar y volver a habilitar versiones de clave, consulta Habilitar e inhabilitar versiones de clave.
Para obtener instrucciones sobre cómo destruir y restaurar versiones de clave, consulta Destruir y restaurar versiones de clave.