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

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

खास जानकारी

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

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

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

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

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

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

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

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

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

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

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

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

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

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

अनुमति का टाइप तरीके
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 में ऑडिट की गई जानकारी शामिल होती है.
  • ऑडिट लॉगिंग डेटा, जो कि एक AuditLog ऑब्जेक्ट है. यह लॉग एंट्री के protoPayload फ़ील्ड में सेव होता है.

  • सेवा के हिसाब से ऑडिट की जानकारी देना ज़रूरी नहीं है. यह सेवा के हिसाब से ऑब्जेक्ट होता है. पुराने इंटिग्रेशन के लिए, यह ऑब्जेक्ट 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 App Hosting के ऑडिट लॉग, सेवा के नाम firebaseapphosting.googleapis.com का इस्तेमाल करते हैं.

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

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

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

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

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

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

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

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

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

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

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

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

  • Private Logs Viewer की भूमिका(roles/logging.privateLogViewer) में roles/logging.viewer में शामिल अनुमतियां होती हैं. साथ ही, इसमें _Default बकेट में मौजूद Data Access audit logs को पढ़ने की अनुमति भी होती है.

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

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

कंसोल

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

  1. Google Cloud Console में, Logging > Logs Explorer पेज पर जाएं.

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

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

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

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

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

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

    अगर आपको ये विकल्प नहीं दिखते, तो इसका मतलब है कि 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. Try this API फ़ॉर्म के Request body वाले हिस्से में यह जानकारी डालें. इस पहले से भरे हुए फ़ॉर्म पर क्लिक करने से, अनुरोध का मुख्य हिस्सा अपने-आप भर जाता है. हालांकि, आपको हर लॉग के नाम में एक मान्य 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 लेख पढ़ें.