Firebase App Check-এর জন্য অডিট লগিং

এই পৃষ্ঠায় Cloud Audit Logs-এর অংশ হিসেবে Firebase-এর তৈরি করা অডিট লগ সম্পর্কে বর্ণনা করা হয়েছে।

এক নজরে

Firebase পরিষেবা অডিট লগ লিখে যাতে আপনি "কে, কী, কোথায় এবং কখন করেছে?" এই প্রশ্নের উত্তর দিতে পারেন। এগুলি হল Cloud Audit Logs, যা আপনার Firebase প্রোজেক্টের সাথে কানেক্ট করা Google Cloud প্রোজেক্টের অংশ হিসেবে প্রদান করা হয়।

আপনার Firebase প্রোজেক্টের প্রত্যেকটিতে শুধুমাত্র সেইসব রিসোর্সের অডিট লগ থাকে যেগুলি সরাসরি প্রোজেক্টের মধ্যে থাকে।

Cloud Audit Logs-এর সাধারণ ওভারভিউয়ের জন্য, Cloud Audit Logs ওভারভিউ দেখুন। অডিট লগ ফর্ম্যাট সম্পর্কে আরও গভীরভাবে বুঝতে, অডিট লগ সম্পর্কে বুঝুন দেখুন।

উপলভ্য অডিট লগ

Firebase App Check-এর জন্য নিম্নলিখিত ধরনের অডিট লগ উপলভ্য:

  • অ্যাডমিন অ্যাক্টিভিটি অডিট লগ

    মেটাডেটা বা কনফিগারেশন তথ্য লেখে এমন "অ্যাডমিন রাইট" অপারেশন অন্তর্ভুক্ত।

    আপনি অ্যাডমিন অ্যাক্টিভিটি অডিট লগ বন্ধ করতে পারবেন না।

  • ডেটা অ্যাক্সেস অডিট লগ

    এর মধ্যে "অ্যাডমিন রিড" অপারেশন অন্তর্ভুক্ত যা মেটাডেটা বা কনফিগারেশন তথ্য পড়ে। এছাড়াও, "ডেটা রিড" ও "ডেটা রাইট" অপারেশন অন্তর্ভুক্ত থাকে যা ব্যবহারকারীর দেওয়া ডেটা রিড বা রাইট করে।

    ডেটা অ্যাক্সেস অডিট লগ পেতে, আপনাকে অবশ্যই সেগুলি স্পষ্টভাবে চালু করতে হবে।

অডিট লগের প্রকারের আরও সম্পূর্ণ বিবরণের জন্য, অডিট লগের প্রকার দেখুন।

অডিট করা অপারেশন

Firebase App Check-এ প্রতিটি অডিট লগ প্রকারের সাথে কোন API অপারেশনগুলি সামঞ্জস্যপূর্ণ তা নিম্নলিখিতভাবে সংক্ষিপ্ত করা হয়েছে:

অনুমতির ধরন পদ্ধতি
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 রিসোর্সে অডিট লগ ডেটা অ্যাক্সেস করার আপনার ক্ষমতা নির্ধারণ করে।

আপনার ব্যবহারের ক্ষেত্রে কোন লগিং-নির্দিষ্ট অনুমতি এবং ভূমিকা প্রযোজ্য হবে তা সিদ্ধান্ত নেওয়ার সময়, নিম্নলিখিত বিষয়গুলি বিবেচনা করুন:

  • লগ ভিউয়ার ভূমিকা (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

আপনি Cloud Logging-এ অডিট লগ দেখতে পারেন, এর জন্য Google Cloud কনসোল, gcloud কমান্ড-লাইন টুল বা Logging API ব্যবহার করুন।

কনসোল

আপনার Firebase প্রোজেক্ট, ফোল্ডার বা সংস্থার জন্য অডিট লগ এন্ট্রি ফিরিয়ে আনতে, আপনি Google Cloud কনসোলে লগ এক্সপ্লোরার ব্যবহার করতে পারেন:

  1. Google Cloud কনসোলে, লগিং > লগ এক্সপ্লোরার পৃষ্ঠায় যান।

    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 টুল ব্যবহার করা সম্পর্কে আরও জানতে, লগ এন্ট্রি পড়ুন।

API

আপনার কোয়েরি তৈরি করার সময়, ভেরিয়েবেলগুলি সঠিক ভ্যালু দিয়ে পরিবর্তন করুন, অডিট লগ নামে তালিকাভুক্ত উপযুক্ত প্রোজেক্ট-লেভেল, ফোল্ডার-লেভেল বা প্রতিষ্ঠান-লেভেল অডিট লগ নাম বা শনাক্তকারী দিয়ে পরিবর্তন করুন। যেমন, আপনার কোয়েরিতে PROJECT_ID থাকলে, আপনার দেওয়া প্রোজেক্ট শনাক্তকারীকে অবশ্যই বর্তমানে বেছে নেওয়া Firebase প্রোজেক্টকে রেফার করতে হবে।

আপনার অডিট লগ এন্ট্রি দেখতে Logging API ব্যবহার করতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. entries.list পদ্ধতির জন্য ডকুমেন্টেশনের এই API ব্যবহার করে দেখুন বিভাগে যান।

  2. এই API ব্যবহার করে দেখুন ফর্মের অনুরোধের বডি অংশে নিম্নলিখিত বিষয়গুলি লিখুন। এই আগে থেকে পূরণ করা ফর্মে ক্লিক করলে অনুরোধের বডি অটোমেটিক পূরণ হয়ে যায়, কিন্তু আপনাকে প্রতিটি লগ নামে একটি সঠিক 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 দেখুন।