En esta página, se muestra cómo encriptar datos en tus instancias y copias de seguridad de Filestore con tus propias claves de encriptación.
De forma predeterminada, Google Cloud encripta los datos cuando están en reposo de forma automática mediante claves de encriptación que son propiedad de Google y las administra. Si necesitas más control sobre las claves que protegen tus datos, puedes usar claves de encriptación administradas por el cliente para Filestore.
Opciones de claves de encriptación administradas por el cliente
Cloud Key Management Service es compatible con claves de encriptación administradas por el cliente (CMEK), que se pueden almacenar como claves de software, como claves de hardware en un clúster de HSM o de forma externa en 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 para Filestore ahora tiene disponibilidad general (GA). 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 es responsable de la disponibilidad de las claves.
Si External Key Manager (EKM) notifica que no se puede acceder a una clave externa, los usuarios reciben una notificación de ekm_key_unreachable_detected
si a Cloud Key Management Service (Cloud KMS). Durante 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 aplican las siguientes acciones:
- 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 instancia puede interrumpirse antes de una hora.
Las notificaciones de claves inaccesibles se pueden ver desde la página de detalles de la instancia de Filestore:
Vaya a la página de instancias de Filestore
Los usuarios también reciben notificaciones de ekm_key_unreachable_detected
sobre cualquiera de las siguientes operaciones si se realizan en el plazo de una hora a partir de la primera notificación informada:
- Cómo revertir una instantánea
- Crea una copia de seguridad de una instancia
- Cómo borrar una copia de seguridad
- Restablece una instancia a partir de una copia de seguridad
- Actualiza o aplica parches a una instancia
Niveles admitidos
En la siguiente tabla, se muestran los niveles de servicio de Filestore que admiten claves de encriptación administradas por el cliente:
Nivel | Compatibilidad con CMEK |
---|---|
HDD básico | No |
SSD básico | No |
Zonal | Sí |
Regional | Sí |
Enterprise | Sí |
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 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 deseas usar con Filestore, pasa a la siguiente sección. De lo contrario, sigue las instrucciones que se indican en Crea claves de encriptación simétricas para crear 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 una 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
).
Las cuentas de servicio de Filestore se crean 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
Reemplaza INSTANCE_PROJECT_NUMBER_OR_ID por el número o el ID del proyecto en el que deseas crear la instancia de Filestore.
Asigna a la cuenta de servicio de Filestore la función de Encriptador/Desencriptador de CryptoKey de Cloud KMS mediante la ejecución del 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 o ID del proyecto que contiene la clave de Cloud KMS que deseas usar.
- INSTANCE_PROJECT_NUMBER por el número del proyecto (no el ID) del proyecto en el que deseas crear la instancia de Filestore
Crea una instancia que use tu clave de Cloud KMS
Consola de Google Cloud
Si deseas crear una instancia que use tu clave de Cloud KMS para la encriptación de datos, haz lo siguiente:
En la consola de Google Cloud, ve a la página Instancias de Filestore.
Haz clic en Crear instancia.
Selecciona un nivel de instancia que admita CMEK y completa todos los demás campos obligatorios y opcionales como lo harías normalmente.
Haga clic en Show advanced options.
Selecciona la casilla de verificación Usar una clave de encriptación administrada por el cliente (CMEK).
Selecciona la clave de Cloud KMS que quieres usar para la instancia.
Haz clic en Crear.
gcloud CLI
Si quieres crear una instancia de Filestore que use tu clave de Cloud KMS para la encriptación de 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
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 la clave de Cloud KMS que deseas 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 o ID del 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 la instancia deben estar ubicados en la misma región.
Obtén 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
Reemplaza lo siguiente:
- KMS_PROJECT_NUMBER_OR_ID por el número o ID del 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.
En la columna Nombre del resultado, se da el nombre completamente calificado de las claves existentes. 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
Para enumerar las instancias de Filestore que usan una clave en particular, ejecuta el comando instances list
:
gcloud filestore instances list --filter="kmsKeyName=KMS_KEY"
Reemplaza KMS_KEY por el nombre completamente calificado de la clave que deseas 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 para una instancia de Filestore:
Consola de Google Cloud
Vaya a la página de instancias de Filestore
Haz clic en el ID de la instancia para abrir la página de detalles de la instancia.
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 propiedad de Google y administrada por Google, el nombre de la clave se muestra en el campo 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 la instancia de Filestore de la que deseas obtener información
- INSTANCE_LOCATION por la región o zona en la que se encuentra la instancia.
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 deja de entregar datos automáticamente. 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.
Por lo general, esta detección ocurre unos minutos después del cambio en el estado de la clave, pero en algunos casos puede tomar hasta una hora.
Una vez que se detiene una instancia, se bloquea todo el acceso a los datos del recurso compartido de archivos y a las instantáneas. Las instancias detenidas se siguen facturando hasta que se borran.
Inicia una instancia detenida
Si una instancia de Filestore detenida usa una clave de Cloud KMS para la encriptación de datos, todas las versiones de clave de la clave deben habilitarse o restablecerse antes de reiniciar la instancia.
Una vez que se habilite el estado de la clave de Cloud KMS, la instancia detectará de forma automática los cambios de clave y se reiniciará sin ninguna acción adicional, por lo general, en 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 copias de seguridad.
Las cadenas de copias de seguridad residen en un solo bucket y región. Para almacenar y encriptar datos de copia de seguridad en una región fuera de la instancia de origen, los usuarios deben aplicar dos CMEK independientes: 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, primero debes borrar toda la cadena de copia de seguridad existente.
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?
- Obtén más información sobre cómo aplicar una política de la organización de CMEK.
- Más información sobre CMEK.
- Obtén más información sobre la encriptación en tránsito en Google Cloud.