ফায়ারবেস অ্যাপ হোস্টিংয়ের জন্য অডিট লগিং, ফায়ারবেস অ্যাপ হোস্টিংয়ের জন্য অডিট লগিং

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

সংক্ষিপ্ত বিবরণ

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

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

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

উপলব্ধ অডিট লগ

ফায়ারবেস অ্যাপ হোস্টিং-এর জন্য নিম্নলিখিত ধরনের অডিট লগগুলো পাওয়া যায়:

  • অ্যাডমিন কার্যকলাপ নিরীক্ষা লগ

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

    আপনি অ্যাডমিন কার্যকলাপের নিরীক্ষা লগ নিষ্ক্রিয় করতে পারবেন না।

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

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

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

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

নিরীক্ষিত কার্যক্রম

ফায়ারবেস অ্যাপ হোস্টিং-এ প্রতিটি অডিট লগ টাইপের সাথে কোন কোন API অপারেশন যুক্ত, তার একটি সংক্ষিপ্ত বিবরণ নিচে দেওয়া হলো:

অনুমতির ধরণ পদ্ধতি
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 ফিল্ড ব্যবহার করে।

এই অবজেক্টগুলোর অন্যান্য ফিল্ড এবং সেগুলো কীভাবে ব্যাখ্যা করতে হয়, তা জানতে “Understand audit logs” পর্যালোচনা করুন।

লগ নাম

ক্লাউড অডিট লগস রিসোর্সের নামগুলো থেকে বোঝা যায় যে অডিট লগগুলোর মালিক কোন ফায়ারবেস প্রজেক্ট বা অন্য কোনো Google Cloud সত্তা, এবং লগটিতে অ্যাডমিন অ্যাক্টিভিটি, ডেটা অ্যাক্সেস, পলিসি ডিনাইড, বা সিস্টেম ইভেন্ট অডিট লগিং ডেটা আছে কিনা। উদাহরণস্বরূপ, নিচে প্রজেক্ট-স্তরের অ্যাডমিন অ্যাক্টিভিটি অডিট লগ এবং একটি অর্গানাইজেশনের ডেটা অ্যাক্সেস অডিট লগের নামগুলো দেখানো হলো। ভ্যারিয়েবলগুলো ফায়ারবেস প্রজেক্ট এবং অর্গানাইজেশন আইডেন্টিফায়ার নির্দেশ করে।

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

পরিষেবার নাম

Firebase App Hosting-এর অডিট লগগুলিতে firebaseapphosting.googleapis.com সার্ভিস নেমটি ব্যবহৃত হয়।

সমস্ত ক্লাউড লগিং এপিআই পরিষেবার নাম এবং তাদের সংশ্লিষ্ট মনিটর করা রিসোর্স টাইপের সম্পূর্ণ তালিকার জন্য, "পরিষেবাগুলিকে রিসোর্সের সাথে ম্যাপ করুন" দেখুন।

সম্পদের প্রকারভেদ

Firebase App Hosting-এর সমস্ত অডিট লগের জন্য audited_resource নামক রিসোর্স টাইপটি ব্যবহৃত হয়।

ক্লাউড লগিং দ্বারা নিরীক্ষিত সমস্ত রিসোর্স টাইপের তালিকা এবং বর্ণনামূলক তথ্যের জন্য, 'নিরীক্ষিত রিসোর্স টাইপ' দেখুন।

অডিট লগিং সক্ষম করুন

অ্যাডমিন কার্যকলাপের অডিট লগ সর্বদা সক্রিয় থাকে; আপনি এটি নিষ্ক্রিয় করতে পারবেন না।

ডেটা অ্যাক্সেস অডিট লগ ডিফল্টরূপে নিষ্ক্রিয় থাকে এবং স্পষ্টভাবে সক্রিয় না করা পর্যন্ত লেখা হয় না (এর ব্যতিক্রম হলো BigQuery-এর ডেটা অ্যাক্সেস অডিট লগ, যা নিষ্ক্রিয় করা যায় না)।

আপনার ডেটা অ্যাক্সেস অডিট লগগুলির কিছু বা সবগুলি সক্রিয় করার নির্দেশাবলীর জন্য, ডেটা অ্যাক্সেস লগ কনফিগার করুন দেখুন।

অনুমতি এবং ভূমিকা

