पहचान और ऐक्सेस मैनेजमेंट (आईएएम)

पहचान और ऐक्सेस मैनेजमेंट (IAM) की मदद से, अपने संसाधनों का ऐक्सेस मैनेज करें. IAM की मदद से, चुनिंदा Google Cloud संसाधनों को ज़्यादा बेहतर तरीके से ऐक्सेस किया जा सकता है. साथ ही, अन्य संसाधनों को अनचाहे ऐक्सेस से बचाया जा सकता है. इस पेज पर, Cloud Firestore के लिए IAM अनुमतियों और भूमिकाओं के बारे में बताया गया है. IAM के बारे में ज़्यादा जानकारी के लिए, IAM का दस्तावेज़ पढ़ें.

आईएएम की मदद से, कम से कम अधिकारों के सुरक्षा सिद्धांत को अपनाया जा सकता है. इससे आपको अपने संसाधनों का सिर्फ़ ज़रूरी ऐक्सेस देने में मदद मिलती है.

IAM की मदद से, यह कंट्रोल किया जा सकता है कि किस उपयोगकर्ता के पास कौनसी भूमिका के लिए कौनसी अनुमतियां हैं. इसके लिए, IAM नीतियां सेट की जाती हैं. IAM नीतियां, किसी उपयोगकर्ता को एक या उससे ज़्यादा भूमिकाएं असाइन करती हैं. इससे उपयोगकर्ता को कुछ अनुमतियां मिलती हैं. उदाहरण के लिए, किसी उपयोगकर्ता को datastore.indexAdmin भूमिका दी जा सकती है. इससे उपयोगकर्ता, इंडेक्स बना सकता है, उनमें बदलाव कर सकता है, उन्हें मिटा सकता है, उनकी सूची बना सकता है या उन्हें देख सकता है.

अनुमतियां और भूमिकाएं

इस सेक्शन में, Cloud Firestore के साथ काम करने वाली अनुमतियों और भूमिकाओं के बारे में खास जानकारी दी गई है.

एपीआई के तरीकों के लिए ज़रूरी अनुमतियां

यहां दी गई टेबल में, उन अनुमतियों के बारे में बताया गया है जो कॉलर के पास हर कार्रवाई को पूरा करने के लिए होनी चाहिए:

तरीका ज़रूरी अनुमतियां
projects.databases.MongoDBCompatible
ListDatabases datastore.databases.getMetadata
ListIndexes datastore.indexes.list
Find datastore.entities.get
datastore.entities.list
Aggregate datastore.entities.get
datastore.entities.list
GetMore

वही अनुमतियां जो कर्सर बनाने वाले कॉल के लिए ज़रूरी थीं.

ListCollections datastore.entities.list
Count datastore.entities.list
Distinct datastore.entities.get
datastore.entities.list
CommitTransaction datastore.databases.get
AbortTransaction datastore.databases.get
EndSessions datastore.databases.get
KillCursors datastore.databases.get
Insert datastore.entities.create
Update datastore.entities.get
datastore.entities.list
datastore.entities.update
datastore.entities.create (सिर्फ़ अपसर्ट के लिए)
FindAndModify datastore.entities.get
datastore.entities.list
datastore.entities.update (सिर्फ़ बदलने या अपडेट करने के लिए)
datastore.entities.create (सिर्फ़ अपसर्ट के लिए)
datastore.entities.delete (सिर्फ़ मिटाने के लिए)
CreateCollection datastore.entities.create
projects.databases.indexes
create datastore.indexes.create
delete datastore.indexes.delete
get datastore.indexes.get
list datastore.indexes.list
projects.databases
create datastore.databases.create
delete datastore.databases.delete
get datastore.databases.getMetadata
list datastore.databases.list
patch datastore.databases.update
बहाल करना datastore.backups.restoreDatabase
clone datastore.databases.clone किसी डेटाबेस का क्लोन बनाएं.

