Logowanie kontrolne Firebase Data Connect

Na tej stronie opisujemy logi kontrolne tworzone przez usługę Firebase w ramach logów kontrolnych Cloud.

Przegląd

Usługi Firebase zapisują logi kontrolne, aby pomóc Ci odpowiedzieć na pytania „kto, co, gdzie i kiedy?”. Są to dzienniki Cloud Audit Logs udostępniane w ramach projektu Google Cloud połączonego z projektem Firebase.

Każdy projekt Firebase zawiera tylko logi kontrolne zasobów, które znajdują się bezpośrednio w tym projekcie.

Ogólne informacje o logach kontrolnych Cloud znajdziesz w artykule Logi kontrolne Cloud – omówienie. Więcej informacji o formacie dziennika kontrolnego znajdziesz w artykule Omówienie dzienników kontrolnych.

Dostępne dzienniki kontrolne

W przypadku usługi Firebase Data Connect dostępne są te typy logów kontrolnych:

  • Logi kontrolne aktywności administratora

    Obejmuje operacje „zapisywania przez administratora”, które zapisują metadane lub informacje o konfiguracji.

    Logów kontrolnych aktywności administratora nie można wyłączyć.

  • Logi kontrolne dostępu do danych

    Obejmuje operacje „odczytu przez administratora”, które wiążą się z odczytem metadanych lub informacji o konfiguracji. Obejmuje też operacje „odczytu danych” i „zapisu danych”, które odczytują lub zapisują dane przekazywane przez użytkowników.

    Aby otrzymywać logi kontrolne dostępu do danych, musisz je jawnie włączyć.

Szczegółowe opisy typów dzienników kontrolnych znajdziesz w artykule Rodzaje dzienników kontrolnych.

Skontrolowane operacje

Poniżej znajdziesz podsumowanie, które operacje interfejsu API odpowiadają poszczególnym typom logów kontrolnych w Firebase Data Connect:

Typ uprawnień Metody
ADMIN_READ google.firebase.dataconnect.v1.FirebaseDataConnect.GetConnector
google.firebase.dataconnect.v1.FirebaseDataConnect.GetSchema
google.firebase.dataconnect.v1.FirebaseDataConnect.GetService
google.firebase.dataconnect.v1.FirebaseDataConnect.ListConnectors
google.firebase.dataconnect.v1.FirebaseDataConnect.ListSchemas
google.firebase.dataconnect.v1.FirebaseDataConnect.ListServices
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.GetConnector
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.GetSchema
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.GetService
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.ListConnectors
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.ListSchemas
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.ListServices
google.firebase.dataconnect.v1beta.FirebaseDataConnect.GetConnector
google.firebase.dataconnect.v1beta.FirebaseDataConnect.GetSchema
google.firebase.dataconnect.v1beta.FirebaseDataConnect.GetService
google.firebase.dataconnect.v1beta.FirebaseDataConnect.ListConnectors
google.firebase.dataconnect.v1beta.FirebaseDataConnect.ListSchemas
google.firebase.dataconnect.v1beta.FirebaseDataConnect.ListServices
ADMIN_WRITE google.firebase.dataconnect.v1.FirebaseDataConnect.CreateConnector
google.firebase.dataconnect.v1.FirebaseDataConnect.CreateSchema
google.firebase.dataconnect.v1.FirebaseDataConnect.CreateService
google.firebase.dataconnect.v1.FirebaseDataConnect.DeleteConnector
google.firebase.dataconnect.v1.FirebaseDataConnect.DeleteSchema
google.firebase.dataconnect.v1.FirebaseDataConnect.DeleteService
google.firebase.dataconnect.v1.FirebaseDataConnect.UpdateConnector
google.firebase.dataconnect.v1.FirebaseDataConnect.UpdateSchema
google.firebase.dataconnect.v1.FirebaseDataConnect.UpdateService
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.CreateConnector
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.CreateSchema
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.CreateService
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.DeleteConnector
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.DeleteSchema
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.DeleteService
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.UpdateConnector
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.UpdateSchema
google.firebase.dataconnect.v1alpha.FirebaseDataConnect.UpdateService
google.firebase.dataconnect.v1beta.FirebaseDataConnect.CreateConnector
google.firebase.dataconnect.v1beta.FirebaseDataConnect.CreateSchema
google.firebase.dataconnect.v1beta.FirebaseDataConnect.CreateService
google.firebase.dataconnect.v1beta.FirebaseDataConnect.DeleteConnector
google.firebase.dataconnect.v1beta.FirebaseDataConnect.DeleteSchema
google.firebase.dataconnect.v1beta.FirebaseDataConnect.DeleteService
google.firebase.dataconnect.v1beta.FirebaseDataConnect.UpdateConnector
google.firebase.dataconnect.v1beta.FirebaseDataConnect.UpdateSchema
google.firebase.dataconnect.v1beta.FirebaseDataConnect.UpdateService
DATA_READ google.firebase.dataconnect.v1.GraphqlService.ExecuteGraphqlRead
google.firebase.dataconnect.v1alpha.GraphqlService.ExecuteGraphqlRead
google.firebase.dataconnect.v1beta.GraphqlService.ExecuteGraphqlRead
DATA_WRITE google.firebase.dataconnect.v1.GraphqlService.ExecuteGraphql
google.firebase.dataconnect.v1alpha.GraphqlService.ExecuteGraphql
google.firebase.dataconnect.v1beta.GraphqlService.ExecuteGraphql