ক্লাউড আইএএম পারমিশন এবং রোল নির্ধারণ করে যে আপনি Google Cloud রিসোর্সগুলিতে থাকা অডিট লগ ডেটা কতটা অ্যাক্সেস করতে পারবেন।

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

  • লগস ভিউয়ার রোল ( roles/logging.viewer ) আপনাকে অ্যাডমিন অ্যাক্টিভিটি, পলিসি ডিনাইড এবং সিস্টেম ইভেন্ট অডিট লগগুলিতে শুধুমাত্র পঠনযোগ্য (read-only) অ্যাক্সেস দেয়। আপনার যদি শুধু এই রোলটি থাকে, তাহলে আপনি _Default বাকেটে থাকা ডেটা অ্যাক্সেস অডিট লগগুলি দেখতে পারবেন না।

  • প্রাইভেট লগস ভিউয়ার রোল (roles/logging.privateLogViewer )- roles/logging.viewer এ থাকা অনুমতিগুলোর পাশাপাশি _Default বাকেটে থাকা ডেটা অ্যাক্সেস অডিট লগ পড়ার ক্ষমতাও অন্তর্ভুক্ত রয়েছে।

    মনে রাখবেন যে, যদি এই ব্যক্তিগত লগগুলি ব্যবহারকারী-সংজ্ঞায়িত বাকেটে সংরক্ষিত থাকে, তাহলে যে কোনো ব্যবহারকারী যার সেই বাকেটগুলিতে লগ পড়ার অনুমতি আছে, তিনি ব্যক্তিগত লগগুলিও পড়তে পারবেন। লগ বাকেট সম্পর্কে আরও তথ্যের জন্য, রাউটিং এবং স্টোরেজ ওভারভিউ দেখুন।

অডিট লগ ডেটার ক্ষেত্রে প্রযোজ্য ক্লাউড আইএএম অনুমতি এবং ভূমিকা সম্পর্কে আরও তথ্যের জন্য, অ্যাক্সেস নিয়ন্ত্রণ দেখুন।

লগ দেখুন

অডিট লগ খুঁজে বের করতে ও দেখতে, আপনাকে সেই Firebase প্রজেক্ট, ফোল্ডার বা অর্গানাইজেশনের আইডেন্টিফায়ার জানতে হবে, যার অডিট লগিং তথ্য আপনি দেখতে চান। আপনি resource.type মতো অন্যান্য ইনডেক্সড LogEntry ফিল্ডও নির্দিষ্ট করে দিতে পারেন; বিস্তারিত জানতে, “Find log entries quickly ” পর্যালোচনা করুন।

নিম্নলিখিতগুলি হল অডিট লগের নাম; এগুলিতে ফায়ারবেস প্রজেক্ট, ফোল্ডার বা অর্গানাইজেশনের শনাক্তকারীগুলির জন্য ভেরিয়েবল অন্তর্ভুক্ত রয়েছে:

   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

আপনি গুগল ক্লাউড কনসোল, gcloud কমান্ড-লাইন টুল, অথবা লগিং এপিআই ব্যবহার করে ক্লাউড লগিং-এ অডিট লগ দেখতে পারেন।

কনসোল

আপনি গুগল ক্লাউড কনসোলের লগস এক্সপ্লোরার ব্যবহার করে আপনার ফায়ারবেস প্রজেক্ট, ফোল্ডার বা অর্গানাইজেশনের অডিট লগ এন্ট্রিগুলো পুনরুদ্ধার করতে পারেন:

  1. Google Cloud কনসোলে, Logging > Logs Explorer পৃষ্ঠায় যান।

    লগস এক্সপ্লোরার পৃষ্ঠায় যান

  2. লগস এক্সপ্লোরার পেজে, একটি বিদ্যমান ফায়ারবেস প্রজেক্ট, ফোল্ডার বা অর্গানাইজেশন নির্বাচন করুন।

  3. কোয়েরি বিল্ডার প্যানে নিম্নলিখিত কাজগুলো করুন:

    • রিসোর্স টাইপ- এ, সেই Google Cloud রিসোর্সটি নির্বাচন করুন যার অডিট লগ আপনি দেখতে চান।

    • 'লগ নেম'- এ, আপনি যে অডিট লগ টাইপটি দেখতে চান তা নির্বাচন করুন:

      • অ্যাডমিন কার্যকলাপের অডিট লগ দেখতে, কার্যকলাপ নির্বাচন করুন।
      • ডেটা অ্যাক্সেস অডিট লগ-এর জন্য, data_access নির্বাচন করুন।
      • সিস্টেম ইভেন্ট অডিট লগের জন্য, system_event নির্বাচন করুন।
      • পলিসি দ্বারা প্রত্যাখ্যাত অডিট লগগুলির জন্য, পলিসি নির্বাচন করুন।

    যদি আপনি এই অপশনগুলো দেখতে না পান, তাহলে ফায়ারবেস প্রজেক্ট, ফোল্ডার বা অর্গানাইজেশনে ওই ধরনের কোনো অডিট লগ উপলব্ধ নেই।

    লগস এক্সপ্লোরার ব্যবহার করে কোয়েরি করার বিষয়ে আরও বিস্তারিত জানতে, লগ কোয়েরি তৈরি করুন (Build log queries) দেখুন।

