Encriptar datos con claves de encriptación administradas por el cliente

En esta página, se muestra cómo encriptar datos en Filestore instances y copias de seguridad usando tus propias claves de encriptación.

De forma predeterminada, Google Cloud encripta automáticamente los datos cuando están en resto con claves de encriptación que son propiedad de Google y están administradas por Google. Si necesitas más control claves que protegen tus datos, puedes usar claves de encriptación Filestore

Opciones de claves de encriptación administradas por el cliente

Cloud Key Management Service es compatible con aplicaciones administradas por el cliente claves de encriptación (CMEK) que pueden almacenarse como claves de software, de hardware en un clúster de HSM, o bien, Cloud External Key Manager (Cloud EKM). Hay varias opciones disponibles.

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

Cloud External Key Manager

La compatibilidad de Cloud EKM con Filestore ahora está disponible de forma general (DG). Para obtener más información, consulta Cloud External Key Manager.

Interrupciones del servicio de EKM

Por diseño, un tercero administra las claves externas. en estas circunstancias, Google Cloud no se hace responsable de la disponibilidad de las claves.

Si el servicio Cloud Key Management Service (Cloud KMS) recibe una notificación de External Key Manager (EKM) de que no se pueda acceder a una clave externa, los usuarios recibirán una ekm_key_unreachable_detected notificación. Por una hora, los usuarios tienen acceso limitado a las operaciones de la instancia. Después de una hora, si el estado de la clave no cambia, se realizarán las siguientes acciones: aplicar:

  • La clave está inhabilitada.
  • Todas las operaciones de encriptación y desencriptación fallan.
  • La instancia de Filestore está suspendida.

En algunos casos, como un evento no planificado, como un reinicio de VM, el acceso a la puede interrumpirse antes de una hora.

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

Vaya a la página de instancias de Filestore

Los usuarios también reciben notificaciones de ekm_key_unreachable_detected en cualquiera de las las siguientes operaciones si se realizan dentro de la hora siguiente a la primera vez que se informa notificación:

Niveles admitidos

En la siguiente tabla, se muestran los niveles de servicio de Filestore compatibles con claves de encriptación administradas por el cliente:

Nivel Compatibilidad con CMEK
HDD básico No
SSD básico No
Zonal
Regional
Enterprise

Crea un llavero de claves y una clave para usar con tu instancia

El llavero de claves y la clave pueden estar en un proyecto diferente al 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 Filestore, pasa a la siguiente sección. De lo contrario, sigue las instrucciones sobre cómo crear claves de encriptación simétricas para crea un llavero de claves y una clave.

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

Antes de crear una instancia de Filestore que use un clave de encriptación administrada por el cliente, la cuenta de servicio de Filestore debe tener la función de Encriptador/Desencriptador de CryptoKey de Cloud KMS (roles/cloudkms.cryptoKeyEncrypterDecrypter).

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

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

    Reemplaza INSTANCE_PROJECT_NUMBER_OR_ID por el número del proyecto o ID del proyecto en el que quieres crear Filestore instancia.

  2. Asigna la CryptoKey de Cloud KMS a la cuenta de servicio de Filestore Rol de encriptador o desencriptador 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
    

    Reemplaza lo siguiente:

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

Crea una instancia que use tu clave de Cloud KMS

Consola de Google Cloud

Crear una instancia que use tu clave de Cloud KMS para los datos encriptación:

  1. En la consola de Google Cloud, dirígete a las instancias de Filestore .

    Vaya a la página de instancias de Filestore

  2. Haz clic en Crear instancia.

  3. Selecciona un nivel de instancia que admita CMEK y completa todos campos obligatorios y opcionales como lo harías normalmente.

  4. Haz clic en Mostrar opciones avanzadas.

  5. Selecciona la casilla de verificación Usar una clave de encriptación administrada por el cliente (CMEK).

  6. Selecciona la clave de Cloud KMS que quieres usar para la instancia.

  7. Haz clic en Crear.

gcloud CLI

Para crear una instancia de Filestore que use tu Cloud KMS para la encriptación de datos, especifica la marca --kms-key en 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

Reemplaza lo siguiente:

  • TIER con un nivel de Filestore que admite claves de encriptación administradas por el cliente.
  • KMS_KEY por el nombre completamente calificado de Cloud KMS clave que quieres usar. Como alternativa, puedes especificar cada argumento por separado en el formato:
--kms-key=KMS_KEY : --kms-keyring=KEY_RING --kms-location=KMS_REGION --kms-project=KMS_PROJECT_NUMBER_OR_ID

Reemplaza lo siguiente:

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

Obtén una lista de claves

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

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

Reemplaza lo siguiente:

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

La columna Name del resultado indica el nombre completamente calificado de los recursos existentes claves. Por ejemplo:

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

Obtén información clave de la instancia

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

Enumera las instancias que usan una clave de Cloud KMS específica

Puedes enumerar las instancias de Filestore que usan una clave en particular ejecutando la instances list :

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

Reemplaza KMS_KEY por el nombre completamente calificado de la clave que deseas quieren usar.

Ejemplo:

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

El resultado se ve así:

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

Obtén información de la clave de Cloud KMS para una instancia

Usa uno de los siguientes métodos para obtener información de la clave de Cloud KMS de un Instancia de Filestore:

Consola de Google Cloud

  1. Vaya a la página de instancias de Filestore

    Vaya a la página de instancias de Filestore

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

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

Si la instancia encripta datos con una clave de Cloud KMS en lugar de una clave de Google y administrada por Google, el nombre de la clave se muestra en el Clave de encriptación.

gcloud CLI

Ejecuta el siguiente comando instances describe:

gcloud filestore instances describe INSTANCE_ID \
   --location=INSTANCE_LOCATION

Reemplaza lo siguiente:

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

El resultado se ve así:

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

Inhabilita o destruye una clave de Cloud KMS que usa una instancia

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

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

Esta detección suele ocurrir unos minutos después del cambio en el estado de la clave, pero en algunos casos puede tardar hasta una hora.

Cuando se detiene una instancia, todo el acceso a los datos del recurso compartido de archivos y a las instantáneas se se bloqueó. Las instancias detenidas se siguen facturando hasta que se borran.

Inicia una instancia detenida

Si una instancia detenida de Filestore usa una clave de Cloud KMS por encriptación de datos, todas las versiones de clave de la clave habilitada o restablecerse antes de reiniciar la instancia.

Una vez que se habilita el estado de la clave de Cloud KMS, detectar automáticamente los cambios de clave y reiniciar sin ninguna acción adicional normalmente dentro de 20 minutos.

Compatibilidad de CMEK para cadenas de copias de seguridad

Puedes usar CMEK para encriptar no solo tus instancias de Filestore, sino también tus cadenas de respaldo.

Las cadenas de copias de seguridad residen en un solo bucket y región. Para almacenar y encriptar copias de seguridad en una región fuera de la instancia de origen, los usuarios deben aplicar CMEK: una para la instancia y otra para la cadena de copia de seguridad. Se aplican algunos requisitos:

  • Una CMEK debe residir en la misma región que la cadena de copia de seguridad que encripta.

  • Se aplica una sola CMEK al bucket en el que se almacena la cadena de copia de seguridad y no se puede combinar ni reemplazar.

  • Para crear una copia de seguridad con una CMEK nueva, toda la cadena de copia de seguridad existente primero se deben borrar.

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

Para obtener más información, consulta Copias de seguridad.

¿Qué sigue?