Format dziennika kontrolnego

Wpisy w dzienniku kontrolnym zawierają te obiekty:

  • Sam wpis w logu, który jest obiektem typu LogEntry. Przydatne pola to:

    • logName zawiera identyfikator zasobu i typ logu kontrolnego.
    • Element resource zawiera cel operacji poddanej kontroli.
    • Symbol timestamp zawiera czas operacji poddanej kontroli.
    • protoPayload zawiera informacje poddane audytowi.
  • Dane logów kontrolnych, które są obiektem AuditLog przechowywanym w polu protoPayload wpisu w dzienniku.

  • Opcjonalne informacje o kontroli dotyczące konkretnej usługi, które są obiektem specyficznym dla usługi. W przypadku starszych integracji ten obiekt znajduje się w polu serviceData obiektu AuditLog, a w przypadku nowszych integracji – w polu metadata.

Informacje o innych polach w tych obiektach i sposobie ich interpretowania znajdziesz w artykule Omówienie dzienników kontrolnych.

Nazwa logu

Nazwy zasobów logów kontrolnych Cloud wskazują projekt Firebase lub inny Google Cloudpodmiot, do którego należą logi kontrolne, oraz to, czy log zawiera dane logów kontrolnych aktywności administratora, dostępu do danych, odmowy dostępu do zasad czy zdarzeń systemowych. Na przykład poniżej przedstawiono nazwy logów kontrolnych aktywności administratora na poziomie projektu i logów kontrolnych dostępu do danych w organizacji. Zmienne oznaczają identyfikatory projektu Firebase i organizacji.

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

Nazwa usługi

Dzienniki kontrolne Firebase Data Connect używają nazwy usługifirebasedataconnect.googleapis.com.

Pełną listę nazw usług Cloud Logging API i odpowiadających im typów monitorowanych zasobów znajdziesz w artykule Mapowanie usług na zasoby.

Typy zasobów

Logi kontrolne Firebase Data Connect używają typu zasobu audited_resource dla wszystkich logów kontrolnych.

Listę wszystkich typów monitorowanych zasobów Cloud Logging wraz z opisem znajdziesz w artykule Typy monitorowanych zasobów.

Włączanie logowania w logach kontrolnych

Logi kontrolne aktywności administratora są zawsze włączone. Nie możesz ich wyłączyć.

Logi kontrolne dostępu do danych są domyślnie wyłączone i nie są zapisywane, chyba że zostaną jawnie włączone (wyjątkiem są logi kontrolne dostępu do danych w BigQuery, których nie można wyłączyć).

Instrukcje włączania niektórych lub wszystkich logów kontrolnych dostępu do danych znajdziesz w artykule Konfigurowanie logów dostępu do danych.

Uprawnienia i role

Uprawnienia i role Cloud IAM określają, czy masz dostęp do danych logów kontrolnych w zasobach Google Cloud.

Decydując, które uprawnienia i role związane z logowaniem mają zastosowanie w Twoim przypadku, weź pod uwagę te kwestie:

  • Rola Wyświetlający logi (roles/logging.viewer) zapewnia dostęp tylko do odczytu do dzienników kontrolnych Aktywność administratora, Odmowa zasad i Zdarzenie systemowe. Jeśli masz tylko tę rolę, nie możesz wyświetlać logów kontrolnych dostępu do danych, które znajdują się w _Defaultbucket.

  • Rola Przeglądający logi prywatne(roles/logging.privateLogViewer) obejmuje uprawnienia zawarte w roles/logging.viewer, a także możliwość odczytywania logów kontrolnych dostępu do danych w zasobniku _Default.

    Pamiętaj, że jeśli te logi prywatne są przechowywane w określonych przez użytkownika zasobnikach, każdy użytkownik, który ma uprawnienia do odczytywania logów w tych zasobnikach, może odczytywać logi prywatne. Więcej informacji o zasobnikach logów znajdziesz w artykule Omówienie routingu i miejsca na dane.

Więcej informacji o uprawnieniach i rolach Cloud IAM, które mają zastosowanie do danych logów kontrolnych, znajdziesz w artykule Kontrola dostępu.

Wyświetl logi

Aby znaleźć i wyświetlić dzienniki audytu, musisz znać identyfikator projektu, folderu lub organizacji Firebase, dla których chcesz wyświetlić informacje o dziennikach audytu. Możesz też określić inne indeksowane pola, np. resource.type. Więcej informacji znajdziesz w artykule Szybkie wyszukiwanie wpisów w dzienniku.LogEntry

Poniżej znajdziesz nazwy logów kontrolnych. Zawierają one zmienne identyfikatorów projektu Firebase, folderu lub organizacji:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

Dzienniki audytu możesz wyświetlać w Cloud Logging za pomocą konsoli Google Cloud, narzędzia wiersza poleceń gcloud lub interfejsu Logging API.

