Encriptar datos con claves de encriptado gestionadas por el cliente (CMEK)

De forma predeterminada, Filestore cifra el contenido del cliente en reposo. Filestore se encarga del cifrado sin que tengas que hacer nada más. Esta opción se llama Cifrado predeterminado de Google.

Si quieres controlar tus claves de encriptado, puedes usar claves de encriptado gestionadas por el cliente (CMEKs) en Cloud KMS con servicios integrados con CMEKs, como Filestore. Si usas claves de Cloud KMS, tendrás control sobre su nivel de protección, ubicación, calendario de rotación, permisos de uso y acceso, y límites criptográficos. Además, Cloud KMS te permite ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y gestione las claves de cifrado de claves (KEKs) simétricas que protegen tus datos, tú controlas y gestionas estas claves en Cloud KMS.

Una vez que hayas configurado tus recursos con CMEKs, la experiencia de acceder a tus recursos de Filestore será similar a la de usar el cifrado predeterminado de Google. Para obtener más información sobre las opciones de encriptado, consulta Claves de encriptado gestionadas por el cliente (CMEK).

Las CMEKs se pueden usar con instancias y copias de seguridad de Filestore.

Opciones de CMEK

Filestore admite CMEKs almacenadas como claves de software, como claves de hardware en un clúster de HSM y como claves almacenadas externamente en Cloud External Key Manager (Cloud EKM).

Para obtener más información, consulta Cloud Key Management Service.

Interrupciones del servicio de EKM

Por diseño, las claves externas las gestiona un tercero. En estas circunstancias,Google Cloud no se responsabiliza de la disponibilidad de las claves.

Si Cloud Key Management Service (Cloud KMS) recibe una notificación de External Key Manager (EKM) que indica que no se puede acceder a una clave externa, los usuarios recibirán una ekm_key_unreachable_detected notificación. Durante un máximo de una hora, los usuarios tienen acceso limitado a las operaciones de la instancia. Si el estado de la clave no cambia en una hora, se aplican las siguientes acciones:

  • La clave está inhabilitada.
  • Todas las operaciones de cifrado y descifrado fallan.
  • La instancia de Filestore está suspendida.

En algunos casos, como un evento imprevisto (por ejemplo, el reinicio de una VM), el acceso a la instancia puede interrumpirse antes de una hora.

Las notificaciones de claves inaccesibles se pueden ver en la página de detalles de la instancia de Filestore:

Ve a la página Instancias de Filestore.

Los usuarios también reciben ekm_key_unreachable_detected notificaciones sobre cualquiera de las siguientes operaciones si se realizan en el plazo de una hora desde la primera notificación:

Niveles admitidos

En la siguiente tabla se muestran los niveles de servicio de Filestore que admiten CMEKs:

Nivel Compatibilidad con CMEK
HDD básico No
SSD básico No
Por zonas
Regional
Empresa

Crear un conjunto de claves y una clave para usar con tu instancia

El conjunto de claves y la clave pueden estar en un proyecto distinto de la instancia de Filestore, pero deben estar en la misma ubicación. Si ya tienes un llavero de claves y una clave de Cloud KMS que quieres usar con Filestore, ve a la siguiente sección. De lo contrario, sigue las instrucciones para crear claves de cifrado simétricas y, a continuación, crea un conjunto de claves y una clave.

Conceder permiso de acceso a la clave a la cuenta de servicio de Filestore

Para poder crear una instancia de Filestore que use una CMEK, la cuenta de servicio de Filestore debe tener el rol de encargado de cifrar o descifrar claves de CryptoKey de Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter).

  1. Se crea una cuenta de servicio de Filestore la primera vez que creas una instancia de Filestore en el proyecto. Si aún no tienes una cuenta de servicio de Filestore, ejecuta el siguiente comando services identity create:

    gcloud beta services identity create --service=file.googleapis.com --project=INSTANCE_PROJECT_NUMBER_OR_ID
    

    Sustituye INSTANCE_PROJECT_NUMBER_OR_ID por el número o el ID del proyecto en el que quieras crear la instancia de Filestore.

  2. Asigna a la cuenta de servicio de Filestore el rol Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS ejecutando el comando projects add-iam-policy-binding:

    gcloud projects add-iam-policy-binding KMS_PROJECT_NUMBER_OR_ID \
        --member serviceAccount:service-INSTANCE_PROJECT_NUMBER@cloud-filer.iam.gserviceaccount.com \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Haz los cambios siguientes:

    • KMS_PROJECT_NUMBER_OR_ID con el número o el ID del proyecto que contiene la clave de Cloud KMS que quieres usar.
    • INSTANCE_PROJECT_NUMBER con el número de proyecto (no el ID del proyecto) en el que quieras crear la instancia de Filestore.

