Firebase App Hosting için denetim günlüğü

Bu sayfada, Firebase tarafından Cloud Denetleme Günlükleri kapsamında oluşturulan denetleme günlükleri açıklanmaktadır.

Genel Bakış

Firebase hizmetleri, "Kim neyi, nerede ve ne zaman yaptı?" sorularını yanıtlamanıza yardımcı olmak için denetleme günlükleri yazar. Bunlar, Firebase projenize bağlı Google Cloud projesinin bir parçası olarak sağlanan Cloud denetim günlükleridir.

Firebase projelerinizin her biri yalnızca doğrudan projede bulunan kaynakların denetim günlüklerini içerir.

Cloud Denetleme Günlükleri'ne genel bir bakış için Cloud Denetleme Günlükleri'ne genel bakış başlıklı makaleyi inceleyin. Denetleme günlüğü biçimini daha ayrıntılı bir şekilde anlamak için Denetleme günlüklerini anlama başlıklı makaleyi inceleyin.

Kullanılabilir denetleme günlükleri

Firebase App Hosting için aşağıdaki denetleme günlüğü türleri kullanılabilir:

  • Yönetici Etkinliği denetleme günlükleri

    Meta veri veya yapılandırma bilgilerini yazan "yönetici yazma" işlemlerini içerir.

    Yönetici Etkinliği denetleme günlüklerini devre dışı bırakamazsınız.

  • Veri Erişimi denetleme günlükleri

    Meta verileri veya yapılandırma bilgilerini okuyan "yönetici okuma" işlemlerini içerir. Kullanıcı tarafından sağlanan verileri okuyan veya yazan "veri okuma" ve "veri yazma" işlemlerini de içerir.

    Veri Erişimi denetleme günlüklerini almak için açıkça etkinleştirmeniz gerekir.

Denetleme günlüğü türlerinin daha ayrıntılı açıklamaları için Denetleme günlüğü türleri başlıklı makaleyi inceleyin.

Denetlenen işlemler

Aşağıda, Firebase App Hosting'deki her denetleme günlüğü türüne hangi API işlemlerinin karşılık geldiği özetlenmiştir:

İzin türü Yöntemler
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

Denetleme günlüğü biçimi

Denetleme günlüğü girişleri aşağıdaki nesneleri içerir:

  • Günlük girişinin kendisidir. LogEntry türündeki bir nesnedir. Yararlı alanlar şunlardır:

    • logName, kaynak kimliğini ve denetleme günlüğü türünü içerir.
    • resource, denetlenen işlemin hedefini içerir.
    • timestamp, denetlenen işlemin zamanını içerir.
    • protoPayload, denetlenen bilgileri içerir.
  • Günlük girişinin protoPayload alanında tutulan bir AuditLog nesnesi olan denetim günlüğü verileri.

  • Hizmete özel bir nesne olan isteğe bağlı hizmete özel denetim bilgileri. Eski entegrasyonlarda bu nesne, AuditLog nesnesinin serviceData alanında bulunur. Yeni entegrasyonlarda ise metadata alanı kullanılır.

Bu nesnelerdeki diğer alanlar ve bunların nasıl yorumlanacağı hakkında bilgi edinmek için Denetleme günlüklerini anlama başlıklı makaleyi inceleyin.

Günlük adı

Cloud Denetleme Günlükleri kaynak adları, Firebase projesini veya denetleme günlüklerinin sahibi olan diğer varlığı ve günlüğün Yönetici Etkinliği, Veri Erişimi, Politika Reddedildi veya Sistem Etkinliği denetleme günlük kaydı verilerini içerip içermediğini belirtir.Google Cloud Örneğin, aşağıdaki örnekte proje düzeyinde yönetici etkinliği denetleme günlüklerinin ve bir kuruluşun veri erişimi denetleme günlüklerinin günlük adları gösterilmektedir. Değişkenler, Firebase proje ve kuruluş tanımlayıcılarını belirtir.

projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access

Hizmet adı

Firebase Uygulama Barındırma denetleme günlüklerinde firebaseapphosting.googleapis.com hizmet adı kullanılır.

Tüm Cloud Logging API hizmet adlarının ve bunlara karşılık gelen izlenen kaynak türlerinin tam listesi için Hizmetleri kaynaklarla eşleme başlıklı makaleyi inceleyin.

Kaynak türleri