अगर आपके clone अनुरोध में tags वैल्यू शामिल है, तो यहां दी गई अतिरिक्त अनुमतियां ज़रूरी हैं:

  • datastore.databases.createTagBinding

अगर आपको यह पुष्टि करनी है कि टैग बाइंडिंग सही तरीके से सेट की गई हैं, तो बाइंडिंग की सूची बनाकर देखें. इसके लिए, आपको ये अतिरिक्त अनुमतियां देनी होंगी:

  • datastore.databases.listTagBindings
  • datastore.databases.listEffectiveTags
projects.locations
get datastore.locations.get
list datastore.locations.list
projects.databases.backupschedules
get datastore.backupSchedules.get
list datastore.backupSchedules.list
create datastore.backupSchedules.create
update datastore.backupSchedules.update
delete datastore.backupSchedules.delete
projects.locations.backups
get datastore.backups.get
list datastore.backups.list
delete datastore.backups.delete
projects.databases.usercreds
get datastore.userCreds.get
list datastore.userCreds.list
create datastore.userCreds.create
enable datastore.userCreds.update
disable datastore.userCreds.update
resetPassword datastore.userCreds.update
delete datastore.userCreds.delete

पहले से तय की गई भूमिकाएं

IAM की मदद से, Cloud Firestore में मौजूद हर एपीआई तरीके के लिए यह ज़रूरी है कि एपीआई अनुरोध करने वाले खाते के पास संसाधन का इस्तेमाल करने की ज़रूरी अनुमतियां हों. अनुमतियां देने के लिए, ऐसी नीतियां सेट की जाती हैं जो किसी उपयोगकर्ता, ग्रुप या सेवा खाते को भूमिकाएं असाइन करती हैं. प्राइमरी भूमिकाओं, मालिक, एडिटर, और दर्शक के अलावा, अपने प्रोजेक्ट के उपयोगकर्ताओं को Cloud Firestore भूमिकाएं असाइन की जा सकती हैं.

यहां दी गई टेबल में, Cloud Firestore IAM की भूमिकाओं के बारे में बताया गया है. किसी उपयोगकर्ता, ग्रुप या सेवा खाते को एक से ज़्यादा भूमिकाएं असाइन की जा सकती हैं.

भूमिका अनुमतियां ब्यौरा
roles/datastore.owner appengine.applications.get

datastore.*

resourcemanager.projects.get
resourcemanager.projects.list
Cloud Firestore का पूरा ऐक्सेस.
roles/datastore.user appengine.applications.get

datastore.databases.get
datastore.databases.getMetadata
datastore.databases.list
datastore.entities.*
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list

resourcemanager.projects.get
resourcemanager.projects.list
Cloud Firestore डेटाबेस में मौजूद डेटा को पढ़ने/लिखने का ऐक्सेस. यह ऐप्लिकेशन डेवलपर और सेवा खातों के लिए है.
roles/datastore.viewer appengine.applications.get

datastore.databases.get
datastore.databases.getMetadata
datastore.databases.list
datastore.entities.get
datastore.entities.list
datastore.indexes.get
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list

resourcemanager.projects.get
resourcemanager.projects.list
Cloud Firestore के सभी संसाधनों को पढ़ने का ऐक्सेस.
roles/datastore.indexAdmin appengine.applications.get

datastore.databases.getMetadata

datastore.indexes.*

