Na tej stronie opisujemy logi kontrolne tworzone przez usługę Firebase w ramach logów kontrolnych Cloud.
Omówienie
Usługi Firebase tworzą kopie logów kontrolnych, aby pomóc Ci odpowiedzieć na pytania „kto, co, gdzie i kiedy?”. Są to logi audytu Clouda udostępniane w ramach projektu Google Cloud połączonego z Twoim projektem Firebase.
Twoje projekty Firebase zawierają tylko logi kontrolne zasobów znajdujących się bezpośrednio w projekcie.
Ogólne informacje o logach kontrolnych Cloud znajdziesz w artykule Omówienie logów kontrolnych Cloud. Więcej informacji o formacie dziennika kontrolnego znajdziesz w artykule Omówienie dzienników kontrolnych.
Dostępne dzienniki kontrolne
Dostępne są te typy dzienników kontrolnych Firebase App Hosting:
-
Logi kontrolne działania administratora
Obejmuje operacje „zapisu przez administratora”, które zapisują metadane lub informacje o konfiguracji.
Logów kontrolnych działań administracyjnych nie można wyłączyć.
-
Logi kontrolne dostępu do danych
Obejmuje operacje „odczyt przez administratora”, które wiążą się z odczytem metadanych lub informacji o konfiguracji. Obejmuje też operacje „odczyt danych” i „zapis danych”, które odczytują lub zapisują dane przekazywane przez użytkowników.
Aby otrzymywać logi kontrolne dostępu do danych, musisz je wyraźnie włączyć.
Pełniejsze opisy typów dzienników kontrolnych znajdziesz w artykule Typy dzienników kontrolnych.
Operacje objęte kontrolą
Poniżej znajdziesz podsumowanie, które operacje interfejsu API odpowiadają poszczególnym typom logów kontrolnych w Firebase App Hosting:
Typ uprawnień | Metody |
---|---|
ADMIN_READ |
google.firebase.apphosting.v1alpha.AppHosting.GetBackend google.firebase.apphosting.v1alpha.AppHosting.GetBuild google.firebase.apphosting.v1alpha.AppHosting.GetRollout google.firebase.apphosting.v1alpha.AppHosting.GetTraffic google.firebase.apphosting.v1alpha.AppHosting.ListBackends google.firebase.apphosting.v1alpha.AppHosting.ListBuilds google.firebase.apphosting.v1alpha.AppHosting.ListDomains google.firebase.apphosting.v1alpha.AppHosting.ListRollouts google.firebase.apphosting.v1beta.AppHosting.GetBackend google.firebase.apphosting.v1beta.AppHosting.GetBuild google.firebase.apphosting.v1beta.AppHosting.GetDomain google.firebase.apphosting.v1beta.AppHosting.GetTraffic google.firebase.apphosting.v1beta.AppHosting.ListBackends google.firebase.apphosting.v1beta.AppHosting.ListBuilds google.firebase.apphosting.v1beta.AppHosting.ListDomains google.firebase.apphosting.v1beta.AppHosting.ListRollouts |
ADMIN_WRITE |
google.firebase.apphosting.v1alpha.AppHosting.CreateBackend google.firebase.apphosting.v1alpha.AppHosting.CreateBuild google.firebase.apphosting.v1alpha.AppHosting.CreateDomain google.firebase.apphosting.v1alpha.AppHosting.CreateRollout google.firebase.apphosting.v1alpha.AppHosting.DeleteBackend google.firebase.apphosting.v1alpha.AppHosting.DeleteBuild google.firebase.apphosting.v1alpha.AppHosting.DeleteDomain google.firebase.apphosting.v1alpha.AppHosting.UpdateBuild google.firebase.apphosting.v1alpha.AppHosting.UpdateTraffic google.firebase.apphosting.v1beta.AppHosting.CreateBackend google.firebase.apphosting.v1beta.AppHosting.CreateBuild google.firebase.apphosting.v1beta.AppHosting.CreateDomain google.firebase.apphosting.v1beta.AppHosting.CreateRollout google.firebase.apphosting.v1beta.AppHosting.DeleteBackend google.firebase.apphosting.v1beta.AppHosting.DeleteBuild google.firebase.apphosting.v1beta.AppHosting.DeleteDomain google.firebase.apphosting.v1beta.AppHosting.UpdateBackend google.firebase.apphosting.v1beta.AppHosting.UpdateDomain google.firebase.apphosting.v1beta.AppHosting.UpdateTraffic |
Format dziennika kontrolnego
Wpisy w dzienniku kontrolnym obejmują te obiekty:
sam wpis w logu, który jest obiektem typu
LogEntry
; Przydatne pola to:- Wartość
logName
zawiera identyfikator zasobu i typ dziennika kontrolnego. - Atrybut
resource
zawiera element docelowy zweryfikowanej operacji. - Wartość
timestamp
zawiera czas operacji objętej kontrolą. - Plik
protoPayload
zawiera zweryfikowane informacje.
- Wartość
Dane logowania kontrolnego, które są obiektem
AuditLog
przechowywanym w poluprotoPayload
wpisu w logu.Opcjonalne informacje kontrolne dotyczące usługi, które są obiektem usługi. W przypadku starszych integracji ten obiekt jest przechowywany w polu
serviceData
obiektuAuditLog
; nowsze integracje używają polametadata
.
Informacje o innych polach w tych obiektach oraz o tym, jak je interpretować, znajdziesz w artykule Omówienie dzienników kontrolnych.
Nazwa logu
Nazwy zasobów logów kontrolnych Cloud wskazują projekt Firebase lub inny podmiotGoogle Cloud będący właścicielem logów kontrolnych oraz informują, czy log zawiera dane z logowania kontrolnego aktywności administratora, dostępu do danych, odmowy dostępu na podstawie zasad lub zdarzeń systemowych. Poniżej podano przykłady nazw logów kontrolnych aktywności administratora na poziomie projektu i logów kontrolnych dostępu do danych organizacji. Zmienne oznaczają identyfikatory projektu i organizacji Firebase.
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
Nazwa usługi
Dzienniki inspekcji Firebase App Hosting używają nazwy usługi
firebaseapphosting.googleapis.com
.
Pełną listę nazw wszystkich usług interfejsu Cloud Logging API wraz z odpowiadającymi im typami monitorowanych zasobów znajdziesz w artykule Mapowanie usług na zasoby.
Typy zasobów
Logi kontrolne Firebase App Hosting używają typu zasobu audited_resource
dla wszystkich logów kontrolnych.
Listę wszystkich typów monitorowanych zasobów Cloud Logging oraz informacje opisowe znajdziesz w artykule Typy monitorowanych zasobów.
Włączanie logowania w celu kontroli
Logi kontrolne aktywności administratora są zawsze włączone i nie można ich wyłączyć.
Logi kontrolne dostępu do danych są domyślnie wyłączone i nie są zapisywane, chyba że zostaną wyraźnie włączone (wyjątkiem są logi kontrolne dostępu do danych w BigQuery, których nie można wyłączyć).
Instrukcje dotyczące 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ą Twoją zdolność do uzyskiwania dostępu do danych logów kontrolnych w zasobach Google Cloud.
Wybierając uprawnienia i role związane z rejestrowaniem, które będą odpowiednie w Twoim przypadku użycia, weź pod uwagę te kwestie:
Rola wyświetlającego logi (
roles/logging.viewer
) daje dostęp tylko do odczytu do logó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 znajdujących się w puli_Default
.Rola przeglądającego logi prywatne (
(roles/logging.privateLogViewer
) obejmuje uprawnienia zawarte w poziomieroles/logging.viewer
oraz możliwość odczytu dzienników kontrolnych dostępu do danych w zasośniku_Default
.Pamiętaj, że jeśli te prywatne logi są przechowywane w definiowanych przez użytkownika zbiorach, każdy użytkownik, który ma uprawnienia do odczytu logów w tych zbiorach, może odczytać te prywatne logi. Więcej informacji o zasobach 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 kontroli, musisz znać identyfikator projektu Firebase, folderu lub organizacji, dla których chcesz wyświetlić informacje z dzienników kontroli. Możesz też określić inne indeksowane pola LogEntry
, np. resource.type
. Więcej informacji znajdziesz w artykule Szybkie wyszukiwanie wpisów w dzienniku.
Poniżej znajdziesz nazwy logów kontrolnych, które zawierają zmienne dla identyfikatorów projektu, folderu lub organizacji Firebase:
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
Logi audytu w Cloud Logging możesz wyświetlać za pomocą konsoli Google Cloud, narzędzia wiersza poleceń gcloud
lub interfejsu Logging API.
Konsola
Aby pobrać wpisy dziennika kontrolnego dotyczące Twojego projektu, folderu lub organizacji 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 dzienników wybierz istniejący projekt, folder lub organizację Firebase.
W panelu Konstruktor zapytań wykonaj te czynności:
W polu Typ zasobu wybierz zasób Google Cloud, którego dzienniki kontroli chcesz wyświetlić.
W polu Nazwa logu wybierz typ dziennika kontrolnego, który chcesz wyświetlić:
- W przypadku logów kontrolnych Aktywność 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 Odrzucona zasada wybierz zasada.
Jeśli nie widzisz tych opcji, oznacza to, że w danym projekcie, folderze lub organizacji Firebase nie ma żadnych logów inspekcji 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
zapewnia interfejs wiersza poleceń dla interfejsu Cloud Logging API. W każdej nazwie pliku dziennika podaj prawidłową wartość PROJECT_ID
, FOLDER_ID
lub ORGANIZATION_ID
.
Aby odczytać wpisy w logach 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 dziennika kontrolnego 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 Czytanie wpisów w dzienniku.
Interfejs API
Podczas tworzenia zapytań zastąp zmienne prawidłowymi wartościami, a także odpowiednią nazwę lub identyfikator dziennika inspekcji na poziomie projektu, folderu lub organizacji, zgodnie z ich listą w nazwach dzienników inspekcji. Jeśli np. zapytanie zawiera element PROJECT_ID, podany identyfikator projektu musi odnosić się do aktualnie wybranego projektu Firebase.
Aby za pomocą interfejsu Logging API wyświetlić wpisy dziennika kontrolnego, wykonaj te czynności:
Przejdź do sekcji Wypróbuj ten interfejs API w dokumentacji metody
entries.list
.Wpisz te informacje w polu Treść żądania w formularzu Wypróbuj to API. Po kliknięciu tego wstępnie wypełnionego formularza treść żądania zostanie automatycznie wypełniona, ale w każdym z nazwów logów musisz podać prawidłową wartość
PROJECT_ID
.{ "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ład wpisu w dzienniku kontrolnym i informacje o tym, jak znaleźć w nim najważniejsze informacje, znajdziesz w artykule Przykładowy wpis w dzienniku kontrolnym.
Przekierowywanie dzienników kontrolnych
Dzienniki kontrolne możesz kierować do obsługiwanych miejsc docelowych w taki sam sposób, w jaki kierujesz inne rodzaje dzienników. Oto kilka powodów, dla których możesz chcieć przekierowywać dzienniki kontroli:
Aby przechowywać logi audytowe przez dłuższy czas lub korzystać z bardziej zaawansowanych funkcji wyszukiwania, możesz przekazywać kopie logów audytowych do Google Cloud Storage, BigQuery lub Google Cloud Pub/Sub. Za pomocą Cloud Pub/Sub możesz kierować dane do innych aplikacji, innych repozytoriów i do firm zewnętrznych.
Aby zarządzać logami kontroli w całej organizacji, możesz utworzyć zbiorcze miejsca docelowe, które mogą przekierowywać logi z dowolnego lub wszystkich projektów Firebase w organizacji.
- Jeśli włączone przez Ciebie logi kontrolne dostępu do danych powodują, że projekty Firebase przekraczają przydziały logów, możesz utworzyć odbiorniki, które wykluczą z logowania logi kontrolne dostępu do danych.
Instrukcje dotyczące kierowania dzienników znajdziesz w artykule Konfigurowanie odbiorników.
Ceny
Logi kontrolne działań administracyjnych i logi kontrolne zdarzeń systemowych są bezpłatne.
Logi kontrolne dostępu do danych i logi kontrolne odrzuconej zasady są płatne.
Więcej informacji o cenach Cloud Logging znajdziesz w artykule Cennik pakietu operacyjnego Google Cloud: Cloud Logging.