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

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

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

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

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

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

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

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

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

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

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

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

  • लॉग व्यूअर की भूमिका (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 कंसोल में मौजूद लॉग एक्सप्लोरर का इस्तेमाल किया जा सकता है:

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

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

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

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

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

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

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

    अगर आपको ये विकल्प नहीं दिखते हैं, तो इसका मतलब है कि 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 लेख पढ़ें.