VPC Service Controls

VPC Service Controls permet aux organisations de définir un périmètre autour des ressources Google Cloud afin de limiter les risques d'exfiltration de données. Avec VPC Service Controls, vous créez 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 limitez le service firestore.googleapis.com dans un périmètre, le périmètre limite également les datastore.googleapis.com et firestorekeyvisualizer.googleapis.com services.

Limiter le service datastore.googleapis.com

Le service datastore.googleapis.com est groupé sous le service firestore.googleapis.com. Pour limiter l'accès 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 Firestore en tant que service restreint.
  • Lorsque vous créez un périmètre de service à l'aide de la Google Cloud CLI, utilisez firestore.googleapis.com au lieu de datastore.googleapis.com
    --perimeter-restricted-services=firestore.googleapis.com

Anciens services groupés App Engine pour Datastore

Les anciens services groupés App Engine pour Datastore ne sont pas compatibles avec les périmètres de service. Protéger le datastore avec un périmètre de service bloque le trafic Anciens services groupés App Engine Les anciens services groupés comprennent :

Protection de la sortie sur les opérations d'importation et d'exportation

Firestore est compatible avec VPC Service Controls, mais nécessite des pour obtenir une protection complète contre la sortie lors 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 l'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

Firestore utilisait auparavant le compte de service par défaut d'App Engine 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 à l'utilisation de l'agent de service Firestore.

Compte de service App Engine
PROJECT_ID@appspot.gserviceaccount.com

L'agent de service Firestore est préférable, car il est spécifique à Firestore. Le compte de service App Engine est partagé par plusieurs services.

Afficher le compte d'autorisation

Vous pouvez consulter 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'agent de service Firestore.

  1. Dans la console Google Cloud, accédez à la page Base de données.

    Accéder à la page "Bases de données"

  2. Sélectionnez la base de données requise dans la liste des bases de données.
  3. Dans le menu de navigation, cliquez sur Importer/Exporter.

  4. Consultez le compte d'autorisation à côté Libellé Les jobs d'importation/exportation s'exécutent en tant que.

Si votre projet n'utilise pas l'agent de service Firestore, vous pouvez migrer vers l'agent de service Firestore à l'aide de l'une des techniques suivantes :

La première de ces techniques est préférable, car elle localise la portée de l'effet à un seul projet Firestore. La deuxième technique n'est pas recommandée, car elle ne migre pas les autorisations de bucket Cloud Storage existantes. Il offre cependant une conformité en matière de sécurité au niveau de l'organisation à l'échelle du projet.

Migrer en vérifiant et en mettant à jour les autorisations du bucket Cloud Storage

Le processus de migration comporte deux étapes :

  1. Mettez à jour les autorisations du bucket Cloud Storage. Pour en savoir plus, consultez la section suivante.
  2. Confirmez la migration vers l'agent de service Firestore.

Autorisations du bucket d'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 pour ce bucket. Par exemple, les opérations qui déplacent des données vers un autre projet doivent accéder à un bucket de ce projet. Sinon, ces opérations échouent 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 les modifications apportées aux autorisations. L'agent de service Firestore peut accéder du même projet par défaut.

Mettez à jour les autorisations des buckets Cloud Storage d'autres projets pour accorder l'accès service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com à un agent de service Google Cloud. 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 ne devez 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 les buckets Cloud Storage qui peuvent nécessiter une mise à jour des autorisations.

Migrer un projet vers l'agent de service Firestore

Suivez les étapes ci-dessous pour migrer du compte de service App Engine vers l'agent de service Firestore. Une fois la migration terminée, annulée.

  1. Dans la console Google Cloud, accédez à la page Base de données.

    Accéder à la page "Bases de données"

  2. Sélectionnez la base de données requise dans la liste des bases de données.
  3. Dans le menu de navigation, cliquez sur Importer/Exporter.

  4. Si votre projet n'a pas encore migré vers le service Firestore vous voyez une bannière décrivant la migration Un bouton Check Bucket Status (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 s'affiche, avec une option permettant de terminer la migration et un liste des buckets Cloud Storage. Le chargement de la liste peut prendre quelques minutes.

    Cette liste inclut les buckets qui ont été récemment utilisés dans les opérations d'importation et d'exportation, mais ne fournissent actuellement pas des autorisations d'écriture pour l'agent de service Firestore.

  5. Notez le nom principal du Firestore de votre projet. à un agent de service Google Cloud. Le nom de l'agent de service apparaît sous Agent de service autorisant l'accès au libellé.
  6. Pour tout bucket de la liste que vous pour de futures opérations d'importation ou d'exportation, procédez comme suit : étapes:

    1. Sur la ligne du tableau de ce bucket, cliquez sur Corriger. La page des autorisations de ce bucket s'ouvre dans un nouvel onglet.

    2. Cliquez sur Ajouter.
    3. Dans le champ Nouveaux comptes principaux, saisissez le nom de votre Agent de service Firestore.
    4. Dans le champ Sélectionnez un rôle, sélectionnez Agents de service > Agent de service Firestore.
    5. Cliquez sur Enregistrer.
    6. Revenez à l'onglet contenant la page "Importation/Exportation" de Firestore.
    7. Répétez ces étapes pour les autres buckets de la liste. Assurez-vous de consulter toutes les pages de la liste.
  7. 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 la migration en cliquant sur Migrer.

    Une alerte vous informe lorsque la migration est terminée. Cette opération est irréversible.

Afficher l'état de la migration

Pour vérifier l'état de la migration de votre projet :

  1. Dans la console Google Cloud, accédez à la page Base de données.

    Accéder à la page "Bases de données"

  2. Sélectionnez la base de données requise dans la liste des bases de données.
  3. Dans le menu de navigation, cliquez sur Importer/Exporter.

  4. Recherchez le compte principal à côté du libellé Jobs d'importation/exportation exécutés en tant que.

    Si le principal est service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com, votre projet a déjà été migré vers l'agent de service Firestore. La migration est irréversible.

    Si le projet n'a pas été migré, une bannière s'affiche en haut de la page. à l'aide d'un bouton Vérifier l'état du bucket. Voir Migrer vers l'agent de service Firestore pour terminer la migration.

Ajouter une contrainte de règle d'administration à l'échelle de l'organisation

  • Définissez la contrainte suivante dans le règlement de votre organisation :

    Exiger l'agent de service Firestore pour l'importation/exportation (firestore.requireP4SAforImportExport)

    Cette contrainte exige que les opérations d'importation et d'exportation utilisent l'agent de service Firestore pour autoriser les requêtes. Pour définir cette contrainte, consultez Créer et gérer des règles d'administration

L'application de cette contrainte liée aux règles d'administration n'accorde pas automatiquement les autorisations de bucket Cloud Storage appropriées à 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 désactiver pour revenir à l’utilisation du compte de service par défaut. Après avoir vérifié et mis à jour le bucket Cloud Storage les autorisations, vous pouvez la réactiver.