VPC Service Controls permet aux organisations de définir un périmètre autour des ressources Google Cloud afin de réduire les risques d'exfiltration des données. Avec VPC Service Controls, vous créez des périmètres qui protègent les ressources et les données des services que vous spécifiez explicitement.
Services Firestore groupés
Les API suivantes sont regroupées dans VPC Service Controls:
firestore.googleapis.com
datastore.googleapis.com
firestorekeyvisualizer.googleapis.com
Lorsque vous restreignez le service firestore.googleapis.com
dans un périmètre, celui-ci limite également les services datastore.googleapis.com
et firestorekeyvisualizer.googleapis.com
.
Limiter le service datastore.googleapis.com
Le service datastore.googleapis.com
est regroupé sous le service firestore.googleapis.com
. Pour limiter le service datastore.googleapis.com
, vous devez restreindre le service firestore.googleapis.com
comme suit:
- Lorsque vous créez un périmètre de service à l'aide de la console Google Cloud, ajoutez Firestore en tant que service restreint.
-
Lorsque vous créez un périmètre de service à l'aide de Google Cloud CLI, utilisez
firestore.googleapis.com
au lieu dedatastore.googleapis.com
.--perimeter-restricted-services=firestore.googleapis.com
Anciens services groupés d'App Engine pour Datastore
Les anciens services groupés d'App Engine pour Datastore ne sont pas compatibles avec les périmètres de service. La protection du service Datastore à l'aide d'un périmètre de service bloque le trafic provenant des anciens services groupés App Engine. Les anciens services groupés comprennent :
- Datastore Java 8 avec API App Engine
- Bibliothèque cliente Python 2 NDB pour Datastore
- Go 1.11 Datastore avec des API App Engine
Protection de sortie pour les opérations d'importation et d'exportation
Firestore en mode Datastore est compatible avec VPC Service Controls, mais nécessite une configuration supplémentaire pour assurer une protection complète du trafic de sortie des opérations d'importation et d'exportation. Vous devez utiliser l'agent de service Firestore pour autoriser les opérations d'importation et d'exportation au lieu du compte de service App Engine par défaut. Suivez les instructions ci-dessous pour afficher et configurer le compte d'autorisation pour les opérations d'importation et d'exportation.
Agent de service Firestore
Firestore utilise un agent de service Firestore pour autoriser les opérations d'importation et d'exportation au lieu d'utiliser le compte de service App Engine. L'agent de service et le compte de service utilisent les conventions d'attribution de noms suivantes:
- Agent de service Firestore
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Auparavant, Firestore utilisait le compte de service App Engine par défaut au lieu de l'agent de service Firestore. Si votre base de données utilise toujours le compte de service App Engine pour importer ou exporter des données, nous vous recommandons de suivre les instructions de cette section pour migrer vers l'agent de service Firestore.
- Compte de service App Engine
PROJECT_ID@appspot.gserviceaccount.com
Il est préférable d'utiliser l'agent de service Firestore, car il est spécifique à Firestore. Le compte de service App Engine est partagé par plusieurs services.
Afficher le compte d'autorisation
Sur la page Importations/Exportations de la console Google Cloud, vous pouvez afficher le compte utilisé par vos opérations d'importation et d'exportation pour autoriser les requêtes. Vous pouvez également vérifier si votre base de données utilise déjà l'agent de service Firestore.
-
Dans la console Google Cloud, accédez à la page Bases de données.
- Sélectionnez la base de données requise dans la liste.
-
Dans le menu de navigation, cliquez sur Importer/Exporter.
- Affichez le compte d'autorisation à côté du libellé Tâches d'importation/exportation exécutées en tant que.
Si votre projet n'utilise pas l'agent de service Firestore, vous pouvez migrer vers celui-ci à l'aide de l'une des techniques suivantes:
- Migrer un projet en vérifiant et en mettant à jour les autorisations sur le bucket Cloud Storage (recommandé).
- Ajoutez une contrainte de règle à l'échelle de l'organisation qui affecte tous les projets de l'organisation.
La première de ces techniques est préférable, car elle localise le champ d'application de l'effet sur un seul projet en mode Datastore. La seconde technique est déconseillée, car elle ne migre pas les autorisations existantes sur le bucket Cloud Storage. Toutefois, il assure la conformité de la sécurité au niveau de l'organisation.
Migrer en vérifiant et en mettant à jour les autorisations sur les bucket Cloud Storage
Le processus de migration comporte deux étapes:
- Mettre à jour les autorisations relatives au bucket Cloud Storage Pour en savoir plus, consultez la section suivante.
- Confirmez la migration vers l'agent de service Firestore.
Autorisations sur les buckets de l'agent de service
Pour toute opération d'exportation ou d'importation qui utilise un bucket Cloud Storage dans un autre projet, vous devez accorder à l'agent de service Firestore les autorisations nécessaires pour ce bucket. Par exemple, les opérations de transfert de données vers un autre projet doivent accéder à un bucket de cet autre projet. Sinon, ces opérations échoueront après la migration vers l'agent de service Firestore.
Les workflows d'importation et d'exportation qui restent dans le même projet ne nécessitent pas de modification des autorisations. L'agent de service Firestore peut accéder aux buckets du même projet par défaut.
Mettez à jour les autorisations sur les buckets Cloud Storage d'autres projets pour accorder l'accès à l'agent de service service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
. Attribuez le rôle Firestore Service Agent
à l'agent de service.
Le rôle Firestore Service Agent
accorde des autorisations de lecture et d'écriture pour un bucket Cloud Storage. Si vous devez accorder uniquement des autorisations en lecture ou en écriture, utilisez un rôle personnalisé.
Le processus de migration décrit dans la section suivante vous aide à identifier les buckets Cloud Storage qui peuvent nécessiter des mises à jour d'autorisations.
Migrer un projet vers l'agent de service Firestore
Pour migrer du compte de service App Engine vers l'agent de service Firestore, procédez comme suit : Une fois la migration terminée, elle est irréversible.
-
Dans la console Google Cloud, accédez à la page Bases de données.
- Sélectionnez la base de données requise dans la liste.
-
Dans le menu de navigation, cliquez sur Importer/Exporter.
-
Si votre projet n'a pas encore migré vers l'agent de service Firestore, une bannière décrivant la migration s'affiche, ainsi qu'un bouton Vérifier l'état du bucket. L'étape suivante vous aide à identifier et à corriger les erreurs d'autorisation potentielles.
Cliquez sur Vérifier l'état du bucket.
Un menu permettant de terminer la migration et une liste de buckets Cloud Storage s'affiche. Le chargement de la liste peut prendre quelques minutes.
Cette liste comprend les buckets récemment utilisés dans les opérations d'importation et d'exportation, mais qui n'accordent pas actuellement d'autorisations de lecture et d'écriture à l'agent de service en mode Datastore.
- Notez le nom principal de l'agent de service en mode Datastore de votre projet. Le nom de l'agent de service apparaît sous l'étiquette Agent de service auquel donner accès au compte.
-
Pour tout bucket de la liste que vous utiliserez pour de futures opérations d'importation ou d'exportation, procédez comme suit:
-
Sur la ligne du tableau de ce bucket, cliquez sur Corriger. La page des autorisations de ce bucket s'ouvre dans un nouvel onglet.
- Cliquez sur Ajouter.
- Dans le champ Nouveaux comptes principaux, saisissez le nom de votre agent de service Firestore.
- Dans le champ Sélectionner un rôle, sélectionnez Agents de service > Agent de service Firestore.
- Cliquez sur Enregistrer.
- Revenez à l'onglet contenant la page d'importation et d'exportation en mode Datastore.
- Répétez ces étapes pour les autres buckets de la liste. Assurez-vous d'afficher toutes les pages de la liste.
-
-
Cliquez sur Migrer vers l'agent de service Firestore. Si certains buckets présentent toujours des vérifications d'autorisation ayant échoué, vous devez confirmer votre migration en cliquant sur Migrer.
Une alerte vous informe lorsque la migration est terminée. La migration est irréversible.
Afficher l'état de la migration
Pour vérifier l'état de la migration de votre projet:
-
Dans la console Google Cloud, accédez à la page Bases de données.
- Sélectionnez la base de données requise dans la liste.
-
Dans le menu de navigation, cliquez sur Importer/Exporter.
-
Recherchez le compte principal à côté du libellé Tâches d'importation/exportation exécutées en tant que.
Si le compte principal est
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
, votre projet a déjà migré vers l'agent de service Firestore. La migration est irréversible.Si le projet n'a pas été migré, une bannière apparaît en haut de la page avec un bouton Check Bucket Status (Vérifier l'état du bucket). Consultez la section Migrer vers l'agent de service Firestore pour effectuer la migration.
Ajouter une contrainte de règle à l'échelle de l'organisation
-
Définissez la contrainte suivante dans la règle de votre organisation:
Exiger l'agent de service Firestore pour l'importation/exportation (
firestore.requireP4SAforImportExport
)Cette contrainte nécessite des opérations d'importation et d'exportation pour autoriser l'utilisation de l'agent de service Firestore pour les requêtes. Pour définir cette contrainte, consultez Créer et gérer des règles d'administration .
L'application de cette contrainte de règle d'administration n'accorde pas automatiquement les autorisations appropriées sur le bucket Cloud Storage pour l'agent de service Firestore.
Si la contrainte crée des erreurs d'autorisation pour des workflows d'importation ou d'exportation, vous pouvez la rétablir afin d'utiliser le compte de service par défaut. Après avoir vérifié et mis à jour les bucket Cloud Storage Storage, vous pouvez réactiver la contrainte.