GCP - Logging Enum

Support HackTricks

Basic Information

यह सेवा उपयोगकर्ताओं को GCP से लॉग डेटा और घटनाओं को स्टोर, सर्च, एनालाइज, मॉनिटर और अलर्ट करने की अनुमति देती है।

Cloud Logging अन्य GCP सेवाओं के साथ पूरी तरह से एकीकृत है, जो आपके सभी GCP संसाधनों से लॉग के लिए एक केंद्रीकृत भंडार प्रदान करता है। यह स्वचालित रूप से विभिन्न GCP सेवाओं जैसे App Engine, Compute Engine, और Cloud Functions से लॉग एकत्र करता है। आप Cloud Logging का उपयोग ऑन-प्रिमाइसेस या अन्य क्लाउड में चल रहे अनुप्रयोगों के लिए भी कर सकते हैं, Cloud Logging एजेंट या API का उपयोग करके।

Key Features:

  • लॉग डेटा केंद्रीकरण: विभिन्न स्रोतों से लॉग डेटा को एकत्रित करें, आपके अनुप्रयोगों और अवसंरचना का समग्र दृश्य प्रदान करें।

  • वास्तविक समय लॉग प्रबंधन: तात्कालिक विश्लेषण और प्रतिक्रिया के लिए वास्तविक समय में लॉग स्ट्रीम करें।

  • शक्तिशाली डेटा विश्लेषण: बड़े मात्रा के लॉग डेटा को तेजी से छानने के लिए उन्नत फ़िल्टरिंग और खोज क्षमताओं का उपयोग करें।

  • BigQuery के साथ एकीकरण: विस्तृत विश्लेषण और क्वेरी के लिए लॉग को BigQuery में निर्यात करें।

  • लॉग-आधारित मैट्रिक्स: निगरानी और अलर्टिंग के लिए अपने लॉग डेटा से कस्टम मैट्रिक्स बनाएं।

Logs flow

बुनियादी रूप से, सिंक्स और लॉग आधारित मैट्रिक्स यह निर्धारित करेंगे कि लॉग को कहाँ स्टोर किया जाना चाहिए।

Configurations Supported by GCP Logging

Cloud Logging विभिन्न संचालन आवश्यकताओं के अनुसार अत्यधिक कॉन्फ़िगर करने योग्य है:

  1. लॉग बकेट्स (वेब में लॉग स्टोरेज): Cloud Logging में बकेट्स को परिभाषित करें ताकि लॉग रिटेंशन का प्रबंधन किया जा सके, यह नियंत्रित करते हुए कि आपके लॉग प्रविष्टियाँ कितनी देर तक रखी जाती हैं।

  • डिफ़ॉल्ट रूप से बकेट्स _Default और _Required बनाए जाते हैं (एक वह लॉग कर रहा है जो दूसरा नहीं कर रहा)।

  • _Required है:

```bash
LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency")
```
  • डेटा का रखरखाव अवधि प्रति बकेट कॉन्फ़िगर किया गया है और यह कम से कम 1 दिन होना चाहिए। हालाँकि, आवश्यक की रखरखाव अवधि 400 दिन है और इसे संशोधित नहीं किया जा सकता।

  • ध्यान दें कि लॉग बकेट क्लाउड स्टोरेज में दिखाई नहीं देते।

  1. लॉग सिंक (वेब में लॉग राउटर): विभिन्न गंतव्यों जैसे Pub/Sub, BigQuery, या Cloud Storage में लॉग प्रविष्टियों को निर्यात करने के लिए सिंक बनाएं जो एक फिल्टर के आधार पर हैं।

  • डिफ़ॉल्ट रूप से _Default और _Required बकेट के लिए सिंक बनाए जाते हैं:

_Required logging.googleapis.com/projects//locations/global/buckets/_Required LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency") _Default logging.googleapis.com/projects//locations/global/buckets/_Default NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT LOG_ID("externalaudit.googleapis.com/activity") AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT LOG_ID("externalaudit.googleapis.com/system_event") AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency")

* **बहिष्करण फ़िल्टर:** **विशिष्ट लॉग प्रविष्टियों** को ग्रहण करने से रोकने के लिए **बहिष्करण सेट करना संभव है**, लागत बचाने और अनावश्यक शोर को कम करने के लिए।
3. **लॉग-आधारित मैट्रिक्स:** लॉग के सामग्री के आधार पर **कस्टम मैट्रिक्स** कॉन्फ़िगर करें, जो लॉग डेटा के आधार पर अलर्टिंग और निगरानी की अनुमति देता है।
4. **लॉग दृश्य:** लॉग दृश्य आपको यह **नियंत्रण प्रदान करते हैं कि किसे लॉग बकेट में लॉग तक पहुंच है।**
* क्लाउड लॉगिंग **हर बकेट के लिए `_AllLogs` दृश्य स्वचालित रूप से बनाता है**, जो सभी लॉग दिखाता है। क्लाउड लॉगिंग `_Default` बकेट के लिए `_Default` नामक एक दृश्य भी बनाता है। `_Default` बकेट के लिए `_Default` दृश्य सभी लॉग दिखाता है सिवाय डेटा एक्सेस ऑडिट लॉग के। `_AllLogs` और `_Default` दृश्य संपादित नहीं किए जा सकते।

