Firebase ऐप्लिकेशन की जांच के लिए ऑडिट लॉग देखने की सुविधा

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

खास जानकारी

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

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

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

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

Firebase App Check के लिए, ये ऑडिट लॉग उपलब्ध हैं:

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

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

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

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

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

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

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

ऑडिट की गई कार्रवाइयां

यहां, Firebase App Check में हर ऑडिट लॉग टाइप से जुड़ी एपीआई कार्रवाइयों के बारे में बताया गया है:

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

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

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

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

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

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

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

लॉग का नाम

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

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

सेवा का नाम

Firebase App Check के ऑडिट लॉग में, सेवा के नाम के तौर पर firebaseappcheck.googleapis.com का इस्तेमाल किया जाता है.

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

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

Firebase App Check के ऑडिट लॉग में, सभी ऑडिट लॉग के लिए संसाधन के टाइप के तौर पर audited_resource का इस्तेमाल किया जाता है.

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

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

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

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

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

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

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

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

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

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

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

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

लॉग देखें

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

ये ऑडिट लॉग के नाम हैं. इनमें 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 कंसोल, gcloud कमांड-लाइन टूल या Logging API का इस्तेमाल करके, Cloud Logging में ऑडिट लॉग देखे जा सकते हैं.

कंसोल

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

  1. Google Cloud कंसोल में, Logging > Logs Explorer पेज पर जाएं.

    Logs Explorer पेज पर जाएं

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

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

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

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

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

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

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

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 प्रोजेक्ट, लॉग के लिए तय की गई सीमा से ज़्यादा हो रहे हैं, तो ऐसे सिंक बनाए जा सकते हैं जिनमें Logging से डेटा ऐक्सेस ऑडिट लॉग शामिल न हों.

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

कीमत

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

डेटा ऐक्सेस ऑडिट लॉग और नीति के उल्लंघन की वजह से कार्रवाई न हो पाने वाले ऑडिट लॉग के लिए शुल्क लगता है.

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