Controles del servicio de VPC
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,
el perímetro también restringe datastore.googleapis.com
y
firestorekeyvisualizer.googleapis.com
servicios.
Restringe el servicio datastore.googleapis.com
El servicio datastore.googleapis.com
se incluye en el servicio firestore.googleapis.com
. Para restringir el
datastore.googleapis.com
debes restringir el servicio de 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 en paquetes heredados de App Engine para Datastore
Los servicios heredados en paquetes de App Engine 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 Python 2 NDB para Datastore
- Go 1.11 Datastore con las API de App Engine
Protección de salida en las operaciones de importación y exportación
Firestore admite los Controles del servicio de VPC, pero requiere una configuración adicional para obtener la protección total de salida en las operaciones de importación y exportación. Debes usar el agente de servicio de Firestore para autorizar la importación y de exportación en lugar del servicio predeterminado de App Engine de servicio predeterminada. Usa las siguientes instrucciones para ver y configurar la autorización tener en cuenta las operaciones de importación y exportación.
Agente de servicio de Firestore
Firestore usa un agente de servicio de Firestore para autorizar la importación y de exportación en vez 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 sigue usando la cuenta de servicio de App Engine para importar o exportar datos, se recomienda que sigas las instrucciones de esta sección para migrar en lugar del 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 Firestore agente de servicio.
-
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 de Firestore. 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 buckets en el 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 a el 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.
Esta lista incluye los buckets que se actualizaron que se usan en operaciones de importación y exportación, pero que actualmente no otorgan permisos de escritura al agente de servicio de Firestore.
- Toma nota del nombre principal del Firestore de tu proyecto. agente de servicio. 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 de importación y exportación de Firestore.
- 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
, significa que tu proyecto ya migró a Firestore agente de servicio. 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 automáticamente el los permisos adecuados del bucket de Cloud Storage 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.