datastore.operations.list
datastore.operations.get
resourcemanager.projects.get
resourcemanager.projects.list
इंडेक्स की परिभाषाओं को मैनेज करने का पूरा ऐक्सेस.
roles/datastore.backupSchedulesViewer datastore.backupSchedules.get
datastore.backupSchedules.list
Cloud Firestore डेटाबेस में बैकअप शेड्यूल को पढ़ने का ऐक्सेस.
roles/datastore.backupSchedulesAdmin datastore.backupSchedules.get
datastore.backupSchedules.list
datastore.backupSchedules.create
datastore.backupSchedules.update
datastore.backupSchedules.delete
datastore.databases.list
datastore.databases.getMetadata
Cloud Firestore डेटाबेस में बैकअप शेड्यूल का पूरा ऐक्सेस.
roles/datastore.backupsViewer datastore.backups.get
datastore.backups.list
Cloud Firestore लोकेशन में बैकअप की जानकारी को पढ़ने की अनुमति.
roles/datastore.backupsAdmin datastore.backups.get
datastore.backups.list
datastore.backups.delete
Cloud Firestore जगह पर बैकअप का पूरा ऐक्सेस.
roles/datastore.restoreAdmin datastore.backups.get
datastore.backups.list
datastore.backups.restoreDatabase
datastore.databases.list
datastore.databases.create
datastore.databases.getMetadata
datastore.operations.list
datastore.operations.get
Cloud Firestore के बैकअप को नए डेटाबेस में वापस लाने की सुविधा. इस भूमिका के तहत, नए डेटाबेस भी बनाए जा सकते हैं. इसके लिए, बैकअप से डेटा वापस लाने की ज़रूरत नहीं होती.
roles/datastore.cloneAdmin datastore.databases.clone
datastore.databases.list
datastore.databases.create
datastore.databases.getMetadata
datastore.operations.list
datastore.operations.get
Cloud Firestore डेटाबेस को नए डेटाबेस में क्लोन करने की सुविधा. इस भूमिका के तहत, नए डेटाबेस भी बनाए जा सकते हैं. इसके लिए, क्लोनिंग करना ज़रूरी नहीं है.
roles/datastore.statisticsViewer resourcemanager.projects.get
resourcemanager.projects.list
datastore.databases.getMetadata
datastore.insights.get
datastore.keyVisualizerScans.get
datastore.keyVisualizerScans.list
datastore.statistics.list
datastore.statistics.get
इनसाइट, आंकड़े, और Key Visualizer के स्कैन को पढ़ने का ऐक्सेस.
roles/datastore.userCredsViewer datastore.userCreds.get
datastore.userCreds.list
Cloud Firestore डेटाबेस में उपयोगकर्ता के क्रेडेंशियल को पढ़ने का ऐक्सेस.
roles/datastore.userCredsAdmin datastore.userCreds.get
datastore.userCreds.list
datastore.userCreds.create
datastore.userCreds.update
datastore.userCreds.delete
datastore.databases.list
datastore.databases.getMetadata
Cloud Firestore डेटाबेस में उपयोगकर्ता के क्रेडेंशियल का पूरा ऐक्सेस.

पसंद के मुताबिक बनाई गई भूमिकाएं

अगर पहले से तय की गई भूमिकाएं आपके कारोबार की ज़रूरतों के मुताबिक नहीं हैं, तो अपनी ज़रूरत के हिसाब से कस्टम भूमिकाएं तय की जा सकती हैं. इसके लिए, आपको अपनी पसंद की अनुमतियां तय करनी होंगी:

टैग बनाने और मैनेज करने के लिए ज़रूरी भूमिकाएं

अगर किसी टैग को बनाने या वापस लाने की कार्रवाइयों में शामिल किया जाता है, तो कुछ भूमिकाएं ज़रूरी होती हैं. डेटाबेस रिसॉर्स से टैग को जोड़ने से पहले, टैग के लिए कुंजी-वैल्यू पेयर बनाने के बारे में ज़्यादा जानने के लिए, टैग बनाना और मैनेज करना लेख पढ़ें.

यहां दी गई अनुमतियां देना ज़रूरी है.

टैग देखें
  • datastore.databases.listTagBindings
  • datastore.databases.listEffectiveTags
संसाधनों पर टैग मैनेज करना

जिस डेटाबेस रिसॉर्स में टैग वैल्यू जोड़ी जा रही है उसके लिए, यह अनुमति ज़रूरी है.

  • datastore.databases.createTagBinding

