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 poluprotoPayload
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
obiektuAuditLog
, a w przypadku nowszych integracji – w polumetadata
.
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_Default
bucket.Rola Przeglądający logi prywatne
(roles/logging.privateLogViewer
) obejmuje uprawnienia zawarte wroles/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:
W konsoli Google Cloud otwórz stronę Logowanie > Eksplorator logów.
Na stronie Eksplorator logów wybierz istniejący projekt Firebase, folder lub organizację.
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:
Otwórz sekcję Wypróbuj ten interfejs API w dokumentacji metody
entries.list
.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" }
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.