Na tej stronie opisujemy logi kontrolne tworzone przez 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 logi kontrolne Cloud udostępniane w ramach projektu Google Cloud połączonego z Twoim projektem w Firebase.
Każdy projekt Firebase zawiera tylko logi kontrolne zasobów, które znajdują się bezpośrednio w projekcie.
Ogólne informacje o logach kontrolnych Cloud znajdziesz w artykule Ogólne informacje o logach kontrolnych Cloud. Aby lepiej poznać format logów kontrolnych, przeczytaj artykuł Omówienie logów kontrolnych.
Dostępne logi kontrolne
W przypadku funkcji Sprawdzanie aplikacji Firebase dostępne są te typy logów kontrolnych:
-
Logi kontrolne aktywności administratora
Obejmują operacje „zapisu 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
Obejmują operacje „odczytu przez administratora”, które odczytują metadane lub informacje o konfiguracji. Obejmują 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 wyraźnie włączyć.
Szczegółowe opisy typów logów kontrolnych znajdziesz w artykule Typy logów kontrolnych.
Skontrolowane operacje
Poniżej znajdziesz podsumowanie, które operacje interfejsu API odpowiadają poszczególnym typom logów kontrolnych w funkcji Sprawdzanie aplikacji Firebase:
| Typ uprawnienia | Metody |
|---|---|
ADMIN_READ |
google.firebase.appcheck.v1.ConfigService.BatchGetAppAttestConfigsgoogle.firebase.appcheck.v1.ConfigService.BatchGetDeviceCheckConfigsgoogle.firebase.appcheck.v1.ConfigService.BatchGetPlayIntegrityConfigsgoogle.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaEnterpriseConfigsgoogle.firebase.appcheck.v1.ConfigService.BatchGetRecaptchaV3Configsgoogle.firebase.appcheck.v1.ConfigService.BatchGetSafetyNetConfigsgoogle.firebase.appcheck.v1.ConfigService.GetAppAttestConfiggoogle.firebase.appcheck.v1.ConfigService.GetDebugTokengoogle.firebase.appcheck.v1.ConfigService.GetDeviceCheckConfiggoogle.firebase.appcheck.v1.ConfigService.GetPlayIntegrityConfiggoogle.firebase.appcheck.v1.ConfigService.GetRecaptchaEnterpriseConfiggoogle.firebase.appcheck.v1.ConfigService.GetRecaptchaV3Configgoogle.firebase.appcheck.v1.ConfigService.GetSafetyNetConfiggoogle.firebase.appcheck.v1.ConfigService.GetServicegoogle.firebase.appcheck.v1.ConfigService.ListDebugTokensgoogle.firebase.appcheck.v1.ConfigService.ListServicesgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetAppAttestConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetDeviceCheckConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetPlayIntegrityConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaEnterpriseConfigsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetRecaptchaV3Configsgoogle.firebase.appcheck.v1beta.ConfigService.BatchGetSafetyNetConfigsgoogle.firebase.appcheck.v1beta.ConfigService.GetAppAttestConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetDebugTokengoogle.firebase.appcheck.v1beta.ConfigService.GetDeviceCheckConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetPlayIntegrityConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetRecaptchaConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetRecaptchaEnterpriseConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetRecaptchaV3Configgoogle.firebase.appcheck.v1beta.ConfigService.GetResourcePolicygoogle.firebase.appcheck.v1beta.ConfigService.GetSafetyNetConfiggoogle.firebase.appcheck.v1beta.ConfigService.GetServicegoogle.firebase.appcheck.v1beta.ConfigService.ListDebugTokensgoogle.firebase.appcheck.v1beta.ConfigService.ListResourcePoliciesgoogle.firebase.appcheck.v1beta.ConfigService.ListServices |
ADMIN_WRITE |
google.firebase.appcheck.v1.ConfigService.BatchUpdateServicesgoogle.firebase.appcheck.v1.ConfigService.CreateDebugTokengoogle.firebase.appcheck.v1.ConfigService.DeleteDebugTokengoogle.firebase.appcheck.v1.ConfigService.UpdateAppAttestConfiggoogle.firebase.appcheck.v1.ConfigService.UpdateDebugTokengoogle.firebase.appcheck.v1.ConfigService.UpdateDeviceCheckConfiggoogle.firebase.appcheck.v1.ConfigService.UpdatePlayIntegrityConfiggoogle.firebase.appcheck.v1.ConfigService.UpdateRecaptchaEnterpriseConfiggoogle.firebase.appcheck.v1.ConfigService.UpdateRecaptchaV3Configgoogle.firebase.appcheck.v1.ConfigService.UpdateSafetyNetConfiggoogle.firebase.appcheck.v1.ConfigService.UpdateServicegoogle.firebase.appcheck.v1beta.ConfigService.BatchUpdateResourcePoliciesgoogle.firebase.appcheck.v1beta.ConfigService.BatchUpdateServicesgoogle.firebase.appcheck.v1beta.ConfigService.CreateDebugTokengoogle.firebase.appcheck.v1beta.ConfigService.CreateResourcePolicygoogle.firebase.appcheck.v1beta.ConfigService.DeleteDebugTokengoogle.firebase.appcheck.v1beta.ConfigService.DeleteResourcePolicygoogle.firebase.appcheck.v1beta.ConfigService.UpdateAppAttestConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateDebugTokengoogle.firebase.appcheck.v1beta.ConfigService.UpdateDeviceCheckConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdatePlayIntegrityConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaEnterpriseConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateRecaptchaV3Configgoogle.firebase.appcheck.v1beta.ConfigService.UpdateResourcePolicygoogle.firebase.appcheck.v1beta.ConfigService.UpdateSafetyNetConfiggoogle.firebase.appcheck.v1beta.ConfigService.UpdateServicegoogle.firebase.appcheck.v1beta.TokenVerificationService.VerifyAppCheckToken |
Format logów kontrolnych
Wpisy logów kontrolnych zawierają te obiekty:
Sam wpis logu, który jest obiektem typu
LogEntry. Przydatne pola to:logNamezawiera identyfikator zasobu i typ logu kontrolnego.resourcezawiera cel skontrolowanej operacji.timestampzawiera czas skontrolowanej operacji.protoPayloadzawiera skontrolowane informacje.
Dane logowania kontrolnego, które są obiektem
AuditLogprzechowywanym w poluprotoPayloadwpisu logu.Opcjonalne informacje kontrolne dotyczące usługi, które są obiektem specyficznym dla usługi. W przypadku starszych integracji ten obiekt jest przechowywany w polu
serviceDataobiektuAuditLog. Nowsze integracje używają polametadata.
Więcej informacji o innych polach w tych obiektach i o tym, jak je interpretować, znajdziesz w artykule Omówienie logów kontrolnych.
Nazwa logu
Nazwy zasobów logów kontrolnych Cloud wskazują projekt w Firebase lub inny Google Cloud podmiot, który jest właścicielem logów kontrolnych, oraz to, czy log zawiera aktywności administratora, dostępu do danych, odmowy dostępu czy zdarzenia systemowego. Na przykład poniżej znajdziesz nazwy logów kontrolnych aktywności administratora na poziomie projektu oraz logów kontrolnych dostępu do danych organizacji. Zmienne oznaczają identyfikatory projektu w Firebase i organizacji.
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
Nazwa usługi
Logi kontrolne funkcji Sprawdzanie aplikacji Firebase używają nazwy usługi firebaseappcheck.googleapis.com.
Pełną listę wszystkich nazw usług interfejsu 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 funkcji Sprawdzanie aplikacji Firebase używają typu zasobu audited_resource w przypadku wszystkich logów kontrolnych.
Włączanie logowania kontrolnego
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 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.
Przy wyborze uprawnień i ról specyficznych dla usługi Logging, które mają zastosowanie do Twojego przypadku użycia, weź pod uwagę te kwestie:
Rola Wyświetlający logi (
roles/logging.viewer) zapewnia dostęp tylko do odczytu do logów kontrolnych aktywności administratora, odmowy dostępu i zdarzeń systemowych. Jeśli masz tylko tę rolę, nie możesz wyświetlać logów kontrolnych dostępu do danych, które znajdują się w zasobniku_Default.Rola Wyświetlający logi prywatne
(roles/logging.privateLogViewer) obejmuje uprawnienia zawarte wroles/logging.viewer, plus the ability to read logów kontrolnych dostępu do danych w zasobniku_Default.Pamiętaj, że jeśli te logi prywatne są przechowywane w zasobnikach zdefiniowanych przez użytkownika, każdy użytkownik, który ma uprawnienia do odczytu 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 kontrolne, potrzeba dostępu do informacji o identyfikatorze projektu w Firebase, folderu lub organizacji, dla których chcesz wyświetlić informacje o logowaniu kontrolnym. Możesz też określić inne indeksowane
LogEntry pola, np. resource.type. Więcej informacji znajdziesz w artykule
Szybkie znajdowanie wpisów logu.
Poniżej znajdziesz nazwy logów kontrolnych. Zawierają one zmienne identyfikatorów projektu w 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
Logi kontrolne 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 logów kontrolnych projektu w Firebase, folderu lub organizacji, możesz użyć Eksploratora logów w konsoli Google Cloud:
W konsoli Google Cloud otwórz stronę Logging > Eksplorator logów.
Na stronie Eksplorator logów wybierz istniejący projekt w Firebase, folder lub organizację.
W panelu Kreator zapytań wykonaj te czynności:
W sekcji Typ zasobu wybierz zasób Google Cloud, którego logi kontrolne chcesz wyświetlić.
W sekcji Nazwa logu wybierz typ logu kontrolnego, który chcesz wyświetlić:
- W przypadku logów kontrolnych aktywności administratora wybierz activity.
- W przypadku logów kontrolnych dostępu do danych wybierz data_access.
- W przypadku logów kontrolnych zdarzeń systemowych wybierz system_event.
- W przypadku logów kontrolnych odmowy dostępu wybierz policy.
Jeśli nie widzisz tych opcji, oznacza to, że w projekcie w Firebase, folderze lub organizacji nie ma logów kontrolnych tego typu.
Więcej informacji o wysyłaniu 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 każdej nazwie logu podaj prawidłowy 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 logów kontrolnych 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 korzystaniu z narzędzia gcloud znajdziesz w artykule
Odczytywanie wpisów logu.
Interfejs API
Podczas tworzenia zapytań zastąp zmienne prawidłowymi wartościami i zamień odpowiednią nazwę logu kontrolnego lub identyfikatory na poziomie projektu, folderu lub organizacji zgodnie z listą nazw logów kontrolnych. Jeśli na przykład zapytanie zawiera PROJECT_ID, podany identyfikator projektu musi odnosić się do aktualnie wybranego projektu w Firebase.
Aby użyć interfejsu Logging API do sprawdzenia wpisów logów kontrolnych, wykonaj te czynności:
W dokumentacji metody
entries.listotwórz sekcję Try this API (Wypróbuj ten interfejs API).Wklej to do sekcji Request body (Treść żądania) formularza Try this API (Wypróbuj ten interfejs API). Kliknięcie tego wstępnie wypełnionego formularza automatycznie wypełni treść żądania, ale musisz podać prawidłowy
PROJECT_IDw każdej nazwie logu.{ "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ń usługi Logging.
Przykład wpisu logu kontrolnego i informacje o tym, jak znaleźć w nim najważniejsze informacje, znajdziesz w artykule Przykładowy wpis logu kontrolnego.
Routing logów kontrolnych
Logi kontrolne możesz kierować do obsługiwanych miejsc docelowych w taki sam sposób jak inne rodzaje logów. Oto kilka powodów, dla których możesz chcieć kierować logi kontrolne:
Aby 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 powodują przekroczenie limitu logów w projektach Firebase, możesz utworzyć ujścia, które wykluczają logi kontrolne dostępu do danych z usługi Logging.
Instrukcje dotyczące kierowania logów znajdziesz w artykule Konfigurowanie ujść.
Ceny
Logi kontrolne aktywności administratora i logi kontrolne zdarzeń systemowych są bezpłatne.
Logi kontrolne dostępu do danych i logi kontrolne odmowy dostępu są płatne.
Więcej informacji o cenach Cloud Logging znajdziesz w cenniku pakietu operacyjnego Google Cloud: Cloud Logging.