Crear una instancia que use tu clave de Cloud KMS

Google Cloud consola

Para crear una instancia que use tu clave de Cloud KMS para cifrar datos, sigue estos pasos:

  1. En la consola, ve a la página de instancias de Filestore. Google Cloud

    Ve a la página Instancias de Filestore.

  2. Haz clic en Crear instancia.

  3. Seleccione un nivel de instancia que admita CMEKs y rellene todos los demás campos obligatorios y opcionales como lo haría normalmente.

  4. Haz clic en Mostrar opciones avanzadas.

  5. Marca la casilla Usar una clave de encriptado gestionada por el cliente (CMEK).

  6. Selecciona la clave de Cloud KMS que quieras usar en la instancia.

  7. Haz clic en Crear.

CLI de gcloud

Para crear una instancia de Filestore que use tu clave de Cloud KMS para cifrar datos, especifica la marca --kms-key en el comando filestore instances create:

gcloud filestore instances create nfs-server \
    --tier=<var>TIER</var> \
    --location=us-central1 \
    --file-share=name="vol1",capacity=1TiB \
    --network=name="default" \
    --kms-key=KMS_KEY

Haz los cambios siguientes:

  • TIER con un nivel de Filestore que admita las CMEKs.
  • KMS_KEY con el nombre completo de la clave de Cloud KMS que quieras usar. También puedes especificar cada argumento por separado con el siguiente formato:
--kms-key=KMS_KEY : --kms-keyring=KEY_RING --kms-location=KMS_REGION --kms-project=KMS_PROJECT_NUMBER_OR_ID

Haz los cambios siguientes:

  • KMS_KEY con el nombre de la clave de Cloud KMS.
  • KMS_PROJECT_NUMBER_OR_ID por el número o el ID del proyecto en el que se crea la clave.
  • KMS_KEY_RING con el nombre del conjunto de claves.
  • KMS_REGION con la región del conjunto de claves. El conjunto de claves y la instancia deben estar en la misma región.

Obtener una lista de claves

Para obtener una lista de claves, ejecuta el comando kms keys list:

  gcloud kms keys list \
  --project=KMS_PROJECT_NUMBER_OR_ID \
  --keyring=KEY_RING \
  --location=KMS_REGION

Haz los cambios siguientes:

  • KMS_PROJECT_NUMBER_OR_ID por el número o el ID del proyecto en el que se crea la clave.
  • KEY_RING con el nombre del conjunto de claves.
  • KMS_REGION con la región del conjunto de claves.

La columna Nombre de la salida muestra el nombre completo de las claves existentes. Por ejemplo:

projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key

Obtener información sobre la clave de instancia

En las siguientes secciones se explica cómo obtener información sobre la clave de instancia.

Listar las instancias que usan una clave de Cloud KMS concreta

Para mostrar las instancias de Filestore que usan una clave concreta, ejecuta el comando instances list:

gcloud filestore instances list --filter="kmsKeyName=KMS_KEY"

Sustituye KMS_KEY por el nombre completo de la clave que quieras usar.

Ejemplo:

gcloud filestore instances list \
    --filter="kmsKeyName=projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key"

El resultado tiene este aspecto:

INSTANCE_NAME LOCATION    TIER       CAPACITY_GB FILE_SHARE_NAME IP_ADDRESS   STATE CREATE_TIME
nfs-server    us-central1 ENTERPRISE 1024        vol1            10.166.108.2 READY 2021-08-12T11:38:56

Obtener información de la clave de Cloud KMS de una instancia

Usa uno de los siguientes métodos para obtener información sobre la clave de Cloud KMS de una instancia de Filestore:

