Controlli di servizio VPC

Controlli di servizio VPC consente alle organizzazioni di definire un perimetro attorno alle risorse Google Cloud per mitigare i rischi di esfiltrazione di dati. Con i Controlli di servizio VPC, crei perimetri che proteggono le risorse e i dati dei servizi da te specificati esplicitamente.

Servizi Firestore in bundle

Le API seguenti sono raggruppate in Controlli di servizio VPC:

  • firestore.googleapis.com
  • datastore.googleapis.com
  • firestorekeyvisualizer.googleapis.com

Quando limiti il servizio firestore.googleapis.com in un perimetro, questo limita anche i servizi datastore.googleapis.com e firestorekeyvisualizer.googleapis.com.

Limita il servizio datastore.googleapis.com

Il servizio datastore.googleapis.com è incluso nel servizio firestore.googleapis.com. Per limitare il servizio datastore.googleapis.com, devi limitare il servizio firestore.googleapis.com come segue:

  • Quando crei un perimetro di servizio utilizzando la console Google Cloud, aggiungi Firestore come servizio limitato.
  • Quando crei un perimetro di servizio con Google Cloud CLI, utilizza firestore.googleapis.com anziché datastore.googleapis.com.
    --perimeter-restricted-services=firestore.googleapis.com

Servizi in bundle legacy di App Engine per Datastore

I servizi in bundle legacy di App Engine per Datastore non supportano i perimetri di servizio. La protezione del servizio Datastore con un perimetro di servizio blocca il traffico dai servizi in bundle legacy di App Engine. I servizi in bundle legacy includono:

Protezione in uscita sulle operazioni di importazione ed esportazione

Firestore supporta i Controlli di servizio VPC, ma richiede una configurazione aggiuntiva per ottenere una protezione completa in uscita durante le operazioni di importazione ed esportazione. Per autorizzare le operazioni di importazione ed esportazione devi utilizzare l'agente di servizio Firestore anziché l'account di servizio App Engine predefinito. Utilizza le seguenti istruzioni per visualizzare e configurare l'account di autorizzazione per le operazioni di importazione ed esportazione.

Agente di servizio Firestore

Firestore utilizza un agente di servizio Firestore per autorizzare le operazioni di importazione ed esportazione anziché utilizzare l'account di servizio App Engine. L'agente di servizio e l'account di servizio utilizzano le seguenti convenzioni di denominazione:

Agente di servizio Firestore
service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com

Firestore utilizzava in precedenza l'account di servizio predefinito di App Engine anziché l'agente di servizio Firestore. Se il tuo database utilizza ancora l'account di servizio App Engine per importare o esportare i dati, ti consigliamo di seguire le istruzioni in questa sezione per eseguire la migrazione utilizzando l'agente di servizio Firestore.

Account di servizio App Engine
PROJECT_ID@appspot.gserviceaccount.com

È preferibile utilizzare l'agente di servizio Firestore perché è specifico di Firestore. L'account di servizio App Engine è condiviso da più servizi.

Visualizza account autorizzazione

Puoi visualizzare l'account utilizzato dalle operazioni di importazione ed esportazione per autorizzare le richieste dalla pagina Importa/Esporta nella console Google Cloud. Puoi anche vedere se il tuo database utilizza già l'agente di servizio Firestore.

  1. Nella console Google Cloud, vai alla pagina Database.

    Vai a Database

  2. Seleziona il database richiesto dall'elenco dei database.
  3. Nel menu di navigazione, fai clic su Importa/Esporta.

  4. Visualizza l'account di autorizzazione accanto all'etichetta I job di importazione/esportazione vengono eseguiti come.

Se il tuo progetto non utilizza l'agente di servizio Firestore, puoi eseguire la migrazione all'agente di servizio Firestore utilizzando una di queste tecniche:

La prima di queste tecniche è preferibile perché localizza l'ambito di effetto a un singolo progetto Firestore. La seconda tecnica non è preferita perché non esegue la migrazione delle autorizzazioni esistenti per i bucket Cloud Storage. Tuttavia, offre conformità di sicurezza a livello di organizzazione.

Esegui la migrazione controllando e aggiornando le autorizzazioni dei bucket Cloud Storage

Il processo di migrazione prevede due passaggi:

  1. Aggiorna le autorizzazioni del bucket Cloud Storage. Consulta la seguente sezione per i dettagli.
  2. Conferma la migrazione all'agente di servizio Firestore.

Autorizzazioni bucket dell'agente di servizio

Per qualsiasi operazione di esportazione o importazione che utilizza un bucket Cloud Storage in un altro progetto, devi concedere le autorizzazioni dell'agente di servizio Firestore per quel bucket. Ad esempio, le operazioni che spostano dati in un altro progetto devono accedere a un bucket in quell'altro progetto. In caso contrario, queste operazioni non riusciranno dopo la migrazione all'agente di servizio Firestore.

I flussi di lavoro di importazione ed esportazione che fanno parte dello stesso progetto non richiedono modifiche alle autorizzazioni. Per impostazione predefinita, l'agente di servizio Firestore può accedere ai bucket nello stesso progetto.

