এই ডকুমেন্টটি ফায়ারবেস রিয়েলটাইম ডেটাবেসের জন্য অডিট লগিং বর্ণনা করে। Google Cloud পরিষেবাগুলি অডিট লগ তৈরি করে যা আপনার Google Cloud রিসোর্সের মধ্যে প্রশাসনিক এবং অ্যাক্সেস কার্যকলাপ রেকর্ড করে। ক্লাউড অডিট লগ সম্পর্কে আরও তথ্যের জন্য, নিম্নলিখিতটি দেখুন:
- অডিট লগের প্রকারভেদ
- অডিট লগ এন্ট্রি কাঠামো
- অডিট লগ সংরক্ষণ এবং রাউটিং করা
- ক্লাউড লগিং মূল্যের সারাংশ
- ডেটা অ্যাক্সেস অডিট লগ সক্ষম করুন
মন্তব্য
DATA_READ এবং DATA_WRITE অপারেশনের জন্য protoPayload.metadata এর ক্ষেত্র সম্পর্কে অতিরিক্ত তথ্য রেফারেন্স ডকুমেন্টেশনে পাওয়া যাবে।
পরিষেবার নাম
Firebase রিয়েলটাইম ডাটাবেস অডিট লগগুলি firebasedatabase.googleapis.com পরিষেবার নাম ব্যবহার করে। এই পরিষেবার জন্য ফিল্টার করুন:
protoPayload.serviceName="firebasedatabase.googleapis.com"
অনুমতির ধরণ অনুসারে পদ্ধতি
প্রতিটি IAM অনুমতির একটি type প্রপার্টি থাকে, যার মান একটি enum যা চারটি মানের মধ্যে একটি হতে পারে: ADMIN_READ , ADMIN_WRITE , DATA_READ , অথবা DATA_WRITE । যখন আপনি একটি পদ্ধতি কল করেন, তখন Firebase Realtime Database একটি অডিট লগ তৈরি করে যার বিভাগ পদ্ধতিটি সম্পাদনের জন্য প্রয়োজনীয় অনুমতির type প্রপার্টির উপর নির্ভর করে। যেসব পদ্ধতিতে DATA_READ , DATA_WRITE , অথবা ADMIN_READ এর type প্রপার্টি মান সহ IAM অনুমতি প্রয়োজন, সেগুলি ডেটা অ্যাক্সেস অডিট লগ তৈরি করে। যেসব পদ্ধতিতে ADMIN_WRITE এর type প্রপার্টি মান সহ IAM অনুমতি প্রয়োজন, সেগুলি অ্যাডমিন অ্যাক্টিভিটি অডিট লগ তৈরি করে।
| অনুমতির ধরণ | পদ্ধতি |
|---|---|
ADMIN_READ | google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances |
ADMIN_WRITE | google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstancegoogle.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance |
DATA_READ | google.firebase.database.v1.RealtimeDatabase.Connectgoogle.firebase.database.v1.RealtimeDatabase.Disconnectgoogle.firebase.database.v1.RealtimeDatabase.Listengoogle.firebase.database.v1.RealtimeDatabase.OnDisconnectCancelgoogle.firebase.database.v1.RealtimeDatabase.Readgoogle.firebase.database.v1.RealtimeDatabase.Unlisten |
DATA_WRITE | google.firebase.database.v1.RealtimeDatabase.OnDisconnectPutgoogle.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdategoogle.firebase.database.v1.RealtimeDatabase.RunOnDisconnectgoogle.firebase.database.v1.RealtimeDatabase.Updategoogle.firebase.database.v1.RealtimeDatabase.Write |
API ইন্টারফেস অডিট লগ
প্রতিটি পদ্ধতির জন্য কীভাবে এবং কোন অনুমতিগুলি মূল্যায়ন করা হয় সে সম্পর্কে তথ্যের জন্য, Firebase রিয়েলটাইম ডেটাবেসের জন্য ক্লাউড আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট ডকুমেন্টেশন দেখুন।
google.firebase.database.v1.RealtimeDatabase
নিম্নলিখিত অডিট লগগুলি google.firebase.database.v1.RealtimeDatabase এর অন্তর্গত পদ্ধতিগুলির সাথে সম্পর্কিত।
Connect
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.Connect - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.connect - DATA_READ
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Connect"
Disconnect
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.Disconnect - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.connect - DATA_READ
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Disconnect"
Listen
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.Listen - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.get - DATA_READ
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Listen"
OnDisconnectCancel
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.cancel - DATA_READ
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectCancel"
OnDisconnectPut
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.update - DATA_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectPut"
OnDisconnectUpdate
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.update - DATA_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.OnDisconnectUpdate"
Read
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.Read - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.get - DATA_READ
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Read"
RunOnDisconnect
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.update - DATA_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.RunOnDisconnect"
Unlisten
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.Unlisten - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.cancel - DATA_READ
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Unlisten"
Update
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.Update - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.get - DATA_WRITE -
firebasedatabase.data.update - DATA_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Update"
Write
- পদ্ধতি :
google.firebase.database.v1.RealtimeDatabase.Write - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.data.update - DATA_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1.RealtimeDatabase.Write"
google.firebase.database.v1beta.RealtimeDatabaseService
নিম্নলিখিত অডিট লগগুলি google.firebase.database.v1beta.RealtimeDatabaseService এর অন্তর্গত পদ্ধতিগুলির সাথে সম্পর্কিত।
CreateDatabaseInstance
- পদ্ধতি :
google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance - অডিট লগের ধরণ : অ্যাডমিন অ্যাক্টিভিটি
- অনুমতি :
-
firebasedatabase.instances.create - ADMIN_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.CreateDatabaseInstance"
DeleteDatabaseInstance
- পদ্ধতি :
google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance - অডিট লগের ধরণ : অ্যাডমিন অ্যাক্টিভিটি
- অনুমতি :
-
firebasedatabase.instances.delete - ADMIN_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DeleteDatabaseInstance"
DisableDatabaseInstance
- পদ্ধতি :
google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance - অডিট লগের ধরণ : অ্যাডমিন অ্যাক্টিভিটি
- অনুমতি :
-
firebasedatabase.instances.disable - ADMIN_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.DisableDatabaseInstance"
GetDatabaseInstance
- পদ্ধতি :
google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.instances.get - ADMIN_READ
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.GetDatabaseInstance"
ListDatabaseInstances
- পদ্ধতি :
google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances - অডিট লগের ধরণ : ডেটা অ্যাক্সেস
- অনুমতি :
-
firebasedatabase.instances.list - ADMIN_READ
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ListDatabaseInstances"
ReenableDatabaseInstance
- পদ্ধতি :
google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance - অডিট লগের ধরণ : অ্যাডমিন অ্যাক্টিভিটি
- অনুমতি :
-
firebasedatabase.instances.reenable - ADMIN_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.ReenableDatabaseInstance"
UndeleteDatabaseInstance
- পদ্ধতি :
google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance - অডিট লগের ধরণ : অ্যাডমিন অ্যাক্টিভিটি
- অনুমতি :
-
firebasedatabase.instances.undelete - ADMIN_WRITE
-
- পদ্ধতিটি একটি দীর্ঘমেয়াদী বা স্ট্রিমিং অপারেশন : না।
- এই পদ্ধতির জন্য ফিল্টার করুন :
protoPayload.methodName="google.firebase.database.v1beta.RealtimeDatabaseService.UndeleteDatabaseInstance"
অডিট প্রমাণীকরণ তথ্য
অডিট লগ এন্ট্রিগুলিতে লগ করা অপারেশনটি সম্পাদনকারী পরিচয় সম্পর্কে তথ্য অন্তর্ভুক্ত থাকে । একজন অনুরোধকারীকে সনাক্ত করতে, AuditLog অবজেক্টের মধ্যে নিম্নলিখিত ক্ষেত্রগুলি দেখুন:
রিয়েলটাইম সংযোগ স্থাপন করা। Realtime Database
Connectঅপারেশনগুলি প্রমাণীকরণ ডেটা লগ করে না কারণ Realtime Database একটি সংযোগ স্থাপনের পরে প্রমাণীকরণ করে। অতএব,Connectকোনও প্রমাণীকরণ তথ্য নেই।AuthenticationInfoঅবজেক্টেaudit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.comএর একটি স্থানধারকprincipalEmailরয়েছে।গুগল প্রমাণীকরণ। Realtime Database অপারেশন যা স্ট্যান্ডার্ড গুগল প্রমাণীকরণ ব্যবহার করে, যেমন Firebase Admin SDK থেকে আসা ট্র্যাফিক বা স্ট্যান্ডার্ড OAuth টোকেন দিয়ে প্রমাণীকরণ করা REST অনুরোধ, তাদের একটি
AuthenticationInfoঅবজেক্ট থাকে যার মধ্যে প্রকৃত শংসাপত্র ইমেল থাকে।Firebase Authentication । Firebase Authentication ব্যবহার করে এমন Realtime Database অপারেশনগুলিতে একটি
AuthenticationInfoঅবজেক্ট থাকে যার মধ্যেaudit-third-party-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.comএর একটিprincipalEmailমান থাকে। কাস্টম JWT গুলি মিন্ট করে আপনি যদি নিজের প্রমাণীকরণ সমাধান বাস্তবায়ন করেন তবেও একই কথা প্রযোজ্য।- যদি কোনও JSON ওয়েব টোকেন (JWT) তৃতীয় পক্ষের প্রমাণীকরণের জন্য ব্যবহার করা হয়, তাহলে
thirdPartyPrincipalক্ষেত্রে টোকেনের হেডার এবং পেলোড অন্তর্ভুক্ত থাকে। উদাহরণস্বরূপ, Firebase Authentication মাধ্যমে প্রমাণীকরণ করা অনুরোধের অডিট লগগুলিতে সেই অনুরোধের Firebase Authentication টোকেন অন্তর্ভুক্ত থাকে।
- যদি কোনও JSON ওয়েব টোকেন (JWT) তৃতীয় পক্ষের প্রমাণীকরণের জন্য ব্যবহার করা হয়, তাহলে
কোনও প্রমাণীকরণ নেই। Realtime Database অপারেশন যা কোনও প্রমাণীকরণ ব্যবহার করে না, তার একটি
AuthenticationInfoঅবজেক্ট থাকে যার মধ্যেaudit-no-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.comএর একটিprincipalEmailমান থাকে। ওপেন সিকিউরিটি নিয়ম সহ একটি Realtime Database ইনস্ট্যান্স এই ধরনের অনুরোধগুলি মঞ্জুর করতে পারে। আমরা সমস্ত ব্যবহারকারীদের তাদের ডেটাবেসগুলি সঠিকভাবে সুরক্ষিত করার পরামর্শ দিচ্ছি।লিগ্যাসি সিক্রেটস টোকেন। লিগ্যাসি টোকেন ব্যবহার করে Realtime Database অপারেশনগুলিতে একটি
AuthenticationInfoঅবজেক্ট থাকে যার মধ্যেaudit-secret-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.comএর একটি প্লেসহোল্ডারprincipalEmailথাকে। সিক্রেটস-সাইন করা JWT-এর জন্য,thirdPartyPrincipalJWT হেডার এবং পেলোড থাকে।
অডিট Firebase Security Rules মূল্যায়ন
ক্লাউড অডিট লগগুলি এমন অনুরোধগুলি সনাক্ত করতে ব্যবহার করা যেতে পারে যা Security Rules পরিবর্তনের দ্বারা সম্ভাব্যভাবে প্রভাবিত হবে।
AuthorizationInfo অবজেক্টে, authorization.permission নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
-
firebasedatabase.data.get:resourceউল্লেখিত পথে পঠনের অ্যাক্সেস দেওয়া হয়। -
firebasedatabase.data.update:resourceউল্লেখিত পাথে লেখার অ্যাক্সেস দেওয়া হয়। -
firebasedatabase.data.connect:ConnectএবংDisconnectএর জন্য স্থানধারক। Realtime Database ইনস্ট্যান্সের সাথে সংযোগ স্থাপনের জন্য কোনও অনুমোদনের প্রয়োজন নেই। -
firebasedatabase.data.cancel:UnlistenএবংOnDisconnectCancelজন্য ব্যবহৃত হয়। পূর্বে অনুমোদিত কোনও ক্রিয়াকলাপ প্রত্যাহার বা বাতিল করার জন্য কোনও অতিরিক্ত অনুমোদনের প্রয়োজন হয় না।
Realtime Database প্রোফাইলার ফলাফলের সাথে ক্লাউড অডিট লগের সম্পর্ক স্থাপন করুন
Realtime Database প্রোফাইলার ব্যবহার করে আপনি Realtime Database অডিট লগিংয়ের সাথে রিয়েলটাইম Realtime Database গভীর কর্মক্ষমতা বিশ্লেষণ করতে পারেন। প্রতিটি টুলের নিজস্ব শক্তি রয়েছে।
| ক্লাউড অডিট লগিং | Realtime Database প্রোফাইলার |
|---|---|
|
|
নিরীক্ষা লগের বিষয়বস্তু নীচে দেখানো প্রোফাইলার মেট্রিক্সের সাথে সঙ্গতিপূর্ণ।
| অডিট লগিং অপারেশনের নাম | বিশেষ মানRealtimeDatabaseAuditMetadata | প্রোফাইলার অপারেশনের নাম |
|---|---|---|
| সংযোগ করুন | RequestType REALTIME | সমবর্তী-সংযোগ |
| সংযোগ বিচ্ছিন্ন করুন | RequestType REALTIME | সমবর্তী-সংযোগ বিচ্ছিন্ন |
| পড়ুন | RequestType REALTIME | রিয়েলটাইম-রিড |
| পড়ুন | RequestType হল REST | বিশ্রাম-পড়া |
| লিখুন | RequestType REALTIME | রিয়েলটাইম-লেখা |
| লিখুন | RequestType হল REST | পুনর্লিখন |
| আপডেট | RequestType হল REALTIME ।PreconditionType পরীক্ষা করুন। | রিয়েলটাইম-আপডেট রিয়েলটাইম-লেনদেন |
| আপডেট | RequestType হল REST ।PreconditionType পরীক্ষা করুন। | বিশ্রাম-আপডেট বিশ্রাম-লেনদেন |
| শ্রোতাশুনুন | RequestType REALTIME | শ্রোতা-শুনুন |
| শ্রোতাআনলিসন | RequestType REALTIME | শ্রোতা-শুনতে না পারা |
| অনডিসকানেক্টপুট | RequestType REALTIME | সংযোগ বিচ্ছিন্ন করার সময় |
| অনডিসকানেক্টআপডেট | RequestType REALTIME | সংযোগ বিচ্ছিন্ন-আপডেট |
| অনডিসকানেক্ট বাতিল করুন | RequestType REALTIME | সংযোগ বিচ্ছিন্ন-বাতিল করুন |
| রানঅনডিসকানেক্ট | RequestType REALTIME | রান-অন-ডিসকানেক্ট |