Google Cloud consola

  1. Ve a la página Instancias de Filestore.

    Ve a la página Instancias de Filestore.

  2. Haz clic en el ID de la instancia para abrir la página de detalles de la instancia.

  3. Haga clic en la pestaña Descripción general.

Si la instancia cifra los datos con una clave de Cloud KMS en lugar de con unaGoogle-owned and Google-managed encryption key, el nombre de la clave se muestra en el campo Clave de cifrado.

CLI de gcloud

Ejecuta el siguiente comando instances describe:

gcloud filestore instances describe INSTANCE_ID \
   --location=INSTANCE_LOCATION

Haz los cambios siguientes:

  • INSTANCE_ID con el ID de instancia de la instancia de Filestore de la que quieras obtener información.
  • INSTANCE_LOCATION por la región o la zona en la que se encuentra la instancia.

El resultado tiene este aspecto:

createTime: '2021-08-12T11:38:56.851157387Z'
fileShares:
- capacityGb: '1024'
  name: vol1
kmsKeyName: projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key
labels:
  key: val
name: projects/consumer-project/locations/us-central1/instances/nfs-server
networks:
- ipAddresses:
  - 10.0.100.2
  modes:
  - MODE_IPV4
  network: network
  reservedIpRange: 10.166.108.0/23
state: READY
tier: ENTERPRISE

Inhabilitar o destruir una clave de Cloud KMS que utilice una instancia

Si se detecta un cambio en el estado de la clave de Cloud KMS, la instancia dejará de servir datos automáticamente. Estos son algunos ejemplos:

  • Inhabilitar una clave o una versión de clave.
  • Destruir una clave o una versión de clave.
  • Modificar los permisos de una clave.

Esta detección suele producirse en cuestión de minutos después de que cambie el estado de la clave, pero en algunos casos puede tardar hasta una hora.

Una vez que se detiene una instancia, se bloquea el acceso a los datos del sistema de archivos compartidos y a las capturas. Las instancias detenidas se siguen facturando hasta que se eliminan.

Iniciar una instancia detenida

Si una instancia de Filestore detenida usa una clave de Cloud KMS para cifrar datos, todas las versiones de la clave deben estar habilitadas o restauradas antes de reiniciar la instancia.

Una vez que se habilita el estado de la clave de Cloud KMS, la instancia detectará automáticamente los cambios de clave y se reiniciará sin que tengas que hacer nada más, normalmente en un plazo de 20 minutos.

Compatibilidad con CMEK para cadenas de copias de seguridad

Puedes usar CMEKs para cifrar no solo tus instancias de Filestore, sino también tus cadenas de copia de seguridad.

La compatibilidad con CMEK no está disponible para las copias de seguridad de nivel básico.

Las cadenas de copias de seguridad se encuentran en un solo segmento y una sola región. Para almacenar y cifrar datos de copias de seguridad en una región que no sea la de la instancia de origen, los usuarios deben aplicar dos CMEKs independientes: una para la instancia y otra para la cadena de copias de seguridad. Se aplican algunos requisitos:

  • Una CMEK debe residir en la misma región que la cadena de copia de seguridad que cifra.
  • Se aplica una sola CMEK al bucket en el que se almacena la cadena de copias de seguridad y no se puede combinar ni sustituir.

Limitaciones de la rotación de claves

Durante la rotación de claves, se crean nuevas claves de cifrado para sustituir a las que ya hay. Las siguientes acciones relacionadas con la rotación de claves pueden impedir que restaures una cadena de copia de seguridad:

  • Desactivar una clave o una versión de clave.
  • Destruir una clave o una versión de clave.
  • Modificar los permisos de las claves.

Estas acciones no impiden que se creen copias de seguridad en la cadena.

Si no puedes restaurar tu cadena de copia de seguridad, sigue estos pasos:

  1. Elimina todas las copias de seguridad.
  2. Inicia una nueva cadena. Puedes usar cualquiera de las siguientes opciones:
    • Crea la copia de seguridad en otra ubicación con la misma clave de encriptado gestionada por el cliente.
    • Crea la copia de seguridad en la misma ubicación con una CMEK nueva.

Para obtener más información, consulta el artículo Introducción a las copias de seguridad.

Siguientes pasos