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 des données. VPC Service Controls vous permet de créer des périmètres qui protègent les ressources et les données des services que vous spécifiez explicitement.

Services Firestore intégré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, les services datastore.googleapis.com et firestorekeyvisualizer.googleapis.com sont également restreints.

Restreindre le service datastore.googleapis.com

Le service datastore.googleapis.com est inclus dans le service firestore.googleapis.com. Pour restreindre le service datastore.googleapis.com, vous devez restreindre le service firestore.googleapis.com comme suit:

  • Lors de la création d'un périmètre de service à l'aide de Google Cloud Console, ajoutez Firestore en tant que service restreint.
  • Lors de la création d'un périmètre de service à l'aide de la CLI Google Cloud, utilisez firestore.googleapis.com au lieu de datastore.googleapis.com.
    --perimeter-restricted-services=firestore.googleapis.com

Anciens services groupés d'App Engine pour Datastore

Les anciens services groupés App Engine pour Datastore ne sont pas compatibles avec les périmètres de service. La protection du service Datastore avec un périmètre de service bloque le trafic provenant des anciens services groupés App Engine. Les anciens services groupés sont les suivants:

Protection contre la sortie pour les opérations d'importation et d'exportation

Firestore est compatible avec VPC Service Controls, mais a besoin d'une configuration supplémentaire pour assurer une protection complète des sorties 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. Procédez comme suit pour afficher et configurer le compte d'autorisation pour les opérations d'importation et d'exportation.

Agent de service Firestore

Vous pouvez maintenant utiliser un agent de service Firestore pour autoriser des opérations d'importation et d'exportation au lieu du 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
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

Vous pouvez afficher le compte utilisé pour les opérations d'importation et d'exportation depuis la page Importations/Exportations de Google Cloud Console. Vous pouvez également vérifier si votre base de données utilise déjà l'agent de service Firestore.

  1. Accédez à la page Importations/Exportations Firestore dans Google Cloud Console.

    Accédez à "Importations/Exportations".

  2. Affichez le compte d'autorisation à côté du libellé Les tâches d'importation/exportation s'exécutent en tant que.

Si votre projet n'utilise pas l'agent de service Firestore, vous pouvez effectuer une migration vers celui-ci à l'aide de l'une des techniques suivantes:

Elle est préférable pour la première, car elle localise le champ d'application sur un seul projet Firestore. La seconde technique est déconseillée, car elle ne permet pas d'effectuer la migration des autorisations existantes relatives aux buckets Cloud Storage. Toutefois, ce service offre un niveau de conformité en matière de sécurité au niveau de l'organisation.

Migrer en vérifiant et en mettant à jour les autorisations des buckets Cloud Storage

Le processus de migration comprend deux étapes:

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

Autorisations de 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 les autorisations requises 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'agent de service Firestore.

L'importation et l'exportation de workflows restant dans le même projet ne nécessitent pas de modifications des autorisations. L'agent de service Firestore peut accéder aux buckets du même projet par défaut.

Mettez à jour les autorisations des buckets Cloud Storage provenant d'autres projets pour accorder l'accès à l'agent de service service-project_number@gcp-sa-firestore.iam.gserviceaccount.com. Attribuez à l'agent de service le rôle Firestore Service Agent.

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 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 pouvant 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 terminée, la migration ne peut pas être annulée.

  1. Accédez à la page Importations/Exportations Firestore dans Google Cloud Console.

    Accédez à "Importations/Exportations".

  2. Si votre projet n'a pas encore été migré vers l'agent de service Firestore, une bannière décrivant la migration et un bouton Vérifier l'état du bucket s'affichent. 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 l'option de terminer la migration et une liste de buckets Cloud Storage. Le chargement de la liste peut prendre quelques minutes.

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

  3. Notez le nom principal de l'agent de service Firestore de votre projet. Le nom de l'agent de service s'affiche sous le libellé Agent de service pour autoriser l'accès à.
  4. Pour chaque bucket de la liste que vous utiliserez pour des opérations d'importation ou d'exportation futures, procédez comme suit:

    1. Dans 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 Select a role (Sélectionner un rôle), sélectionnez Service Agents > Firestore Service Agent (Agent de service Firestore).
    5. Cliquez sur Enregistrer.
    6. Revenez à l'onglet de la page d'importation/exportation Firestore.
    7. Répétez ces étapes pour tous les buckets de la liste. Assurez-vous d'afficher toutes les pages de la liste.
  5. Cliquez sur Migrer vers l'agent de service Firestore. Si certains de vos buckets n'ont toujours pas réussi à vérifier les autorisations, vous devez confirmer la 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

  1. Pour vérifier l'état de la migration de votre projet, accédez à la page Importations/Exportations de Google Cloud Console:

    Accédez à "Importations/Exportations".

  2. Recherchez le compte principal associé au libellé Tâches d'importation/exportation exécutées sous.

    Si le compte principal est service-project_number@gcp-sa-firestore.iam.gserviceaccount.com, cela signifie que votre projet a déjà migré vers l'agent de service Firestore. Cette opération est irréversible.

    Si le projet n'a pas été migré, une bannière s'affiche en haut de la page avec le bouton 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 un agent de service Firestore pour l'importation/exportation (firestore.requireP4SAforImportExport)

    Cette contrainte nécessite des opérations d'importation et d'exportation pour utiliser les agents de service Firestore pour autoriser les requêtes. Pour définir cette contrainte, consultez la page 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 bucket Cloud Storage appropriées à l'agent de service Firestore.

Si la contrainte crée des erreurs d'autorisation pour tout workflow d'importation ou d'exportation, vous pouvez la désactiver pour revenir au compte de service par défaut. Après avoir vérifier et mis à jour les autorisations du bucket Cloud Storage, vous pouvez réactiver la contrainte.