Firebase App Hosting के लिए ऑडिट लॉगिंग

इस पेज पर, Firebase के बनाए गए ऑडिट लॉग के बारे में बताया गया है. ये लॉग, Cloud ऑडिट लॉग का हिस्सा हैं.

खास जानकारी

Firebase की सेवाएं ऑडिट लॉग लिखती हैं, ताकि आपको इन सवालों के जवाब मिल सकें: "किसने, कहां, और कब क्या किया?". ये क्लाउड ऑडिट लॉग हैं. इन्हें आपके Firebase प्रोजेक्ट से जुड़े Google Cloud प्रोजेक्ट के हिस्से के तौर पर उपलब्ध कराया जाता है.

आपके हर Firebase प्रोजेक्ट में, सिर्फ़ उन संसाधनों के लिए ऑडिट लॉग होते हैं जो सीधे प्रोजेक्ट में मौजूद होते हैं.

Cloud ऑडिट लॉग के बारे में खास जानकारी के लिए, Cloud ऑडिट लॉग की खास जानकारी देखें. ऑडिट लॉग के फ़ॉर्मैट को बेहतर तरीके से समझने के लिए, ऑडिट लॉग को समझना लेख पढ़ें.

उपलब्ध ऑडिट लॉग

Firebase ऐप्लिकेशन होस्टिंग के लिए, इस तरह के ऑडिट लॉग उपलब्ध हैं:

  • एडमिन गतिविधि के ऑडिट लॉग

    इसमें "एडमिन राइट" ऑपरेशन शामिल हैं, जो मेटाडेटा या कॉन्फ़िगरेशन की जानकारी लिखते हैं.

    एडमिन गतिविधि के ऑडिट लॉग बंद नहीं किए जा सकते.

  • डेटा ऐक्सेस के ऑडिट लॉग

    इसमें "एडमिन रीड" ऑपरेशन शामिल हैं, जो मेटाडेटा या कॉन्फ़िगरेशन की जानकारी पढ़ते हैं. इसमें "डेटा पढ़ना" और "डेटा लिखना" जैसे ऑपरेशन भी शामिल हैं, जो उपयोगकर्ता से मिले डेटा को पढ़ते या उसमें बदलाव करते हैं.

    डेटा ऐक्सेस के ऑडिट लॉग पाने के लिए, आपको उन्हें साफ़ तौर पर चालू करना होगा.

ऑडिट लॉग के टाइप के बारे में पूरी जानकारी के लिए, ऑडिट लॉग के टाइप देखें.

ऑडिट किए गए ऑपरेशंस

यहां बताया गया है कि Firebase ऐप्लिकेशन होस्टिंग में, हर ऑडिट लॉग टाइप के लिए कौनसे एपीआई ऑपरेशन काम करते हैं:

अनुमति का टाइप तरीके
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

ऑडिट लॉग का फ़ॉर्मैट

ऑडिट लॉग की एंट्री में ये ऑब्जेक्ट शामिल होते हैं:

  • लॉग एंट्री, जो LogEntry टाइप का ऑब्जेक्ट है. काम के फ़ील्ड में ये शामिल हैं:

    • logName में, रिसॉर्स आईडी और ऑडिट लॉग का टाइप शामिल होता है.
    • resource में, ऑडिट किए गए ऑपरेशन का टारगेट शामिल होता है.
    • timestamp में, ऑडिट की गई कार्रवाई का समय शामिल होता है.
    • protoPayload में ऑडिट की गई जानकारी होती है.
  • ऑडिट लॉगिंग डेटा, जो लॉग एंट्री के protoPayload फ़ील्ड में मौजूद AuditLog ऑब्जेक्ट होता है.

  • सेवा के हिसाब से ऑडिट की जानकारी, जो सेवा के हिसाब से ऑब्जेक्ट होती है. पुराने इंटिग्रेशन के लिए, यह ऑब्जेक्ट AuditLog ऑब्जेक्ट के serviceData फ़ील्ड में रखा जाता है. नए इंटिग्रेशन, metadata फ़ील्ड का इस्तेमाल करते हैं.

