2014-05-15 16 views
5

Ich bin neu in Google Bigquery, also entschuldige mich meine Ignoranz.Bigquery - schreiben nur Autorisierung

Die Idee war, Bigquery zu verwenden, um Ereignisse zu speichern, die in Anwendungen auftreten, die an verschiedenen Standorten installiert sind. Die Sites sind vollständig isolierte Entitäten und daher sollte eine Site nicht auf die Daten von einer anderen Site zugreifen können.

Zugleich konsolidierte Ansichten auch möglich sein sollte, einen Benutzer mit mehr Berechtigungen vorausgesetzt (zB ein Manager in einem gewissen Kopf Quartal Einrichtung)

Die Menge Websites, in die Hunderte laufen kann, so dass es jeder zu geben scheint schwierig von ihnen eine separate Daten-set/Tabelle und die damit verbundene (Service) Authentifizierung (P12)

gibt es eine Möglichkeit, diese nach oben in BigQuery

Alle Tipps begrüßt einstellen.

Vielen Dank!

Peter

Antwort

3

schreibt nur die Berechtigung (speziell Einsätze für das Streaming von Tabellen BigQuery nur) wurde vor kurzem zu BigQuery hinzugefügt. Sie können den Bereich https://www.googleapis.com/auth/bigquery.insertdata bei der Authentifizierung anstelle des Bereichs https://www.googleapis.com/auth/bigquery verwenden, und die einzige Methode, die der Benutzer verwenden kann, ist tabledata.insertall().

In Bezug auf die Art der Autorisierung, die Sie für Ansichten wünschen, ist dies eine Featureanforderung mit hoher Priorität, die wir gerne aktivieren würden. Können Sie weitere Details zu dem Szenario angeben, für das Sie eine Arbeit sehen möchten?

+0

Jordanien. Vielen Dank für Ihre Reaktion. Das Szenario ist wie folgt: Die Anwendung, die auf hunderten von nicht zusammengehörigen Maschinen eingesetzt wird, pusht Daten. Dann verwenden drei Arten von Benutzern ein BI-Tool (z. B. Tableau online), um die Daten anzuzeigen. Drei Arten sind: (1) der Benutzer schiebt ursprünglich das regionale Büro der Daten (2), gruppiert einen Satz von (1) 's (3) HQ, der alle Daten sieht. Ich denke, wir können die dreistufige Betrachtung mit dem BI-Tool implementieren, aber ich möchte vermeiden, dass die Anwendung pushen würde ausreichende Berechtigung, um alle Daten (einschließlich dieser von anderen Instanzen der Anwendung) zu lesen .Hoffentlich klärt dies. – Peter

+0

In der Zwischenzeit haben Sie versucht, einen Proxy (wie App Engine) für die eingehenden Daten zu verwenden? –

+0

Nicht ausprobiert nein. Ich kann sehen, wie das natürlich funktionieren würde, aber ich möchte extra Code zum Schreiben und Infrastruktur-Hubs zur Konfiguration vermeiden. – Peter

0

Ab Juni 2017 besteht der beste Ansatz zum Speichern von Ereignissen mit "Nur-Einfüge" -Zugriff in BigQuery darin, die Ereignisse über Stackdriver Logging (jetzt Teil von Google) zu senden. Configure an Export in Stackdriver, um die Protokolle an BigQuery zu senden. Dies erzeugt effektiv ein "nur Einfüge" -Ereignisspeichersystem. Sie können dann Benutzerrollen in BigQuery konfigurieren, um Daten über mehrere Standorte hinweg zu aggregieren.

Der von Jordan beschriebene Ansatz verhindert, dass eine Anwendung versehentlich Daten überschreibt. Leider wird das Szenario von Audit- oder Sicherheitsprotokollen nicht behandelt. Es gibt immer noch keine vordefinierte IAM-Rolle für BigQuery, die "nur einfügen" -Zugriff unterstützt, und custom IAM roles sind immer noch im "Alpha" -Status. Wenn ein Hacker einen privilegierten Zugriff auf einen Server erhalten hat, der direkt in BigQuery schreiben kann, hat der Hacker auch Zugriff auf die BigQuery-Schlüsseldatei, mit der sie Daten in den Protokollen überschreiben können, sodass sie ihre Spuren abdecken können. Dies vereitelt den Zweck der Protokolle.

Sie können Ereignisse zu Stackdriver direkt über die REST API oder client library schieben. Sie können das Stackdriver Logging Agent auch so konfigurieren, dass jedes textbasierte Protokoll auf einem Linux-System überwacht wird.