Firebase App Hosting denetleme günlükleri, tüm denetleme günlükleri için audited_resource kaynak türünü kullanır.

Cloud Logging'un izlediği tüm kaynak türlerinin listesi ve açıklayıcı bilgiler için İzlenen kaynak türleri başlıklı makaleyi inceleyin.

Denetleme günlüklerini etkinleştirme

Yönetici Etkinliği denetleme günlükleri her zaman etkindir ve devre dışı bırakılamaz.

Veri Erişimi denetleme günlükleri varsayılan olarak devre dışıdır ve açıkça etkinleştirilmediği sürece yazılmaz (BigQuery için devre dışı bırakılamayan Veri Erişimi denetleme günlükleri istisnadır).

Veri Erişimi denetleme günlüklerinizin bir kısmını veya tamamını etkinleştirmeyle ilgili talimatlar için Veri Erişimi günlüklerini yapılandırma bölümüne bakın.

İzinler ve roller

Cloud IAM izinleri ve rolleri, Google Cloud kaynaklarındaki denetleme günlükleri verilerine erişme olanağınızı belirler.

Kullanım alanınız için hangi günlüğe özgü izinlerin ve rollerin geçerli olduğuna karar verirken aşağıdakileri göz önünde bulundurun:

  • Günlük Görüntüleyici rolü (roles/logging.viewer), Yönetici Etkinliği, Politika Reddedildi ve Sistem Etkinliği denetleme günlüklerine salt okuma erişimi sağlar. Yalnızca bu role sahipseniz _Defaultpaketindeki Veri Erişimi denetleme günlüklerini görüntüleyemezsiniz.

  • Özel Günlük Görüntüleyici rolü(roles/logging.privateLogViewer), roles/logging.viewer'da bulunan izinlerin yanı sıra _Default paketindeki Veri Erişimi denetleme günlüklerini okuma olanağı sunar.

    Bu gizli günlükler kullanıcı tanımlı paketlerde depolanıyorsa bu paketlerdeki günlükleri okuma iznine sahip olan tüm kullanıcıların gizli günlükleri okuyabileceğini unutmayın. Günlük paketleri hakkında daha fazla bilgi için Yönlendirme ve depolamaya genel bakış başlıklı makaleyi inceleyin.

Denetleme günlükleri verilerine uygulanan Cloud IAM izinleri ve rolleri hakkında daha fazla bilgi için Erişim denetimi başlıklı makaleyi inceleyin.

Günlükleri göster

Denetim günlüklerini bulup görüntülemek için denetim günlük bilgilerini görüntülemek istediğiniz Firebase projesinin, klasörünün veya kuruluşunun tanımlayıcısını bilmeniz gerekir. resource.type gibi dizine eklenen diğer LogEntry alanlarını da belirtebilirsiniz. Ayrıntılar için Günlük girişlerini hızlıca bulma başlıklı makaleyi inceleyin.

Aşağıda, Firebase projesinin, klasörünün veya kuruluşunun tanımlayıcılarına yönelik değişkenler içeren denetleme günlüğü adları verilmiştir:

   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

Google Cloud Console'u, gcloud komut satırı aracını veya Logging API'yi kullanarak Cloud Logging'da denetim günlüklerini görüntüleyebilirsiniz.

Konsol

Firebase projeniz, klasörünüz veya kuruluşunuzla ilgili denetleme günlüğü girişlerinizi almak için Google Cloud Console'daki Günlük Gezgini'ni kullanabilirsiniz:

  1. Google Cloud Console'da Günlük kaydı > Günlük Gezgini sayfasına gidin.

    Günlük Gezgini sayfasına gidin

  2. Günlük Gezgini sayfasında mevcut bir Firebase projesi, klasörü veya kuruluşu seçin.

  3. Sorgu oluşturucu bölmesinde aşağıdakileri yapın:

    • Kaynak türü bölümünde, denetim günlüklerini görmek istediğiniz Google Cloud kaynağı seçin.

    • Günlük adı bölümünde, görmek istediğiniz denetim günlüğü türünü seçin:

      • Yönetici Etkinliği denetleme günlükleri için etkinlik'i seçin.
      • Veri Erişimi denetleme günlükleri için data_access'i seçin.
      • Sistem Etkinliği denetleme günlükleri için system_event'i seçin.
      • Politika Reddedildi denetleme günlükleri için policy'yi seçin.

    Bu seçenekleri görmüyorsanız Firebase projesinde, klasöründe veya kuruluşunda bu türde bir denetim günlüğü yoktur.

    Günlük Gezgini'ni kullanarak sorgu oluşturma hakkında daha fazla bilgi için Günlük sorguları oluşturma başlıklı makaleyi inceleyin.