अनुमतियां

यहां दी गई टेबल में, उन अनुमतियों की सूची दी गई है जिन्हें Cloud Firestore इस्तेमाल कर सकता है.

डेटाबेस की अनुमति का नाम ब्यौरा
datastore.databases.get लेन-देन शुरू करना या उसे पहले जैसा करना.
datastore.databases.getMetadata किसी डेटाबेस से मेटाडेटा पढ़ता है.
datastore.databases.list किसी प्रोजेक्ट में मौजूद डेटाबेस की सूची बनाना.
datastore.databases.create डेटाबेस बनाएं.
datastore.databases.update डेटाबेस को अपडेट करें.
datastore.databases.delete डेटाबेस मिटाना.
datastore.databases.clone किसी डेटाबेस का क्लोन बनाएं.
datastore.databases.createTagBinding किसी डेटाबेस के लिए टैग बाइंडिंग बनाएं.
datastore.databases.deleteTagBinding डेटाबेस के लिए टैग बाइंडिंग मिटाता है.
datastore.databases.listTagBindings किसी डेटाबेस के लिए सभी टैग बाइंडिंग की सूची बनाएं.
datastore.databases.listEffectiveTagBindings किसी डेटाबेस के लिए, टैग बाइंडिंग की असरदार सूची बनाएं.
इकाई की अनुमति का नाम ब्यौरा
datastore.entities.create कोई दस्तावेज़ बनाएं.
datastore.entities.delete किसी दस्तावेज़ को मिटाएं.
datastore.entities.get किसी दस्तावेज़ को पढ़ना.
datastore.entities.list किसी प्रोजेक्ट में मौजूद दस्तावेज़ों के नाम की सूची बनाएं.
(दस्तावेज़ का डेटा ऐक्सेस करने के लिए datastore.entities.get ज़रूरी है.)
datastore.entities.update किसी दस्तावेज़ को अपडेट करें.
इंडेक्स करने की अनुमति का नाम ब्यौरा
datastore.indexes.create कोई इंडेक्स बनाना.
datastore.indexes.delete किसी इंडेक्स को मिटाना.
datastore.indexes.get किसी इंडेक्स से मेटाडेटा पढ़ता है.
datastore.indexes.list किसी प्रोजेक्ट में मौजूद इंडेक्स की सूची बनाना.
datastore.indexes.update किसी इंडेक्स को अपडेट करना.
कार्रवाई की अनुमति का नाम ब्यौरा
datastore.operations.cancel लंबे समय से चल रही कार्रवाई को रद्द करें.
datastore.operations.delete ज़्यादा समय तक चलने वाली कार्रवाई मिटाएं.
datastore.operations.get यह लंबे समय तक चलने वाले ऑपरेशन की मौजूदा स्थिति के बारे में जानकारी देता है.
datastore.operations.list ज़्यादा समय तक चलने वाली कार्रवाइयों की सूची बनाएं.
प्रोजेक्ट की अनुमति का नाम ब्यौरा
resourcemanager.projects.get प्रोजेक्ट में मौजूद संसाधन ब्राउज़ करें.
resourcemanager.projects.list मालिकाना हक वाले प्रोजेक्ट की सूची बनाएं.
जगह की जानकारी ऐक्सेस करने की अनुमति का नाम ब्यौरा
datastore.locations.get डेटाबेस की जगह की जानकारी पाएं. नया डेटाबेस बनाने के लिए ज़रूरी है.
datastore.locations.list डेटाबेस के लिए उपलब्ध जगहों की सूची बनाएं. नया डेटाबेस बनाने के लिए ज़रूरी है.
Key Visualizer की अनुमति का नाम ब्यौरा
datastore.keyVisualizerScans.get Key Visualizer के स्कैन के बारे में जानकारी पाएं.
datastore.keyVisualizerScans.list उपलब्ध Key Visualizer स्कैन की सूची बनाएं.
बैकअप शेड्यूल करने की अनुमति का नाम ब्यौरा
datastore.backupSchedules.get बैकअप के शेड्यूल के बारे में जानकारी पाएं.
datastore.backupSchedules.list बैकअप के उपलब्ध शेड्यूल की सूची.
datastore.backupSchedules.create बैकअप का शेड्यूल बनाएं.
datastore.backupSchedules.update बैकअप शेड्यूल को अपडेट करें.
datastore.backupSchedules.delete बैकअप का शेड्यूल मिटाएं.
बैकअप की अनुमति का नाम ब्यौरा
datastore.backups.get किसी बैकअप के बारे में जानकारी पाएं.
datastore.backups.list उपलब्ध बैकअप की सूची बनाएं.
datastore.backups.delete बैकअप मिटाएं.
datastore.backups.restoreDatabase बैकअप से डेटाबेस को वापस लाएं.
अहम जानकारी से जुड़ी अनुमति का नाम ब्यौरा
datastore.insights.get किसी संसाधन की अहम जानकारी पाना
उपयोगकर्ता के क्रेडेंशियल की अनुमति का नाम ब्यौरा
datastore.userCreds.get उपयोगकर्ता के क्रेडेंशियल के बारे में जानकारी पाएं.
datastore.userCreds.list उपयोगकर्ता के उपलब्ध क्रेडेंशियल की सूची बनाता है.
datastore.userCreds.create उपयोगकर्ता के क्रेडेंशियल बनाएं.
datastore.userCreds.update उपयोगकर्ता के क्रेडेंशियल चालू या बंद करें या उपयोगकर्ता का पासवर्ड रीसेट करें.
datastore.userCreds.delete उपयोगकर्ता के क्रेडेंशियल मिटाएं.

