पहचान और ऐक्सेस मैनेजमेंट (आईएएम) की मदद से, अपने संसाधनों का ऐक्सेस मैनेज करें. IAM की मदद से, Google Cloud के खास संसाधनों का ज़्यादा बारीकी से ऐक्सेस दिया जा सकता है. साथ ही, अन्य संसाधनों के अनचाहे ऐक्सेस को रोका जा सकता है. इस पेज पर, Cloud Firestore के लिए IAM अनुमतियों और भूमिकाओं के बारे में बताया गया है. IAM के बारे में ज़्यादा जानकारी के लिए, IAM दस्तावेज़ पढ़ें.
IAM की मदद से, कम से कम अधिकारों का सुरक्षा सिद्धांत अपनाया जा सकता है. इससे अपने संसाधनों का सिर्फ़ ज़रूरी ऐक्सेस दिया जा सकता है.
IAM की मदद से, यह कंट्रोल किया जा सकता है कि किस (उपयोगकर्ता) के पास किन संसाधनों के लिए क्या (भूमिका) अनुमति है. इसके लिए, IAM की नीतियां सेट करनी होंगी.
IAM नीतियां, किसी उपयोगकर्ता को एक या उससे ज़्यादा भूमिकाएं देती हैं. इससे उपयोगकर्ता को कुछ अनुमतियां मिलती हैं. उदाहरण के लिए, किसी उपयोगकर्ता को datastore.indexAdmin
भूमिका दी जा सकती है. इससे उपयोगकर्ता को इंडेक्स बनाने, उनमें बदलाव करने, उन्हें मिटाने, उनकी सूची बनाने या उन्हें देखने की अनुमति मिलती है.
अनुमतियां और भूमिकाएं
इस सेक्शन में, उन अनुमतियों और भूमिकाओं के बारे में खास जानकारी दी गई है जो Cloud Firestore के साथ काम करती हैं.
एपीआई के तरीकों के लिए ज़रूरी अनुमतियां
यहां दी गई टेबल में उन अनुमतियों की सूची दी गई है जो कॉलर के पास हर कार्रवाई करने के लिए होनी चाहिए:
| तरीका | ज़रूरी अनुमतियां | |
|---|---|---|
projects.databases.MongoDBCompatible |
||
ListDatabases |
datastore.databases.getMetadata |
|
ListIndexes |
datastore.schemas.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 |
|
DropCollection |
datastore.schemas.delete |
|
projects.databases.indexes |
||
create |
datastore.schemas.create |
|
delete |
datastore.schemas.delete |
|
get |
datastore.schemas.get |
|
list |
datastore.schemas.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.schemas.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.schemas.getdatastore.schemas.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list |
Cloud Firestore के सभी संसाधनों को पढ़ने का ऐक्सेस. |
roles/datastore.indexAdmin |
appengine.applications.getdatastore.databases.getMetadatadatastore.schemas.*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.schemas.create |
कोई इंडेक्स बनाएं. | |
datastore.schemas.delete |
किसी इंडेक्स को मिटाना. | |
datastore.schemas.get |
किसी इंडेक्स से मेटाडेटा पढ़ना. | |
datastore.schemas.list |
किसी प्रोजेक्ट में इंडेक्स की सूची बनाना. | |
datastore.schemas.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 की शर्तों का इस्तेमाल करके, शर्त के साथ ऐक्सेस कंट्रोल को तय और लागू किया जा सकता है.
उदाहरण के लिए, यहां दी गई शर्त के तहत, किसी प्रिंसिपल को तय की गई तारीख तक 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 के बारे में ज़्यादा जानें.
- आईएएम की भूमिकाएं असाइन करना.
- पुष्टि करने की प्रोसेस के बारे में जानें.