Los Controles del servicio de VPC permiten que las organizaciones definan un perímetro alrededor de los recursos de Google Cloud para mitigar riesgos de robo de datos. Con los Controles del servicio de VPC, creas perímetros que protegen los recursos y datos de los servicios que especificas de forma explícita.
Servicios de Firestore en paquetes
Las siguientes APIs se agrupan en los Controles del servicio de VPC:
firestore.googleapis.com
datastore.googleapis.com
firestorekeyvisualizer.googleapis.com
Cuando restringes el servicio firestore.googleapis.com
a un perímetro, este también restringe los servicios datastore.googleapis.com
y firestorekeyvisualizer.googleapis.com
.
Restringe el servicio datastore.googleapis.com
El servicio datastore.googleapis.com
se incluye en el servicio firestore.googleapis.com
. Para restringir el servicio datastore.googleapis.com
, debes restringir el servicio firestore.googleapis.com
de la siguiente manera:
- Cuando crees un perímetro de servicio con la consola de Google Cloud, agrega Firestore como el servicio restringido.
-
Cuando crees un perímetro de servicio con Google Cloud CLI, usa
firestore.googleapis.com
en lugar dedatastore.googleapis.com
.--perimeter-restricted-services=firestore.googleapis.com
Servicios agrupados en paquetes heredados de App Engine para Datastore
Los servicios de App Engine heredados en paquetes para Datastore no son compatibles con los perímetros de servicio. Proteger el servicio de Datastore con un perímetro de servicio bloquea el tráfico de los servicios heredados en paquetes de App Engine. Los servicios heredados en paquetes incluyen lo siguiente:
- Java 8 Datastore con las APIs de App Engine
- Biblioteca cliente de NDB de Python 2 para Datastore
- Datastore en Go 1.11 con las APIs de App Engine
Protección de salida en las operaciones de importación y exportación
Firestore en modo Datastore admite los Controles del servicio de VPC, pero requiere una configuración adicional para obtener protección de salida completa en las operaciones de importación y exportación. Debes usar el agente de servicio de Firestore para autorizar las operaciones de importación y exportación en lugar de la cuenta de servicio predeterminada de App Engine. Usa las siguientes instrucciones para ver y configurar la cuenta de autorización para las operaciones de importación y exportación.
Agente de servicio de Firestore
Firestore usa un agente de servicio de Firestore para autorizar las operaciones de importación y exportación en lugar de usar la cuenta de servicio de App Engine. El agente de servicio y la cuenta de servicio usan las siguientes convenciones de nombres:
- Agente de servicio de Firestore
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Anteriormente, Firestore usaba la cuenta de servicio predeterminada de App Engine en lugar del agente de servicio de Firestore. Si tu base de datos aún usa la cuenta de servicio de App Engine para importar o exportar datos, te recomendamos que sigas las instrucciones de esta sección para migrar al agente de servicio de Firestore.
- Cuenta de servicio de App Engine
PROJECT_ID@appspot.gserviceaccount.com
Se prefiere el agente de servicio de Firestore porque es específico de Firestore. Más de un servicio comparte la cuenta de servicio de App Engine.
Visualiza la cuenta de autorización
Puedes ver qué cuenta usan tus operaciones de importación y exportación para autorizar solicitudes desde la página Importaciones/Exportaciones en la consola de Google Cloud. También puedes ver si tu base de datos ya usa el agente de servicio de Firestore.
-
En la consola de Google Cloud, ve a la página Bases de datos.
- Selecciona la base de datos requerida de la lista.
-
En el menú de navegación, haz clic en Importar/Exportar.
- Consulta la cuenta de autorización junto a la etiqueta Los trabajos de importación o exportación se ejecutan como.
Si tu proyecto no usa el agente de servicio de Firestore, puedes migrar al agente de servicio de Firestore con cualquiera de estas técnicas:
- Revisa y actualiza los permisos del bucket de Cloud Storage (recomendado) para migrar un proyecto.
- Agrega una restricción de política para toda la organización que afecte a todos los proyectos dentro de la organización.
La primera de estas técnicas es preferible porque localiza el alcance del efecto a un solo proyecto del modo Datastore. No se prefiere la segunda técnica, ya que no migra los permisos del bucket de Cloud Storage existentes. Sin embargo, sí ofrece el cumplimiento de seguridad a nivel de la organización.
Revisa y actualiza los permisos del bucket de Cloud Storage para migrar un proyecto
El proceso de migración consta de dos pasos:
- Actualizar los permisos del bucket de Cloud Storage (consulta la siguiente sección para obtener más detalles).
- Confirma la migración al agente de servicio de Firestore.
Permisos del agente de servicio sobre el bucket
Para cualquier operación de importación o exportación que use un bucket de Cloud Storage de otro proyecto, debes otorgar permisos al agente de servicio de Firestore para ese bucket. Por ejemplo, las operaciones que mueven datos a otro proyecto deben acceder a un bucket de ese otro proyecto. De lo contrario, estas operaciones fallarán después de migrar al agente de servicio de Firestore.
Los flujos de trabajo de importación y exportación que se encuentran dentro del mismo proyecto no requieren cambios en los permisos. El agente de servicio de Firestore puede acceder a los buckets del mismo proyecto de forma predeterminada.
Actualiza los permisos de los buckets de Cloud Storage de otros proyectos para otorgar acceso al agente de servicio service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
. Otorga al agente de servicio el rol Firestore Service Agent
.
El rol Firestore Service Agent
otorga permisos de lectura y escritura a un bucket de Cloud Storage. Si necesitas otorgar solo permisos de lectura o escritura, usa un rol personalizado.
El proceso de migración que se describe en la siguiente sección te ayuda a identificar los buckets de Cloud Storage que pueden requerir actualizaciones de permisos.
Migra un proyecto al agente de servicio de Firestore
Completa los siguientes pasos para migrar de la cuenta de servicio de App Engine al agente de servicio de Firestore. Una vez completada, la migración no se puede deshacer.
-
En la consola de Google Cloud, ve a la página Bases de datos.
- Selecciona la base de datos requerida de la lista.
-
En el menú de navegación, haz clic en Importar/Exportar.
-
Si tu proyecto aún no se ha migrado al agente de servicio de Firestore, verás un banner que describe la migración y un botón Verificar estado del bucket. En el siguiente paso, podrás identificar y corregir posibles errores de permisos.
Haz clic en Verificar estado del bucket.
Aparecerá un menú con la opción de completar tu migración y una lista de buckets de Cloud Storage. Es posible que la lista tarde unos minutos en terminar de cargarse.
En esta lista, se incluyen los buckets que se usaron recientemente en operaciones de importación y exportación, pero que en la actualidad no otorgan permisos de lectura y escritura al agente de servicio del modo Datastore.
- Anota el nombre principal del agente de servicio del modo Datastore de tu proyecto. El nombre del agente de servicio aparece bajo la etiqueta Service agent to give access to.
-
Para cualquier bucket de la lista que usarás en las operaciones futuras de importación o exportación, completa los siguientes pasos:
-
En la fila de la tabla del bucket, haz clic en Corregir. Se abrirá la página de permisos del bucket en una pestaña nueva.
- Haz clic en Agregar.
- En el campo Principales nuevas, ingresa el nombre de tu agente de servicio de Firestore.
- En el campo Selecciona un rol, selecciona Agentes de servicio > Agente de servicio de Firestore.
- Haz clic en Guardar.
- Regresa a la pestaña que tiene la página Importar/Exportar del modo Datastore.
- Repite estos pasos para otros buckets de la lista. Asegúrate de ver todas las páginas de la lista.
-
-
Haz clic en Migrar al agente de servicio de Firestore. Si aún tienes buckets con verificaciones de permisos con errores, debes confirmar la migración haciendo clic en Migrar.
Una alerta te informa cuando se completa la migración. No se puede deshacer la migración.
Consulta el estado de la migración
Para verificar el estado de migración de tu proyecto, sigue estos pasos:
-
En la consola de Google Cloud, ve a la página Bases de datos.
- Selecciona la base de datos requerida de la lista.
-
En el menú de navegación, haz clic en Importar/Exportar.
-
Busca la principal junto a la etiqueta Los trabajos de importación o exportación se ejecutan como.
Si la principal es
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
, tu proyecto ya migró al agente de servicio de Firestore. No se puede deshacer la migración.Si el proyecto no se migró, aparecerá un banner en la parte superior de la página con un botón Verificar estado del bucket. Para completar la migración, consulta Migra al agente de servicio de Firestore.
Agrega una restricción de política para toda la organización
-
Establece la siguiente restricción en la política de tu organización:
Requiere el agente de servicio de Firestore para importar y exportar (
firestore.requireP4SAforImportExport
).Esta restricción requiere que las operaciones de importación y exportación usen el agente de servicio de Firestore para autorizar solicitudes. Para establecer esta restricción, consulta Crea y administra políticas de la organización .
Aplicar esta restricción de política de la organización no otorga de forma automática los permisos adecuados bucket de Cloud Storage al agente de servicio de Firestore.
Si la restricción crea errores de permisos en algún flujo de trabajo de importación o exportación, puedes inhabilitarla para volver a usar la cuenta de servicio predeterminada. Después de verificar y actualizar los permisos del bucket de Cloud Storage, puedes volver a habilitar la restricción.