Konsola

Aby pobrać wpisy dziennika kontrolnego dotyczące projektu, folderu lub organizacji w Firebase, możesz użyć eksploratora logów w konsoli Google Cloud:

  1. W konsoli Google Cloud otwórz stronę Logowanie > Eksplorator logów.

    Otwórz stronę Eksplorator logów

  2. Na stronie Eksplorator logów wybierz istniejący projekt Firebase, folder lub organizację.

  3. W panelu Konstruktor zapytań wykonaj te czynności:

    • W sekcji Typ zasobu wybierz zasób Google Cloud, którego dzienniki audytu chcesz wyświetlić.

    • W sekcji Nazwa logu wybierz typ dziennika kontrolnego, który chcesz wyświetlić:

      • W przypadku logów kontrolnych aktywności administratora wybierz aktywność.
      • W przypadku logów kontrolnych dostępu do danych wybierz data_access.
      • W przypadku logów kontrolnych zdarzeń systemowych wybierz system_event.
      • W przypadku dzienników kontrolnych dotyczących odrzuconych zasad wybierz policy (zasady).

    Jeśli nie widzisz tych opcji, oznacza to, że w projekcie, folderze lub organizacji Firebase nie ma dzienników audytu tego typu.

    Więcej informacji o wykonywaniu zapytań za pomocą eksploratora logów znajdziesz w artykule Tworzenie zapytań dotyczących logów.

gcloud

Narzędzie wiersza poleceń gcloud udostępnia interfejs wiersza poleceń do interfejsu Cloud Logging API. W nazwach każdego z logów podaj prawidłowy adres PROJECT_ID, FOLDER_ID lub ORGANIZATION_ID.

Aby odczytać wpisy logów kontrolnych na poziomie projektu Firebase, uruchom to polecenie:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" --project=PROJECT_ID

Aby odczytać wpisy dziennika kontrolnego na poziomie folderu, uruchom to polecenie:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" --folder=FOLDER_ID

Aby odczytać wpisy logów kontrolnych na poziomie organizacji, uruchom to polecenie:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" --organization=ORGANIZATION_ID

Więcej informacji o używaniu narzędzia gcloud znajdziesz w artykule Odczytywanie wpisów w logach.

Interfejs API

Podczas tworzenia zapytań zastąp zmienne prawidłowymi wartościami, a nazwy lub identyfikatory dzienników audytu na poziomie projektu, folderu lub organizacji zastąp odpowiednimi nazwami wymienionymi w sekcji Nazwy dzienników audytu. Jeśli np. zapytanie zawiera PROJECT_ID, podany identyfikator projektu musi odnosić się do aktualnie wybranego projektu Firebase.

Aby użyć interfejsu Logging API do przeglądania wpisów w dzienniku kontrolnym, wykonaj te czynności:

  1. Otwórz sekcję Wypróbuj ten interfejs API w dokumentacji metody entries.list.

  2. Wklej poniższy kod do sekcji Treść żądania w formularzu Wypróbuj interfejs API. Kliknięcie tego wstępnie wypełnionego formularza automatycznie wypełni treść prośby, ale musisz podać prawidłowy PROJECT_ID w każdej nazwie logu.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
  3. Kliknij Wykonaj.

Więcej informacji o wykonywaniu zapytań znajdziesz w artykule Język zapytań usługi Logging.

Przykładowy wpis w dzienniku kontrolnym i sposób znajdowania w nim najważniejszych informacji znajdziesz w artykule Przykładowy wpis w dzienniku kontrolnym.

Dzienniki kontrolne routingu

Kierowanie dzienników kontrolnych do obsługiwanych miejsc docelowych odbywa się w taki sam sposób jak w przypadku innych rodzajów dzienników. Oto kilka powodów, dla których warto przekierowywać dzienniki kontrolne:

  • Jeśli chcesz przechowywać logi kontrolne przez dłuższy czas lub korzystać z bardziej zaawansowanych funkcji wyszukiwania, możesz kierować kopie logów kontrolnych do Google Cloud Storage, BigQuery lub Google Cloud Pub/Sub. Za pomocą Cloud Pub/Sub możesz kierować logi do innych aplikacji, repozytoriów i firm.

  • Aby zarządzać logami kontrolnymi w całej organizacji, możesz utworzyć zagregowane ujścia, które mogą kierować logi z dowolnych lub wszystkich projektów Firebase w organizacji.

  • Jeśli włączone logi kontrolne dostępu do danych przekraczają przydział logów w Twoich projektach Firebase, możesz utworzyć elementy docelowe, które wykluczą logi kontrolne dostępu do danych z Cloud Logging.

Instrukcje dotyczące routingu logów znajdziesz w artykule Konfigurowanie miejsc docelowych.

Ceny

Logi kontrolne aktywności administratora i logi kontrolne zdarzeń systemowych są bezpłatne.

Logi kontrolne dostępu do danych i logi kontrolne odrzuconych zasad są płatne.

Więcej informacji o cenach Cloud Logging znajdziesz w cenniku pakietu operacyjnego Google Cloud: Cloud Logging.