इन ऑब्जेक्ट के अन्य फ़ील्ड और उनके बारे में जानकारी पाने के लिए, ऑडिट लॉग को समझना लेख पढ़ें.

लॉग का नाम

क्लाउड ऑडिट लॉग के रिसॉर्स के नाम से पता चलता है कि ऑडिट लॉग का मालिकाना हक किस Firebase प्रोजेक्ट या Google Cloud इकाई के पास है. साथ ही, यह भी पता चलता है कि लॉग में एडमिन गतिविधि, डेटा ऐक्सेस, नीति के उल्लंघन की वजह से ऐक्सेस अस्वीकार किया गया या सिस्टम इवेंट का ऑडिट लॉगिंग डेटा है या नहीं. उदाहरण के लिए, यहां प्रोजेक्ट-लेवल पर एडमिन गतिविधि के ऑडिट लॉग और संगठन के डेटा ऐक्सेस ऑडिट लॉग के लिए लॉग के नाम दिखाए गए हैं. वैरिएबल से Firebase प्रोजेक्ट और संगठन के आइडेंटिफ़ायर का पता चलता है.

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

सेवा का नाम

Firebase ऐप्लिकेशन होस्टिंग के ऑडिट लॉग में, सेवा के नाम का इस्तेमाल होता है firebaseapphosting.googleapis.com.

Cloud Logging API की सभी सेवाओं के नामों और उनसे जुड़े, निगरानी किए जा रहे संसाधन टाइप की पूरी सूची के लिए, सेवाओं को संसाधनों से मैप करना देखें.

संसाधन के टाइप

Firebase ऐप्लिकेशन होस्टिंग के ऑडिट लॉग, सभी ऑडिट लॉग के लिए रिसॉर्स टाइप audited_resource का इस्तेमाल करते हैं.

Cloud Logging की निगरानी में रखे गए सभी संसाधनों के टाइप और उनके बारे में जानकारी पाने के लिए, निगरानी में रखे गए संसाधनों के टाइप देखें.

ऑडिट लॉगिंग की सुविधा चालू करना

एडमिन गतिविधि के ऑडिट लॉग हमेशा चालू रहते हैं. इन्हें बंद नहीं किया जा सकता.

डेटा ऐक्सेस ऑडिट लॉग डिफ़ॉल्ट रूप से बंद होते हैं. जब तक इन्हें साफ़ तौर पर चालू नहीं किया जाता, तब तक ये लिखे नहीं जाते. हालांकि, BigQuery के लिए डेटा ऐक्सेस ऑडिट लॉग का अपवाद है. इन्हें बंद नहीं किया जा सकता.

डेटा ऐक्सेस के कुछ या सभी ऑडिट लॉग चालू करने के निर्देशों के लिए, डेटा ऐक्सेस लॉग कॉन्फ़िगर करना लेख पढ़ें.

अनुमतियां और भूमिकाएं

Cloud IAM की अनुमतियों और भूमिकाओं से यह तय होता है कि आपके पास Google Cloud संसाधनों में ऑडिट लॉग का डेटा ऐक्सेस करने की अनुमति है या नहीं.