জিক্লাউড

gcloud কমান্ড-লাইন টুলটি ক্লাউড লগিং এপিআই-এর জন্য একটি কমান্ড-লাইন ইন্টারফেস প্রদান করে। প্রতিটি লগের নামে একটি বৈধ 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 প্রজেক্টকে নির্দেশ করবে।

আপনার অডিট লগ এন্ট্রিগুলো দেখতে লগিং এপিআই ব্যবহার করার জন্য, নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করুন:

  1. entries.list মেথডের ডকুমেন্টেশনে থাকা 'Try this API' সেকশনটিতে যান।

  2. 'Try this API' ফর্মের ' Request body' অংশে নিম্নলিখিত তথ্যগুলো দিন। এই আগে থেকে পূরণ করা ফর্মে ক্লিক করলে রিকোয়েস্ট বডি স্বয়ংক্রিয়ভাবে পূরণ হয়ে যায়, কিন্তু আপনাকে প্রতিটি লগ নামে একটি বৈধ PROJECT_ID সরবরাহ করতে হবে।

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
  3. এক্সিকিউট-এ ক্লিক করুন।

কোয়েরি করার বিষয়ে আরও বিস্তারিত জানতে, লগিং কোয়েরি ল্যাঙ্গুয়েজ দেখুন।

অডিট লগ এন্ট্রির একটি উদাহরণ এবং এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ তথ্য কীভাবে খুঁজে বের করতে হয়, তা জানতে নমুনা অডিট লগ এন্ট্রি দেখুন।

রুট অডিট লগ

অন্যান্য ধরনের লগের মতোই আপনি অডিট লগগুলোকেও সমর্থিত গন্তব্যস্থলে পাঠাতে পারেন। নিচে কয়েকটি কারণ উল্লেখ করা হলো, যার জন্য আপনি আপনার অডিট লগগুলো পাঠাতে চাইতে পারেন:

  • অডিট লগ দীর্ঘ সময়ের জন্য সংরক্ষণ করতে বা আরও শক্তিশালী সার্চ সুবিধা ব্যবহার করতে, আপনি আপনার অডিট লগের কপি গুগল ক্লাউড স্টোরেজ, বিগকোয়েরি বা গুগল ক্লাউড পাব/সাব-এ পাঠাতে পারেন। ক্লাউড পাব/সাব ব্যবহার করে, আপনি অন্যান্য অ্যাপ্লিকেশন, অন্যান্য রিপোজিটরি এবং তৃতীয় পক্ষের কাছেও পাঠাতে পারেন।

  • একটি সম্পূর্ণ প্রতিষ্ঠান জুড়ে আপনার অডিট লগগুলি পরিচালনা করতে, আপনি অ্যাগ্রিগেটেড সিঙ্ক তৈরি করতে পারেন যা প্রতিষ্ঠানের যেকোনো বা সমস্ত ফায়ারবেস প্রজেক্ট থেকে লগ রাউট করতে পারে।

  • আপনার চালু থাকা ডেটা অ্যাক্সেস অডিট লগগুলো যদি আপনার ফায়ারবেস প্রজেক্টগুলোকে লগ বরাদ্দের বাইরে ঠেলে দেয়, তাহলে আপনি এমন সিঙ্ক তৈরি করতে পারেন যা লগিং থেকে ডেটা অ্যাক্সেস অডিট লগগুলোকে বাদ দেবে।

লগ রাউটিং সংক্রান্ত নির্দেশাবলীর জন্য, সিঙ্ক কনফিগার করুন দেখুন।

মূল্য নির্ধারণ

অ্যাডমিন অ্যাক্টিভিটি অডিট লগ এবং সিস্টেম ইভেন্ট অডিট লগ বিনামূল্যে পাওয়া যায়।

ডেটা অ্যাক্সেস অডিট লগ এবং পলিসি ডিনাইড অডিট লগের জন্য চার্জ প্রযোজ্য।

ক্লাউড লগিং-এর মূল্য নির্ধারণ সম্পর্কে আরও তথ্যের জন্য, গুগল ক্লাউডের অপারেশন স্যুট মূল্য নির্ধারণ: ক্লাউড লগিং দেখুন।