Aggiorna le autorizzazioni per i bucket Cloud Storage di altri progetti per concedere l'accesso all'agente di servizio service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com. Concedi all'agente di servizio il ruolo Firestore Service Agent.

Il ruolo Firestore Service Agent concede le autorizzazioni di lettura e scrittura per un bucket Cloud Storage. Se devi concedere autorizzazioni di sola lettura o sola scrittura, utilizza un ruolo personalizzato.

Il processo di migrazione descritto nella sezione seguente aiuta a identificare i bucket Cloud Storage che potrebbero richiedere aggiornamenti delle autorizzazioni.

Esegui la migrazione di un progetto all'agente di servizio Firestore

Completa i passaggi seguenti per eseguire la migrazione dall'account di servizio App Engine all'agente di servizio Firestore. Una volta completata, la migrazione non può essere annullata.

  1. Nella console Google Cloud, vai alla pagina Database.

    Vai a Database

  2. Seleziona il database richiesto dall'elenco dei database.
  3. Nel menu di navigazione, fai clic su Importa/Esporta.

  4. Se non è stata ancora eseguita la migrazione del progetto all'agente di servizio Firestore, vedrai un banner che descrive la migrazione e un pulsante Verifica lo stato del bucket. Il passaggio successivo ti aiuta a identificare e correggere potenziali errori di autorizzazione.

    Fai clic su Verifica lo stato del bucket.

    Viene visualizzato un menu con l'opzione per completare la migrazione e un elenco dei bucket Cloud Storage. Il caricamento dell'elenco potrebbe richiedere alcuni minuti.

    Questo elenco include i bucket utilizzati di recente nelle operazioni di importazione ed esportazione, ma che attualmente non forniscono autorizzazioni di lettura e scrittura all'agente di servizio Firestore.

  5. Prendi nota del nome dell'entità dell'agente di servizio Firestore del progetto. Il nome dell'agente di servizio viene visualizzato sotto l'etichetta Agente di servizio a cui concedere l'accesso.
  6. Per qualsiasi bucket nell'elenco che utilizzerai per future operazioni di importazione o esportazione, completa questi passaggi:

    1. Nella riga della tabella del bucket, fai clic su Correggi. Si apre la pagina delle autorizzazioni del bucket in una nuova scheda.

    2. Fai clic su Aggiungi.
    3. Nel campo Nuove entità, inserisci il nome dell'agente di servizio Firestore.
    4. Nel campo Seleziona un ruolo, scegli Agenti di servizio > Agente di servizio Firestore.
    5. Fai clic su Salva.
    6. Torna alla scheda con la pagina di importazione/esportazione di Firestore.
    7. Ripeti questi passaggi per gli altri bucket dell'elenco. Assicurati di visualizzare tutte le pagine dell'elenco.
  7. Fai clic su Esegui la migrazione all'agente di servizio Firestore. Se hai ancora bucket con controlli delle autorizzazioni non superati, devi confermare la migrazione facendo clic su Esegui la migrazione.

    Un avviso ti informa al completamento della migrazione. La migrazione non può essere annullata.

Visualizza stato migrazione

Per verificare lo stato di migrazione del tuo progetto:

  1. Nella console Google Cloud, vai alla pagina Database.

    Vai a Database

  2. Seleziona il database richiesto dall'elenco dei database.
  3. Nel menu di navigazione, fai clic su Importa/Esporta.

  4. Cerca l'entità accanto all'etichetta I job di importazione/esportazione vengono eseguiti come.

    Se l'entità è service-PROJECT_NUMBER@gcp-sa-firestore.iam.gserviceaccount.com, significa che è già stata eseguita la migrazione del progetto all'agente di servizio Firestore. La migrazione non può essere annullata.

    Se il progetto non è stato migrato, nella parte superiore della pagina viene visualizzato un banner con il pulsante Verifica lo stato del bucket. Vedi Eseguire la migrazione all'agente di servizio Firestore per completare la migrazione.

Aggiungi un vincolo dei criteri a livello di organizzazione

  • Imposta il seguente vincolo nei criteri della tua organizzazione:

    Richiedi l'agente di servizio Firestore per l'importazione/esportazione (firestore.requireP4SAforImportExport).

    Questo vincolo richiede che le operazioni di importazione ed esportazione utilizzino l'agente di servizio Firestore per autorizzare le richieste. Per impostare questo vincolo, vedi Creazione e gestione dei criteri dell'organizzazione .

L'applicazione di questo vincolo del criterio dell'organizzazione non concede automaticamente le autorizzazioni appropriate per il bucket Cloud Storage all'agente di servizio Firestore.

Se il vincolo crea errori di autorizzazione per qualsiasi flusso di lavoro di importazione o esportazione, puoi disabilitarlo per tornare a utilizzare l'account di servizio predefinito. Dopo aver verificato e aggiornato le autorizzazioni per il bucket Cloud Storage, puoi abilitare di nuovo il vincolo.