Logowanie kontrolne Sprawdzania aplikacji Firebase

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 pole protoPayload 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 obiektu AuditLog; nowsze integracje używają pola metadata.

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łudze roles/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:

  1. W konsoli Google Cloud otwórz Logowanie > stronie eksploratora logów.

    Otwórz stronę eksploratora logów

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

  3. 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 :

  1. Przejdź do sekcji Wypróbuj ten interfejs API w dokumentacji dotyczącej entries.list. .

  2. 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"
    }
    
  3. 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.