gcloud

gcloud komut satırı aracı, Cloud Logging API için bir komut satırı arayüzü sağlar. Her bir günlük adında geçerli bir PROJECT_ID, FOLDER_ID veya ORGANIZATION_ID değeri belirtin.

Firebase proje düzeyindeki denetleme günlük girişlerinizi okumak için aşağıdaki komutu çalıştırın:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" --project=PROJECT_ID

Klasör düzeyindeki denetim günlüğü girişlerinizi okumak için aşağıdaki komutu çalıştırın:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" --folder=FOLDER_ID

Kuruluş düzeyindeki denetleme günlüğü girişlerinizi okumak için aşağıdaki komutu çalıştırın:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" --organization=ORGANIZATION_ID

gcloud aracını kullanma hakkında daha fazla bilgi için Günlük girişlerini okuma başlıklı makaleyi inceleyin.

API

Sorgularınızı oluştururken değişkenleri geçerli değerlerle değiştirin, denetim günlüğü adlarında listelenen uygun proje düzeyindeki, klasör düzeyindeki veya kuruluş düzeyindeki denetim günlüğü adını ya da tanımlayıcıları yerine koyun. Örneğin, sorgunuzda PROJECT_ID varsa sağladığınız proje tanımlayıcısı, şu anda seçili olan Firebase projesini referans almalıdır.

Denetleme günlüğü girişlerinizi incelemek için Logging API'yi kullanmak üzere aşağıdakileri yapın:

  1. entries.list yönteminin dokümanlarında Bu API'yi deneyin bölümüne gidin.

  2. Aşağıdakileri Bu API'yi deneyin formunun İstek metni bölümüne girin. Bu önceden doldurulmuş formu tıkladığınızda istek gövdesi otomatik olarak doldurulur ancak günlük adlarının her birine geçerli bir PROJECT_ID sağlamanız gerekir.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
  3. Yürüt'ü tıklayın.

Sorgulama hakkında daha fazla bilgi için Günlük sorgu dili başlıklı makaleyi inceleyin.

Denetleme günlüğü girişi örneği ve bu girişteki en önemli bilgilerin nasıl bulunacağı hakkında bilgi edinmek için Denetleme günlüğü girişi örneği başlıklı makaleyi inceleyin.

Yön denetleme günlükleri

Diğer günlük türlerini yönlendirdiğiniz gibi denetim günlüklerini desteklenen hedeflere yönlendirebilirsiniz. Denetleme günlüklerinizi yönlendirmek istemenizin bazı nedenleri şunlardır:

  • Denetim günlüklerini daha uzun süre saklamak veya daha güçlü arama özellikleri kullanmak için denetim günlüklerinizin kopyalarını Google Cloud Storage, BigQuery veya Google Cloud Pub/Sub'a yönlendirebilirsiniz. Cloud Pub/Sub'ı kullanarak diğer uygulamalara, diğer depolara ve üçüncü taraflara yönlendirme yapabilirsiniz.

  • Kuruluşun tamamında denetim günlüklerinizi yönetmek için kuruluştaki herhangi bir Firebase projesinden veya tüm projelerden gelen günlükleri yönlendirebilen toplu alıcılar oluşturabilirsiniz.

  • Etkinleştirilen Veri Erişimi denetleme günlükleriniz, Firebase projelerinizi günlük atamalarınızın üzerine çıkarıyorsa Veri Erişimi denetleme günlüklerini Günlük'ten hariç tutan alıcılar oluşturabilirsiniz.

Günlükleri yönlendirmeyle ilgili talimatlar için Toplayıcıları yapılandırma başlıklı makaleyi inceleyin.

Fiyatlandırma

Yönetici Etkinliği denetleme günlükleri ve Sistem Etkinliği denetleme günlükleri ücretsizdir.

Veri Erişimi denetleme günlükleri ve Politika Reddedildi denetleme günlükleri ücretlidir.

Cloud Logging fiyatlandırması hakkında daha fazla bilgi için Google Cloud'un işlem paketi fiyatlandırması: Cloud Logging başlıklı makaleyi inceleyin.