पहचान और ऐक्सेस मैनेजमेंट (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.getdatastore.entities.list |
|
Aggregate |
datastore.entities.getdatastore.entities.list |
|
GetMore |
वही अनुमतियां जो कर्सर बनाने वाले कॉल के लिए ज़रूरी थीं. |
|
ListCollections |
datastore.entities.list |
|
Count |
datastore.entities.list |
|
Distinct |
datastore.entities.getdatastore.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.getdatastore.entities.listdatastore.entities.updatedatastore.entities.create (सिर्फ़ अपसर्ट के लिए) |
|
FindAndModify |
datastore.entities.getdatastore.entities.listdatastore.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 |
किसी डेटाबेस का क्लोन बनाएं.
अगर आपके
अगर आपको यह पुष्टि करनी है कि टैग बाइंडिंग सही तरीके से सेट की गई हैं या नहीं, तो आपको ये अतिरिक्त अनुमतियां देनी होंगी:
|
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.getdatastore.*resourcemanager.projects.getresourcemanager.projects.list |
Cloud Firestore का पूरा ऐक्सेस. |
roles/datastore.user |
appengine.applications.getdatastore.databases.getdatastore.databases.getMetadatadatastore.databases.listdatastore.entities.*datastore.indexes.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list |
Cloud Firestore डेटाबेस में मौजूद डेटा को पढ़ने/लिखने का ऐक्सेस. यह ऐप्लिकेशन डेवलपर और सेवा खातों के लिए है. |
roles/datastore.viewer |
appengine.applications.getdatastore.databases.getdatastore.databases.getMetadatadatastore.databases.listdatastore.entities.getdatastore.entities.listdatastore.indexes.getdatastore.indexes.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list |
Cloud Firestore के सभी संसाधनों को पढ़ने का ऐक्सेस. |
roles/datastore.indexAdmin |
appengine.applications.getdatastore.databases.getMetadatadatastore.indexes.*datastore.operations.listdatastore.operations.getresourcemanager.projects.getresourcemanager.projects.list |
इंडेक्स की परिभाषाओं को मैनेज करने का पूरा ऐक्सेस. |
roles/datastore.backupSchedulesViewer |
datastore.backupSchedules.getdatastore.backupSchedules.list |
Cloud Firestore डेटाबेस में बैकअप शेड्यूल को पढ़ने का ऐक्सेस. |
roles/datastore.backupSchedulesAdmin |
datastore.backupSchedules.getdatastore.backupSchedules.listdatastore.backupSchedules.createdatastore.backupSchedules.updatedatastore.backupSchedules.deletedatastore.databases.listdatastore.databases.getMetadata |
Cloud Firestore डेटाबेस में बैकअप शेड्यूल का पूरा ऐक्सेस. |
roles/datastore.backupsViewer |
datastore.backups.getdatastore.backups.list |
Cloud Firestore लोकेशन में बैकअप की जानकारी को पढ़ने की अनुमति. |
roles/datastore.backupsAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.delete |
Cloud Firestore लोकेशन में बैकअप का पूरा ऐक्सेस. |
roles/datastore.restoreAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.restoreDatabasedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
Cloud Firestore के बैकअप को नए डेटाबेस में वापस लाने की सुविधा. इस भूमिका के तहत, नए डेटाबेस भी बनाए जा सकते हैं. इसके लिए, बैकअप से डेटा वापस लाने की ज़रूरत नहीं होती. |
roles/datastore.cloneAdmin |
datastore.databases.clonedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
Cloud Firestore डेटाबेस को नए डेटाबेस में क्लोन करने की सुविधा. इस भूमिका के तहत, नए डेटाबेस भी बनाए जा सकते हैं. इसके लिए, क्लोनिंग करना ज़रूरी नहीं है. |
roles/datastore.statisticsViewer |
resourcemanager.projects.getresourcemanager.projects.listdatastore.databases.getMetadatadatastore.insights.getdatastore.keyVisualizerScans.getdatastore.keyVisualizerScans.listdatastore.statistics.listdatastore.statistics.get |
इनसाइट, आंकड़े, और Key Visualizer के स्कैन को पढ़ने का ऐक्सेस. |
roles/datastore.userCredsViewer |
datastore.userCreds.getdatastore.userCreds.list |
Cloud Firestore डेटाबेस में उपयोगकर्ता के क्रेडेंशियल को पढ़ने का ऐक्सेस. |
roles/datastore.userCredsAdmin |
datastore.userCreds.getdatastore.userCreds.listdatastore.userCreds.createdatastore.userCreds.updatedatastore.userCreds.deletedatastore.databases.listdatastore.databases.getMetadata |
Cloud Firestore डेटाबेस में उपयोगकर्ता के क्रेडेंशियल का पूरा ऐक्सेस. |
पसंद के मुताबिक बनाई गई भूमिकाएं
अगर पहले से तय की गई भूमिकाएं आपके कारोबार की ज़रूरतों के मुताबिक नहीं हैं, तो अपनी ज़रूरत के हिसाब से कस्टम भूमिकाएं तय की जा सकती हैं. इसके लिए, आपको अनुमतियां तय करनी होंगी:
टैग बनाने और मैनेज करने के लिए ज़रूरी भूमिकाएं
अगर किसी टैग को बनाने या वापस लाने की कार्रवाइयों में शामिल किया जाता है, तो कुछ भूमिकाएं ज़रूरी होती हैं. डेटाबेस रिसॉर्स से टैग को जोड़ने से पहले, टैग के लिए कुंजी-वैल्यू पेयर बनाने के बारे में ज़्यादा जानने के लिए, टैग बनाना और मैनेज करना लेख पढ़ें.
यहां दी गई अनुमतियां देना ज़रूरी है.
टैग देखें
datastore.databases.listTagBindingsdatastore.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 की शर्तें कॉन्फ़िगर करने का तरीका जानने के लिए, डेटाबेस ऐक्सेस करने की शर्तें कॉन्फ़िगर करना लेख पढ़ें.
आगे क्या करना है
- आईएएम के बारे में ज़्यादा जानें.
- आईएएम की भूमिकाएं असाइन करें.
- प्रमाणीकरण के बारे में जानें.