2014-05-15 10 views
5

Sono nuovo di Google Bigquery, quindi scusarsi per la mia ignoranza.Bigquery - autorizzazione solo scrittura

L'idea era di utilizzare Bigquery per archiviare eventi che accadono all'interno di applicazioni installate in siti diversi. I siti sono entità completamente isolate e pertanto un sito non dovrebbe essere in grado di accedere ai dati da un altro sito.

Allo stesso tempo, viste consolidate dovrebbero anche essere possibile, assumendo un utente con più permessi (ad esempio, un manager in qualche struttura quartier)

La quantità di siti può essere eseguito in centinaia così sembra difficile dare ogni di loro un set di dati/tabella separata e associati (servizio) di autenticazione (p12)

c'è un modo per impostare questa funzione in BigQuery

Tutti i consigli accolto.

Grazie mille!

Peter

risposta

3

Write solo l'autorizzazione (in particolare per lo streaming inserti a BigQuery tabelle solo) è stato aggiunto di recente per BigQuery. È possibile utilizzare l'ambito https://www.googleapis.com/auth/bigquery.insertdata quando si effettua l'autenticazione anziché l'ambito https://www.googleapis.com/auth/bigquery e l'unico metodo che l'utente sarà in grado di utilizzare sarà tabledata.insertall().

Per quanto riguarda il tipo di autorizzazione che si desidera visualizzare, questa è una richiesta di funzionalità ad alta priorità che ci piacerebbe attivare. Puoi fornire maggiori dettagli sullo scenario che vorresti vedere?

+0

Giordania. Innanzitutto grazie per la vostra reazione. Lo scenario è il seguente: l'applicazione distribuita su centinaia di macchine non collegate spinge i dati. Quindi tre tipi di utenti utilizzeranno uno strumento di BI (ad esempio tableau online) per visualizzare i dati. Tre tipi sono (1) l'utente che originariamente spingeva i dati (2) all'ufficio regionale, raggruppando un insieme di (1) (s) (3) HQ vedendo tutti i dati. Immagino che possiamo implementare la visualizzazione a tre livelli usando lo strumento BI, ma voglio evitare che l'applicazione che spinge abbia un'autorizzazione sufficiente per leggere tutti i dati (compresi quelli di altre istanze dell'applicazione). Spero che ciò chiarisca. – Peter

+0

nel frattempo, hai provato a utilizzare un proxy (come App Engine) per gestire i dati in arrivo? –

+0

Non provato no. Posso vedere come funzionerebbe, ovviamente, ma voglio evitare di scrivere codice aggiuntivo e hub di infrastruttura da configurare. – Peter

0

A partire da giugno 2017, l'approccio migliore per la memorizzazione di eventi con accesso "solo inserimento" in BigQuery consiste nell'inviare gli eventi tramite Stackdriver Logging (ora parte di Google). Configure an Export in Stackdriver per inviare i registri a BigQuery. Ciò produce in modo efficace un sistema di archiviazione eventi "insert only". È quindi possibile configurare i ruoli utente in BigQuery per aggregare i dati su più siti.

L'approccio descritto da Jordan è utile per impedire a un'applicazione di sovrascrivere accidentalmente i dati. Sfortunatamente, non affronta lo scenario dei log di controllo o sicurezza. Non esiste ancora un ruolo IAM predefinito per BigQuery che supporti l'accesso "solo inserimento" e custom IAM roles sono ancora in stato "alpha". Se un hacker ha ottenuto l'accesso privilegiato a un server che può scrivere direttamente su BigQuery, l'hacker avrà anche accesso al file di chiavi BigQuery che consente loro di sovrascrivere i dati nei registri, consentendo loro di coprire le proprie tracce. Ciò sconfigge lo scopo dei log.

È possibile inviare eventi a Stackdriver direttamente tramite REST API o client library. È inoltre possibile configurare Stackdriver Logging Agent per monitorare qualsiasi registro basato su testo su un sistema Linux.