Na tej stronie opisaliśmy logi kontrolne utworzone przez Firebase w ramach Logi kontrolne Cloud.
Omówienie
Usługi Firebase zapisują dzienniki kontrolne, aby pomóc Ci odpowiedzieć na pytania „Kto zrobił co, gdzie i kiedy?”. Są to Logi kontrolne Cloud udostępniane w ramach Projekt Google Cloud został połączony z Twoim projekt Firebase.
Każdy projekt Firebase zawiera tylko logi kontrolne zasobów, które znajdują się bezpośrednio w projekcie.
Ogólne omówienie logów kontrolnych Cloud znajdziesz w artykule Omówienie logów kontrolnych Cloud. Aby lepiej zrozumieć treść audytu format dziennika, zobacz Omówienie dzienników kontrolnych
Dostępne dzienniki kontrolne
W przypadku Sprawdzania aplikacji Firebase dostępne są te typy logów kontrolnych:
-
Logi kontrolne aktywności administratora
Obejmuje „zapis administratora” operacje zapisu metadanych lub konfiguracji i informacjami o nich.
Nie możesz wyłączyć logów kontrolnych aktywności administratora.
-
Logi kontrolne dostępu do danych
Obejmuje to „odczyt przez administratora” operacje odczytu metadanych lub konfiguracji i informacjami o nich. Obejmuje też „odczyt danych” i „zapis danych” Operacje, które odczyt i zapis danych przekazywanych przez użytkowników.
Aby otrzymywać logi kontrolne dostępu do danych, musisz je jawnie włączyć.
Bardziej szczegółowe opisy typów logów kontrolnych znajdziesz w artykule Typy dzienników kontrolnych
Operacje podlegające kontroli
Poniżej znajdziesz podsumowanie operacji interfejsu API, które odpowiadają poszczególnym logom kontrolnym. w Sprawdzaniu aplikacji Firebase:
Typ uprawnienia | Metody |
---|---|
ADMIN_READ |
google.firebase.appcheck.v1.ConfigService.BatchGetAppAttestConfigs google.firebase.appcheck.v1.ConfigService.BatchGetDeviceCheckConfigs google.firebase.appcheck.v1.ConfigService.BatchGetPlayIntegrityConfigs google.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaEnterpriseConfigs google.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaV3Configs google.firebase.appcheck.v1.ConfigService.BatchGetSafetyNetConfigs google.firebase.appcheck.v1.ConfigService.GetAppAttestConfig google.firebase.appcheck.v1.ConfigService.GetDebugToken google.firebase.appcheck.v1.ConfigService.GetDeviceCheckConfig google.firebase.appcheck.v1.ConfigService.GetPlayIntegrityConfig google.firebase.appcheck.v1.ConfigService.GetRecaptchaEnterpriseConfig google.firebase.appcheck.v1.ConfigService.GetRecaptchaV3Config google.firebase.appcheck.v1.ConfigService.GetSafetyNetConfig google.firebase.appcheck.v1.ConfigService.GetService google.firebase.appcheck.v1.ConfigService.ListDebugTokens google.firebase.appcheck.v1.ConfigService.ListServices google.firebase.appcheck.v1beta.ConfigService.BatchGetAppAttestConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetDeviceCheckConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetPlayIntegrityConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaEnterpriseConfigs google.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaV3Configs google.firebase.appcheck.v1beta.ConfigService.BatchGetSafetyNetConfigs google.firebase.appcheck.v1beta.ConfigService.GetAppAttestConfig google.firebase.appcheck.v1beta.ConfigService.GetDebugToken google.firebase.appcheck.v1beta.ConfigService.GetDeviceCheckConfig google.firebase.appcheck.v1beta.ConfigService.GetPlayIntegrityConfig google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaConfig google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaEnterpriseConfig google.firebase.appcheck.v1beta.ConfigService.GetRecaptchaV3Config google.firebase.appcheck.v1beta.ConfigService.GetResourcePolicy google.firebase.appcheck.v1beta.ConfigService.GetSafetyNetConfig google.firebase.appcheck.v1beta.ConfigService.GetService google.firebase.appcheck.v1beta.ConfigService.ListDebugTokens google.firebase.appcheck.v1beta.ConfigService.ListResourcePolicies google.firebase.appcheck.v1beta.ConfigService.ListServices |
ADMIN_WRITE |
google.firebase.appcheck.v1.ConfigService.BatchUpdateServices google.firebase.appcheck.v1.ConfigService.CreateDebugToken google.firebase.appcheck.v1.ConfigService.DeleteDebugToken google.firebase.appcheck.v1.ConfigService.UpdateAppAttestConfig google.firebase.appcheck.v1.ConfigService.UpdateDebugToken google.firebase.appcheck.v1.ConfigService.UpdateDeviceCheckConfig google.firebase.appcheck.v1.ConfigService.UpdatePlayIntegrityConfig google.firebase.appcheck.v1.ConfigService.UpdateRecaptchaEnterpriseConfig google.firebase.appcheck.v1.ConfigService.UpdateRecaptchaV3Config google.firebase.appcheck.v1.ConfigService.UpdateSafetyNetConfig google.firebase.appcheck.v1.ConfigService.UpdateService google.firebase.appcheck.v1beta.ConfigService.BatchUpdateResourcePolicies google.firebase.appcheck.v1beta.ConfigService.BatchUpdateServices google.firebase.appcheck.v1beta.ConfigService.CreateDebugToken google.firebase.appcheck.v1beta.ConfigService.CreateResourcePolicy google.firebase.appcheck.v1beta.ConfigService.DeleteDebugToken google.firebase.appcheck.v1beta.ConfigService.DeleteResourcePolicy google.firebase.appcheck.v1beta.ConfigService.UpdateAppAttestConfig google.firebase.appcheck.v1beta.ConfigService.UpdateDebugToken google.firebase.appcheck.v1beta.ConfigService.UpdateDeviceCheckConfig google.firebase.appcheck.v1beta.ConfigService.UpdatePlayIntegrityConfig google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaConfig google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaEnterpriseConfig google.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaV3Config google.firebase.appcheck.v1beta.ConfigService.UpdateResourcePolicy google.firebase.appcheck.v1beta.ConfigService.UpdateSafetyNetConfig google.firebase.appcheck.v1beta.ConfigService.UpdateService google.firebase.appcheck.v1beta.TokenVerificationService.VerifyAppCheckToken |
Format dziennika kontrolnego
Wpisy logu kontrolnego zawierają te obiekty:
Wpis logu, który jest obiektem typu
LogEntry
. Przydatne pola to między innymi:logName
zawiera identyfikator zasobu i typ logu kontrolnego.resource
zawiera obiekt docelowy objętej kontrolą.timestamp
zawiera czas operacji objętej kontrolą.protoPayload
zawiera informacje podlegające kontroli.
dane logowania kontrolnego, które są obiektem
AuditLog
przechowywanym w poleprotoPayload
we wpisie logu.Opcjonalne informacje o kontroli dla konkretnej usługi, które są związane z konkretną usługą obiektu. W przypadku starszych integracji ten obiekt jest przechowywany w:
serviceData
pola obiektuAuditLog
; nowsze integracje używają polametadata
.
Informacje o innych polach tych obiektów i o tym, jak je interpretować, znajdziesz w Omówienie dzienników kontrolnych
Nazwa logu
Nazwy zasobów logów kontrolnych Cloud wskazują na projekt Firebase lub inny Google Cloud encja, do której należą dzienniki kontrolne, i informacje o tym, czy dziennik zawiera Dane dotyczące aktywności administratora, dostępu do danych, odmowy dostępu do zasad lub danych logowania zdarzeń systemowych. Na przykład poniżej znajdziesz nazwy logów aktywności administratora na poziomie projektu i dzienniki kontrolne dostępu do danych organizacji. Zmienne oznaczają Identyfikatory projektów i organizacji Firebase.
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
Nazwa usługi
Logi kontrolne Sprawdzania aplikacji Firebase używają nazwy usługi
firebaseappcheck.googleapis.com
Pełną listę wszystkich nazw usług Cloud Logging API i odpowiadających im nazw monitorowany typ zasobów, zobacz Mapowanie usług na zasoby.
Typy zasobów
Użycie logów kontrolnych Sprawdzania aplikacji Firebase
typ zasobu audited_resource
na potrzeby wszystkich logów kontrolnych.
Lista wszystkich typów zasobów monitorowanych przez Cloud Logging i opisowych Więcej informacji zawiera Obserwowane typy zasobów.
Włącz logowanie kontrolne
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, dopóki nie zostaną wyraźnie włączone (wyjątek to logi kontrolne dostępu do danych dla BigQuery, której nie można wyłączyć).
Instrukcje dotyczące włączania niektórych lub wszystkich logów kontrolnych dostępu do danych znajdziesz w tych artykułach: Skonfiguruj logi dostępu do danych
Uprawnienia i role
Uprawnienia i role Cloud IAM określają możliwość dostępu do logów kontrolnych. w zasobach Google Cloud.
Podczas wyboru Uprawnienia i role związane z logowaniem mają zastosowanie do dla swojego przypadku użycia, weź pod uwagę te kwestie:
Rola Przeglądający logi (
roles/logging.viewer
) daje dostęp tylko do odczytu do Logi aktywności administratora, odrzuconych zasad i zdarzeń systemowych. Jeśli masz tylko w tej roli, nie możesz wyświetlać logów kontrolnych dostępu do danych, które znajdują się w_Default
zasobnika.rola Wyświetlający logi prywatne
(roles/logging.privateLogViewer
) obejmuje zawarte w usłudzeroles/logging.viewer
oraz możliwość odczytu Logi kontrolne dostępu do danych w zasobniku_Default
.Pamiętaj, że jeśli te logi prywatne są przechowywane w zasobnikach definiowanych przez użytkownika, użytkownik mający uprawnienia do odczytu logów w tych zasobnikach może odczytywać logi prywatne dzienników. Więcej informacji o zasobnikach logów znajdziesz w artykule Omówienie routingu i miejsca na dane
Więcej informacji o odpowiednich uprawnieniach i rolach Cloud IAM aby dowiedzieć się więcej o danych dzienników kontrolnych, zapoznaj się z artykułem Kontrola dostępu.
Wyświetl logi
Aby znaleźć i wyświetlić logi kontrolne, musisz znać identyfikator
Projekt, folder lub organizacja Firebase, które chcesz wyświetlić
dane logowania kontrolnego. Możesz dokładniej określić inne zindeksowane
LogEntry
, np. resource.type
; , aby poznać szczegóły, zapoznaj się z
Szybkie znajdowanie wpisów w dzienniku
Oto nazwy dzienników kontrolnych: zawierają zmienne dla argumentu identyfikatory 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 kontrolne w Cloud Logging możesz wyświetlać za pomocą
Konsola Google Cloud, narzędzie wiersza poleceń gcloud
lub interfejs Logging API.
Konsola
Możesz użyć eksploratora logów w konsoli Google Cloud aby pobrać wpisy logu kontrolnego dotyczące projektu Firebase, folderu lub organizacji:
W konsoli Google Cloud otwórz Logowanie > stronie eksploratora logów.
Na stronie Eksplorator logów wybierz istniejący projekt, folder lub organizacja Firebase.
W panelu Konstruktora zapytań wykonaj te czynności:
W sekcji Typ zasobu wybierz zasób Google Cloud, którego i dzienniki kontrolne, które chcesz wyświetlić.
W sekcji Nazwa logu wybierz typ logu kontrolnego, który chcesz wyświetlić:
- W przypadku dzienników kontrolnych aktywności administratora wybierz aktywność.
- W przypadku logów kontrolnych dostępu do danych wybierz data_access.
- W przypadku dzienników kontrolnych zdarzeń systemowych wybierz system_event.
- Z listy dzienników kontrolnych odrzuconych zasad wybierz zasada.
Jeśli nie widzisz tych opcji, nie ma żadnych logów kontrolnych który jest dostępny w projekcie, folderze lub folderze Firebase. Twojej organizacji.
Więcej informacji o wysyłaniu zapytań za pomocą eksploratora logów znajdziesz w artykule Twórz zapytania dotyczące logów.
gcloud
Narzędzie wiersza poleceń gcloud
udostępnia interfejs wiersza poleceń
Cloud Logging API. Podaj prawidłową
PROJECT_ID
, FOLDER_ID
,
lub ORGANIZATION_ID
w każdej z nazw logów.
Aby odczytać wpisy logu kontrolnego na poziomie projektu Firebase, uruchom polecenie następujące polecenie:
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" --project=PROJECT_ID
Aby odczytać wpisy w dzienniku kontrolnym na poziomie folderu, uruchom to polecenie:
gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" --folder=FOLDER_ID
Aby odczytać wpisy w dzienniku kontrolnym na poziomie organizacji, uruchom następujące polecenie:
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" --organization=ORGANIZATION_ID
Więcej informacji o korzystaniu z narzędzia gcloud
znajdziesz tutaj:
Odczytaj wpisy logu.
Interfejs API
Podczas tworzenia zapytań zastąp zmienne prawidłowymi wartościami, możesz zastąpić odpowiednie wartości na poziomie projektu, na poziomie folderu lub nazwy lub identyfikatory w dzienniku kontrolnym na poziomie organizacji wymienione w dzienniku kontrolnym; nazw. Jeśli na przykład zapytanie zawiera ciąg PROJECT_ID, podany identyfikator projektu musi odnosić się do obecnie wybranego projekt Firebase.
Aby za pomocą interfejsu Logging API przeglądać wpisy w logu kontrolnym, wykonaj :
Przejdź do sekcji Wypróbuj ten interfejs API w dokumentacji dotyczącej
entries.list
. .Umieść ten kod w sekcji Treść żądania w sekcji Spróbuj to zrobić API. Klikając ten wstępnie wypełniony formularz, automatycznie wypełnia treść żądania, ale trzeba podaj prawidłowe
PROJECT_ID
w każdym z logów nazw.{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Kliknij Execute (Wykonaj).
Więcej informacji o wysyłaniu zapytań znajdziesz w artykule Język zapytań rejestrowania.
Przykładowy wpis w dzienniku kontrolnym wraz z instrukcjami znajdowania najważniejszych Więcej informacji znajdziesz Przykładowy wpis w dzienniku kontrolnym
Logi kontrolne trasy
Możesz przekazywać dzienniki kontrolne do obsługiwanego miejsca docelowe w taki sam sposób, w jaki możesz kierować inne rodzaje logów. Oto Oto kilka powodów, dla których warto kierować dzienniki kontrolne:
Aby przechowywać logi kontrolne przez dłuższy czas lub korzystać z bardziej zaawansowanych możesz kierować kopie dzienników kontrolnych do Google Cloud Storage, BigQuery lub Google Cloud Pub/Sub. Zastosowanie Cloud Pub/Sub, możesz kierować do innych aplikacji, do repozytoriów innych firm i do innych firm.
Aby zarządzać dziennikami kontrolnymi w całej organizacji, możesz utworzyć zagregowane ujścia, które mogą logi tras z dowolnego projektu Firebase lub ze wszystkich projektów Firebase w organizacji.
- Jeśli włączone logi kontrolne dostępu do danych powodują przekazywanie projektów Firebase nad przydziałami logów, możesz tworzyć ujścia, wykluczyć logi kontrolne dostępu do danych z usługi Logging.
Instrukcje dotyczące logów routingu znajdziesz w artykule Skonfiguruj ujścia
Ceny
dzienniki kontrolne aktywności administratora oraz Dzienniki kontrolne zdarzeń systemowych są bezpłatne.
dzienniki kontrolne dostępu do danych oraz Logi kontrolne odrzuconych zasad są płatne.
Więcej informacji o opłatach za Cloud Logging znajdziesz na stronie Cennik pakietu operacyjnego Google Cloud: Cloud Logging.