এই নথিটি ফায়ারবেস রিয়েলটাইম ডেটাবেসের জন্য অডিট লগিং বর্ণনা করে। 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 । আপনি যখন একটি পদ্ধতিতে কল করেন, তখন ফায়ারবেস রিয়েলটাইম ডেটাবেস একটি অডিট লগ তৈরি করে যার বিভাগটি পদ্ধতিটি সম্পাদন করার জন্য প্রয়োজনীয় অনুমতির 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 ইন্টারফেস অডিট লগ
প্রতিটি পদ্ধতির জন্য কীভাবে এবং কোন অনুমতিগুলি মূল্যায়ন করা হয় সে সম্পর্কে তথ্যের জন্য, ফায়ারবেস রিয়েলটাইম ডেটাবেসের জন্য ক্লাউড আইডেন্টিটি এবং অ্যাক্সেস ম্যানেজমেন্ট ডকুমেন্টেশন দেখুন।
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"
অডিট প্রমাণীকরণ তথ্য
অডিট লগ এন্ট্রিতে সেই পরিচয় সম্পর্কে তথ্য অন্তর্ভুক্ত থাকে যা লগ করা অপারেশনটি করেছে। একটি অনুরোধ কলার সনাক্ত করতে, অডিটলগ অবজেক্টের মধ্যে নিম্নলিখিত ক্ষেত্রগুলি দেখুন:
রিয়েলটাইম সংযোগ স্থাপন করা হচ্ছে। Realtime Database
Connectঅপারেশনগুলি প্রমাণীকরণ ডেটা লগ করে না যেহেতু সংযোগ স্থাপনের পরে Realtime Database প্রমাণীকরণ করে। অতএব,Connectকোনো প্রমাণীকরণ তথ্য নেই।AuthenticationInfoঅবজেক্টেaudit-pending-auth@firebasedatabase-{REGION_CODE}-prod.iam.gserviceaccount.comএর একটি স্থানধারকprincipalEmailরয়েছে।গুগল প্রমাণীকরণ। Realtime Database ক্রিয়াকলাপগুলি যেগুলি স্ট্যান্ডার্ড Google প্রমাণীকরণ ব্যবহার করে, যেমন 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মান রয়েছে। আপনি যদি কাস্টম JWTs মিন্ট করে আপনার নিজস্ব প্রমাণীকরণ সমাধান বাস্তবায়ন করেন তবে একই কথা সত্য।- যদি একটি 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 মূল্যায়ন
ক্লাউড অডিট লগগুলি এমন অনুরোধগুলি সনাক্ত করতে ব্যবহার করা যেতে পারে যা 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 | concurrent- disconnect |
| পড়ুন | RequestType REALTIME | বাস্তব সময় পড়া |
| পড়ুন | RequestType হল REST | বিশ্রাম পড়ুন |
| লিখুন | RequestType REALTIME | বাস্তব সময় লিখুন |
| লিখুন | RequestType হল REST | বিশ্রাম লিখুন |
| আপডেট | RequestType হল REALTIME ।PreconditionType চেক করুন। | রিয়েলটাইম-আপডেট রিয়েলটাইম-লেনদেন |
| আপডেট | RequestType হল REST .PreconditionType চেক করুন। | বিশ্রাম-আপডেট বিশ্রাম-লেনদেন |
| শ্রোতা শুনুন | RequestType REALTIME | শ্রোতা-শ্রবণ |
| শ্রোতা শুনুন | RequestType হল REALTIME | শ্রোতা-অশ্রুতি |
| অনডিসকানেক্টপুট | RequestType হল REALTIME | অন-সংযোগ বিচ্ছিন্ন করা |
| OnDisconnectUpdate | RequestType REALTIME | অন-সংযোগ-আপডেট |
| অনডিসকানেক্ট বাতিল করুন | RequestType REALTIME | অন-সংযোগ বিচ্ছিন্ন-বাতিল |
| RunOnDisconnect | RequestType হল REALTIME | রান অন-সংযোগ বিচ্ছিন্ন |