VPC Service Controls permet aux organisations de définir un périmètre autour des Google Cloud ressources afin de limiter les risques d'exfiltration de 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 groupésCloud Firestore
Les API suivantes sont regroupées dans VPC Service Controls :
firestore.googleapis.comdatastore.googleapis.comfirestorekeyvisualizer.googleapis.com
Lorsque vous limitez le service firestore.googleapis.com dans un périmètre, le périmètre s'applique également aux 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 limiter 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 Cloud Firestore en tant que service limité.
Lorsque vous créez un périmètre de service à l'aide de Google Cloud CLI, utilisez
firestore.googleapis.comau lieu dedatastore.googleapis.com.--perimeter-restricted-services=firestore.googleapis.com
App Engine anciens services groupés pour Datastore
App Engine Les anciens services groupés pour Datastore ne sont pas compatibles avec les périmètres de service. La protection du Datastore service avec un périmètre de service bloque le trafic provenant des App Engine anciens services groupés. Les anciens services groupés comprennent :
- Java 8 Datastore avec les App Engine API
- Bibliothèque cliente NDB Python 2 pour Datastore
- Go 1.11 Datastore avec les App Engine API
Protection de la sortie lors des opérations d'importation et d'exportation
Cloud Firestore est compatible avec VPC Service Controls, mais nécessite une configuration supplémentaire pour obtenir une protection complète de la sortie lors des opérations d'importation et d'exportation. Vous devez utiliser l'agent de service Cloud 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 Cloud Firestore
Cloud Firestore utilise un agent de service Cloud 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 Cloud Firestore
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
Cloud Firestore utilisait auparavant le compte de service par défaut App Engine au lieu de l'agent de service Cloud 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 Cloud Firestore.
- Compte de service App Engine
PROJECT_ID@appspot.gserviceaccount.com
L'agent de service Cloud Firestore est préférable, car il est spécifique à Cloud Firestore. Le compte de service App Engine est partagé par plusieurs services.
Afficher le compte d'autorisation
Vous pouvez afficher le compte utilisé par vos opérations d'importation et d'exportation pour autoriser les requêtes sur la page Importations/Exportations de la console Google Cloud. Vous pouvez également vérifier si votre base de données utilise déjà l'Cloud Firestore agent de service.
- Affichez le compte d'autorisation à côté du libellé Les tâches d'importation/exportation s'exécutent avec le compte.
Si votre projet n'utilise pas l'agent de service Cloud Firestore, vous pouvez migrer vers l'agent de service Cloud Firestore à l'aide de l'une des techniques suivantes :
- Migrer un projet en vérifiant et en mettant à jour les autorisations du bucket Cloud Storage (recommandé).
- Ajouter 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 limite la portée de l' effet à un seul Cloud Firestore projet. La deuxième technique n'est pas recommandée, car elle ne migre pas les autorisations de bucket existantes Cloud Storage. Toutefois, elle offre une conformité de sécurité au niveau de l'organisation.
Migrer en vérifiant et en mettant à jour les autorisations du bucket Cloud Storage
Le processus de migration comporte deux étapes :
- Mettre à jour les autorisations du bucket Cloud Storage (pour en savoir plus, consultez la section suivante).
- Confirmer la migration vers l'agent de service Cloud Firestore
Autorisations de bucket de l'agent de service
Pour toute opération d'exportation ou d'importation qui utilise un Cloud Storage bucket dans un autre projet, vous devez accorder à l'agent de service Cloud Firestore des autorisations pour ce bucket. Par exemple, les opérations qui déplacent des données vers un autre projet doivent accéder à un bucket de cet autre projet. Sinon, ces opérations échouent après la migration vers l'Cloud Firestore agent de service.
Les workflows d'importation et d'exportation qui restent dans le même projet ne nécessitent aucune modification des autorisations. L'agent de service Cloud Firestore peut accéder aux buckets du même projet par défaut.
Mettez à jour les autorisations des Cloud Storage buckets d'autres projets pour donner
accès à l'
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com
agent de service. 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
Cloud Storage bucket. Si vous n'avez besoin d'accorder que des autorisations de lecture ou d'écriture, utilisez un
rôle personnalisé.
Le processus de migration décrit dans la section suivante vous aide à identifier Cloud Storage les buckets qui peuvent nécessiter des mises à jour d'autorisations.
Migrer un projet vers l'agent de service Firestore
Procédez comme suit pour migrer du compte de service App Engine vers l'agent de service Cloud Firestore. Une fois la migration terminée, vous ne pourrez pas l'annuler.
-
Si votre projet n'a pas encore migré vers l'agent de service Cloud Firestore, une bannière décrivant la migration et un bouton Vérifier l'état du bucket s'affichent. L'étape suivante vous aidera à identifier et à corriger les erreurs d'autorisation potentielles.
Cliquez sur Vérifier l'état du bucket.
Un menu s'affiche avec l'option permettant de terminer la migration et une liste de Cloud Storage buckets. Le chargement de la liste peut prendre quelques minutes.
Cette liste inclut les buckets qui ont été récemment utilisés dans des opérations d'importation et d'exportation, mais qui n'accordent actuellement pas d'autorisations de lecture et d'écriture à l'agent de service Cloud Firestore.
- Notez le nom de compte principal de l'agent de service Cloud Firestore de votre projet. Le nom de l'agent de service s'affiche sous le libellé Agent de service auquel donner l'accès.
-
Pour tout bucket de la liste que vous utiliserez pour de futures opérations d'importation ou d'exportation, procédez comme suit :
-
Dans 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 Cloud Firestore agent de service.
- 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 Cloud Firestore Importations/Exportations.
- Répétez ces étapes pour les autres buckets de la liste. Veillez à afficher toutes les pages de la liste.
-
-
Cliquez sur Migrer vers l'agent de service Firestore. Si des buckets présentent toujours des échecs de vérification des autorisations, vous devez confirmer votre migration en cliquant sur Migrer.
Une alerte vous informe lorsque la migration est terminée. Vous ne pourrez pas l'annuler.
Afficher l'état de la migration
Pour vérifier l'état de la migration de votre projet :
-
Recherchez le compte principal à côté du libellé Les tâches d'importation/exportation s'exécutent avec le compte.
Si le compte principal est
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com, votre projet a déjà migré vers l'Cloud Firestore agent de service. Vous ne pourrez pas annuler la migration.Si le projet n'a pas été migré, une bannière s'affiche en haut de la page avec un bouton Vérifier l'état du bucket. Consultez la section Migrer vers l'agent de service Firestore pour terminer 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 :
Agent de service Firestore requis pour l'importation/exportation (
firestore.requireP4SAforImportExport).Cette contrainte nécessite que les opérations d'importation et d'exportation utilisent l' Cloud Firestore agent de service pour autoriser les requêtes. Pour définir cette contrainte, consultez la section 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 de Cloud Storage bucket appropriées pour l' Cloud Firestore agent de service.
Si la contrainte génère des erreurs d'autorisation pour des workflows d'importation ou d'exportation, vous pouvez la désactiver pour revenir à l'utilisation du compte de service par défaut. Une fois que vous avez vérifié et mis à jour les autorisations du bucketCloud Storage, vous pouvez réactiver la contrainte.