यह तय करते समय कि आपके इस्तेमाल के उदाहरण पर कौनसी लॉगिंग से जुड़ी अनुमतियां और भूमिकाएं लागू होती हैं, इन बातों का ध्यान रखें:

  • लॉग व्यूअर की भूमिका (roles/logging.viewer) से, आपको एडमिन गतिविधि, नीति के उल्लंघन की वजह से ऐक्सेस अस्वीकार होने, और सिस्टम इवेंट के ऑडिट लॉग का रीड-ओनली ऐक्सेस मिलता है. अगर आपके पास सिर्फ़ यह भूमिका है, तो आपके पास _Default बकेट में मौजूद डेटा ऐक्सेस ऑडिट लॉग देखने का विकल्प नहीं होगा.

  • निजी लॉग व्यूअर की भूमिका(roles/logging.privateLogViewer में, roles/logging.viewer में मौजूद अनुमतियां शामिल होती हैं. साथ ही, _Default बकेट में डेटा ऐक्सेस के ऑडिट लॉग पढ़ने की सुविधा भी होती है.

    ध्यान दें कि अगर ये निजी लॉग, उपयोगकर्ता के तय किए गए बकेट में सेव किए जाते हैं, तो उन बकेट में लॉग पढ़ने की अनुमति वाले किसी भी उपयोगकर्ता के पास निजी लॉग पढ़ने का ऐक्सेस होता है. लॉग बकेट के बारे में ज़्यादा जानकारी के लिए, रूटिंग और स्टोरेज की खास जानकारी देखें.

ऑडिट लॉग के डेटा पर लागू होने वाली Cloud IAM अनुमतियों और भूमिकाओं के बारे में ज़्यादा जानने के लिए, ऐक्सेस कंट्रोल लेख पढ़ें.

लॉग देखें

ऑडिट लॉग ढूंढने और देखने के लिए, आपको उस Firebase प्रोजेक्ट, फ़ोल्डर या संगठन का आइडेंटिफ़ायर पता होना चाहिए जिसके लिए आपको ऑडिट लॉगिंग की जानकारी देखनी है. resource.type जैसे इंडेक्स किए गए अन्य LogEntry फ़ील्ड के बारे में भी बताया जा सकता है. ज़्यादा जानकारी के लिए, लॉग एंट्री तुरंत ढूंढें लेख पढ़ें.

यहां ऑडिट लॉग के नाम दिए गए हैं. इनमें 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

Google Cloud console, gcloud कमांड-लाइन टूल या Logging API का इस्तेमाल करके, Cloud Logging में ऑडिट लॉग देखे जा सकते हैं.

कंसोल

अपने Firebase प्रोजेक्ट, फ़ोल्डर या संगठन के लिए ऑडिट लॉग की एंट्री वापस पाने के लिए, Google Cloud Console में लॉग एक्सप्लोरर का इस्तेमाल किया जा सकता है:

  1. Google Cloud Console में, लॉगिंग > लॉग एक्सप्लोरर पेज पर जाएं.

    लॉग एक्सप्लोरर पेज पर जाएं

  2. लॉग एक्सप्लोरर पेज पर, कोई मौजूदा Firebase प्रोजेक्ट, फ़ोल्डर या संगठन चुनें.

  3. क्वेरी बिल्डर पैनल में, ये काम करें:

    • संसाधन का टाइप में जाकर, वह Google Cloud संसाधन चुनें जिसके ऑडिट लॉग आपको देखने हैं.

    • लॉग का नाम में, वह ऑडिट लॉग टाइप चुनें जिसे आपको देखना है:

      • एडमिन गतिविधि के ऑडिट लॉग के लिए, गतिविधि चुनें.
      • डेटा ऐक्सेस ऑडिट लॉग के लिए, data_access चुनें.
      • सिस्टम इवेंट के ऑडिट लॉग के लिए, system_event चुनें.
      • नीति के उल्लंघन की वजह से अस्वीकार किए गए ऑडिट लॉग के लिए, नीति चुनें.

    अगर आपको ये विकल्प नहीं दिखते हैं, तो इसका मतलब है कि Firebase प्रोजेक्ट, फ़ोल्डर या संगठन में उस टाइप के कोई ऑडिट लॉग उपलब्ध नहीं हैं.

    लॉग एक्सप्लोरर का इस्तेमाल करके क्वेरी करने के बारे में ज़्यादा जानने के लिए, लॉग क्वेरी बनाना लेख पढ़ें.

gcloud

gcloud कमांड-लाइन टूल, Cloud Logging API के लिए कमांड-लाइन इंटरफ़ेस उपलब्ध कराता है. हर लॉग के नाम में कोई मान्य PROJECT_ID, FOLDER_ID या ORGANIZATION_ID डालें.

अपने Firebase प्रोजेक्ट-लेवल के ऑडिट लॉग की एंट्री पढ़ने के लिए, यह कमांड चलाएं:

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

अपने फ़ोल्डर-लेवल के ऑडिट लॉग की एंट्री पढ़ने के लिए, यह कमांड चलाएं:

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

अपने संगठन के लेवल की ऑडिट लॉग एंट्री पढ़ने के लिए, यह कमांड चलाएं:

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

gcloud टूल का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, लॉग एंट्री पढ़ें लेख पढ़ें.

एपीआई

क्वेरी बनाते समय, वैरिएबल को मान्य वैल्यू से बदलें. साथ ही, ऑडिट लॉग के नामों में दिए गए प्रोजेक्ट-लेवल, फ़ोल्डर-लेवल या संगठन-लेवल के ऑडिट लॉग के नाम या आइडेंटिफ़ायर को बदलें. उदाहरण के लिए, अगर आपकी क्वेरी में PROJECT_ID शामिल है, तो आपके दिए गए प्रोजेक्ट आइडेंटिफ़ायर का रेफ़रंस, फ़िलहाल चुने गए Firebase प्रोजेक्ट से होना चाहिए.

अपने ऑडिट लॉग की एंट्री देखने के लिए, Logging API का इस्तेमाल करने के लिए, यह तरीका अपनाएं:

  1. entries.list के तरीके के लिए, दस्तावेज़ में इस एपीआई को आज़माएं सेक्शन पर जाएं.

  2. इस एपीआई को आज़माएं फ़ॉर्म के अनुरोध के मुख्य हिस्से में, यह जानकारी डालें. पहले से जानकारी वाले इस फ़ॉर्म पर क्लिक करने से, अनुरोध का मुख्य हिस्सा अपने-आप भर जाता है. हालांकि, आपको हर लॉग के नाम में एक मान्य PROJECT_ID डालना होगा.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
  3. लागू करें पर क्लिक करें.

क्वेरी करने के बारे में ज़्यादा जानकारी के लिए, क्वेरी भाषा को लॉग करना देखें.

ऑडिट लॉग एंट्री का उदाहरण और उसमें सबसे ज़रूरी जानकारी ढूंढने का तरीका जानने के लिए, ऑडिट लॉग एंट्री का सैंपल देखें.

ऑडिट लॉग को रूट करना

ऑडिट लॉग को उन डेस्टिनेशन पर भेजा जा सकता है जहां वे काम करते हैं. ठीक उसी तरह जैसे अन्य तरह के लॉग भेजे जाते हैं. ऑडिट लॉग को रूट करने की कुछ वजहें यहां दी गई हैं:

  • ऑडिट लॉग को लंबे समय तक सेव रखने या बेहतर खोज की सुविधाओं का इस्तेमाल करने के लिए, अपने ऑडिट लॉग की कॉपी को Google Cloud Storage, BigQuery या Google Cloud Pub/Sub पर भेजा जा सकता है. Cloud Pub/Sub का इस्तेमाल करके, अन्य ऐप्लिकेशन, अन्य रिपॉज़िटरी, और तीसरे पक्षों पर रूट किया जा सकता है.

  • पूरे संगठन में अपने ऑडिट लॉग मैनेज करने के लिए, एग्रीगेट किए गए सिंक बनाए जा सकते हैं. ये सिंक, संगठन के किसी भी या सभी Firebase प्रोजेक्ट से लॉग को रूट कर सकते हैं.

  • अगर चालू किए गए डेटा ऐक्सेस ऑडिट लॉग, आपके Firebase प्रोजेक्ट को लॉग के लिए तय किए गए कोटे से ज़्यादा डेटा भेज रहे हैं, तो ऐसे सिंक बनाए जा सकते हैं जिनमें डेटा ऐक्सेस ऑडिट लॉग को लॉगिंग से बाहर रखा जाए.

लॉग को रूट करने के बारे में निर्देशों के लिए, सिंक कॉन्फ़िगर करना देखें.

कीमत

एडमिन गतिविधि के ऑडिट लॉग और सिस्टम इवेंट के ऑडिट लॉग के लिए कोई शुल्क नहीं लिया जाता.

डेटा ऐक्सेस ऑडिट लॉग और नीति के तहत अस्वीकार किए गए ऑडिट लॉग के लिए शुल्क लिया जाता है.

Cloud Logging की कीमत के बारे में ज़्यादा जानने के लिए, Google Cloud के ऑपरेशंस सुइट की कीमत: Cloud Logging लेख पढ़ें.