भूमिका में बदलाव होने में लगने वाला समय

Cloud Firestore आईएएम की अनुमतियों को पांच मिनट के लिए कैश मेमोरी में सेव करता है. इसलिए, भूमिका में बदलाव लागू होने में पांच मिनट तक लग सकते हैं.

Cloud Firestore IAM को मैनेज करना

Google Cloud Console, IAM API या gcloud कमांड-लाइन टूल का इस्तेमाल करके, IAM नीतियां पाई और सेट की जा सकती हैं. ज़्यादा जानकारी के लिए, प्रोजेक्ट के सदस्यों को ऐक्सेस देना, ऐक्सेस में बदलाव करना, और ऐक्सेस वापस लेना लेख पढ़ें.

शर्त के हिसाब से ऐक्सेस करने की अनुमतियां कॉन्फ़िगर करना

IAM की शर्तों का इस्तेमाल करके, शर्तों के साथ ऐक्सेस कंट्रोल को तय और लागू किया जा सकता है.

उदाहरण के लिए, यहां दी गई शर्त के मुताबिक, किसी प्रिंसिपल को तय की गई तारीख तक datastore.user भूमिका असाइन की जाती है:

{
  "role": "roles/datastore.user",
  "members": [
    "user:travis@example.com"
  ],
  "condition": {
    "title": "Expires_December_1_2023",
    "description": "Expires on December 1, 2023",
    "expression":
      "request.time < timestamp('2023-12-01T00:00:00.000Z')"
  }
}

कुछ समय के लिए ऐक्सेस देने के लिए, IAM की शर्तें तय करने का तरीका जानने के लिए, कुछ समय के लिए ऐक्सेस कॉन्फ़िगर करना लेख पढ़ें.

एक या उससे ज़्यादा डेटाबेस को ऐक्सेस करने के लिए, IAM की शर्तें कॉन्फ़िगर करने का तरीका जानने के लिए, डेटाबेस ऐक्सेस करने की शर्तें कॉन्फ़िगर करना लेख पढ़ें.

आगे क्या करना है