यह संभव है कि एक प्रिंसिपल को **केवल एक विशिष्ट लॉग दृश्य का उपयोग करने की अनुमति दी जाए** IAM नीति के साथ जैसे: 

<div data-gb-custom-block data-tag="code" data-overflow='wrap'>

```json
{
"bindings": [
{
"members": [
"user:username@gmail.com"
],
"role": "roles/logging.viewAccessor",
"condition": {
"title": "Bucket reader condition example",
"description": "Grants logging.viewAccessor role to user username@gmail.com for the VIEW_ID log view.",
"expression":
"resource.name == \"projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME/views/VIEW_ID\""
}
}
],
"etag": "BwWd_6eERR4=",
"version": 3
}

डिफ़ॉल्ट लॉग

डिफ़ॉल्ट रूप से Admin Write ऑपरेशंस (जिन्हें Admin Activity ऑडिट लॉग भी कहा जाता है) वो होते हैं जो लॉग किए जाते हैं (मेटाडेटा या कॉन्फ़िगरेशन जानकारी लिखें) और अक्षम नहीं किए जा सकते

फिर, उपयोगकर्ता Data Access ऑडिट लॉग सक्षम कर सकता है, ये हैं Admin Read, Data Write और Data Write

आप प्रत्येक प्रकार के लॉग के बारे में अधिक जानकारी दस्तावेज़ों में पा सकते हैं: https://cloud.google.com/iam/docs/audit-logging

हालांकि, ध्यान दें कि इसका मतलब है कि डिफ़ॉल्ट रूप से GetIamPolicy क्रियाएँ और अन्य पढ़ने की क्रियाएँ लॉग नहीं की जा रही हैं। इसलिए, डिफ़ॉल्ट रूप से एक हमलावर जो वातावरण को एन्यूमरेट करने की कोशिश कर रहा है, पकड़ा नहीं जाएगा यदि सिस्टम प्रशासक ने अधिक लॉग उत्पन्न करने के लिए कॉन्फ़िगर नहीं किया है।

कंसोल में अधिक लॉग सक्षम करने के लिए सिस्टम प्रशासक को https://console.cloud.google.com/iam-admin/audit पर जाना होगा और उन्हें सक्षम करना होगा। वहाँ 2 अलग-अलग विकल्प हैं:

  • डिफ़ॉल्ट कॉन्फ़िगरेशन: एक डिफ़ॉल्ट कॉन्फ़िगरेशन बनाना संभव है और सभी Admin Read और/या Data Read और/या Data Write लॉग को लॉग करना और यहां तक कि छूट प्राप्त प्रिंसिपल जोड़ना:

  • सेवाओं का चयन करें: या बस उन सेवाओं का चयन करें जिनके लिए आप लॉग उत्पन्न करना चाहते हैं और लॉग के प्रकार और उस विशेष सेवा के लिए छूट प्राप्त प्रिंसिपल।

यह भी ध्यान दें कि डिफ़ॉल्ट रूप से केवल वही लॉग उत्पन्न किए जा रहे हैं क्योंकि अधिक लॉग उत्पन्न करने से लागत बढ़ेगी।

एन्यूमरेशन

gcloud कमांड-लाइन टूल GCP पारिस्थितिकी तंत्र का एक अभिन्न हिस्सा है, जो आपको अपने संसाधनों और सेवाओं का प्रबंधन करने की अनुमति देता है। यहाँ बताया गया है कि आप अपने लॉगिंग कॉन्फ़िगरेशन और एक्सेस लॉग को प्रबंधित करने के लिए gcloud का उपयोग कैसे कर सकते हैं।

# List buckets
gcloud logging buckets list
gcloud logging buckets describe <bucket-name> --location <location>

# List log entries: only logs that contain log entries are listed.
gcloud logging logs list

# Get log metrics
gcloud logging metrics list
gcloud logging metrics describe <metric-name>

# Get log sinks
gcloud logging sinks list
gcloud logging sinks describe <sink-name>

# Get log views
gcloud logging views list --bucket <bucket> --location global
gcloud logging views describe --bucket <bucket> --location global <view-id> # view-id is usually the same as the bucket name

# Get log links
gcloud logging links list --bucket _Default --location global
gcloud logging links describe <link-id> --bucket _Default --location global

cloudresourcemanager के लॉग की जांच करने का उदाहरण (जिसका उपयोग BF अनुमतियों के लिए किया जाता है): https://console.cloud.google.com/logs/query;query=protoPayload.serviceName%3D%22cloudresourcemanager.googleapis.com%22;summaryFields=:false:32:beginning;cursorTimestamp=2024-01-20T00:07:14.482809Z;startTime=2024-01-01T11:12:26.062Z;endTime=2024-02-02T17:12:26.062Z?authuser=2&project=digital-bonfire-410512

testIamPermissions के लॉग नहीं हैं:

पोस्ट एक्सप्लोइटेशन

स्थिरता

संदर्भ

HackTricks का समर्थन करें

Last updated