Identity and Access Management (IAM) ile kaynaklarınıza erişimi yönetme IAM, belirli Google Cloud kaynaklarına daha ayrıntılı erişim vermenize olanak tanır ve diğer kaynaklara istenmeyen erişimi önler. Bu sayfada, Cloud Firestore için IAM izinleri ve rolleri açıklanmaktadır. IAM'nin ayrıntılı açıklaması için IAM belgelerini okuyun.
IAM, en az ayrıcalık ilkesi güvenlik ilkesini uygulamanıza olanak tanır. Böylece kaynaklarınıza yalnızca gerekli erişim iznini verirsiniz.
IAM, IAM politikaları belirleyerek hangi kaynaklar için kimin (kullanıcı) ne (rol) iznine sahip olduğunu kontrol etmenizi sağlar.
IAM politikaları, bir kullanıcıya bir veya daha fazla rol vererek kullanıcıya belirli izinler sağlar. Örneğin, bir kullanıcıya datastore.indexAdmin rolünü verebilirsiniz. Bu rol, kullanıcının dizin oluşturmasına, değiştirmesine, silmesine, listelemesine veya görüntülemesine olanak tanır.
İzinler ve roller
Bu bölümde, Cloud Firestore tarafından desteklenen izinler ve roller özetlenmektedir.
API yöntemleri için gerekli izinler
Aşağıdaki tabloda, her bir işlemi gerçekleştirmek için çağrı yapanın sahip olması gereken izinler listelenmiştir:
| Yöntem | Gerekli izinler | |
|---|---|---|
projects.databases.MongoDBCompatible |
||
ListDatabases |
datastore.databases.getMetadata |
|
ListIndexes |
datastore.schemas.list |
|
Find |
datastore.entities.getdatastore.entities.list |
|
Aggregate |
datastore.entities.getdatastore.entities.list |
|
GetMore |
İmleci oluşturan çağrının gerektirdiği izinlerle aynı izinler. |
|
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 (yalnızca ekleme/güncelleme için) |
|
FindAndModify |
datastore.entities.getdatastore.entities.listdatastore.entities.update (yalnızca değiştirme veya güncelleme için)datastore.entities.create (yalnızca ekleme veya güncelleme için)datastore.entities.delete (yalnızca silme için) |
|
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 |
|
| restore | datastore.backups.restoreDatabase |
|
clone |
datastore.databases.clone |
Veritabanı klonlama
Bağlamaları listeleyerek etiket bağlamalarının başarıyla ayarlanıp ayarlanmadığını doğrulamak istiyorsanız aşağıdaki ek izinler gerekir:
|
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 |
|
Önceden tanımlanmış roller
IAM ile Cloud Firestore içindeki her API yöntemi, API isteğini gönderen hesabın kaynağı kullanmak için uygun izinlere sahip olmasını gerektirir. İzinler, bir kullanıcıya, gruba veya hizmet hesabına rol veren politikalar ayarlanarak verilir. Sahip, düzenleyici ve görüntüleyici gibi temel rollerin yanı sıra projenizin kullanıcılarına Cloud Firestore rolleri de verebilirsiniz.
Aşağıdaki tabloda Cloud Firestore IAM rolleri listelenmiştir. Bir kullanıcıya, gruba veya hizmet hesabına birden fazla rol verebilirsiniz.
| Rol | İzinler | Açıklama |
|---|---|---|
roles/datastore.owner |
appengine.applications.getdatastore.*resourcemanager.projects.getresourcemanager.projects.list |
Cloud Firestore için tam erişim. |
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 veritabanındaki verilere okuma/yazma erişimi. Uygulama geliştiriciler ve hizmet hesapları için tasarlanmıştır. |
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 |
Tüm Cloud Firestore kaynaklarına okuma erişimi. |
roles/datastore.indexAdmin |
appengine.applications.getdatastore.databases.getMetadatadatastore.schemas.*datastore.operations.listdatastore.operations.getresourcemanager.projects.getresourcemanager.projects.list |
Dizin tanımlarını yönetmek için tam erişim. |
roles/datastore.backupSchedulesViewer |
datastore.backupSchedules.getdatastore.backupSchedules.list |
Cloud Firestore veritabanındaki yedekleme planlarına okuma erişimi. |
roles/datastore.backupSchedulesAdmin |
datastore.backupSchedules.getdatastore.backupSchedules.listdatastore.backupSchedules.createdatastore.backupSchedules.updatedatastore.backupSchedules.deletedatastore.databases.listdatastore.databases.getMetadata |
Cloud Firestore veritabanındaki yedekleme programlarına tam erişim. |
roles/datastore.backupsViewer |
datastore.backups.getdatastore.backups.list |
Cloud Firestore konumundaki yedekleme bilgilerine okuma erişimi. |
roles/datastore.backupsAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.delete |
Cloud Firestore konumundaki yedeklere tam erişim. |
roles/datastore.restoreAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.restoreDatabasedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
Cloud Firestore yedeklemesini yeni bir veritabanına geri yükleme özelliği. Bu rol, yedeklemeden geri yükleme yapmadan yeni veritabanları oluşturma olanağı da sağlar. |
roles/datastore.cloneAdmin |
datastore.databases.clonedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
Cloud Firestore veritabanını yeni bir veritabanına kopyalama özelliği. Bu rol, klonlama yoluyla olması gerekmeksizin yeni veritabanları oluşturma olanağı da sağlar. |
roles/datastore.statisticsViewer |
resourcemanager.projects.getresourcemanager.projects.listdatastore.databases.getMetadatadatastore.insights.getdatastore.keyVisualizerScans.getdatastore.keyVisualizerScans.listdatastore.statistics.listdatastore.statistics.get |
Analizler, istatistikler ve Key Visualizer taramalarına okuma erişimi. |
roles/datastore.userCredsViewer |
datastore.userCreds.getdatastore.userCreds.list |
Cloud Firestore veritabanındaki kullanıcı kimlik bilgilerine okuma erişimi. |
roles/datastore.userCredsAdmin |
datastore.userCreds.getdatastore.userCreds.listdatastore.userCreds.createdatastore.userCreds.updatedatastore.userCreds.deletedatastore.databases.listdatastore.databases.getMetadata |
Cloud Firestore veritabanındaki kullanıcı kimlik bilgilerine tam erişim. |
Özel rol sayısı
Önceden tanımlanmış roller işletmenizin gereksinimlerini karşılamıyorsa belirttiğiniz izinlerle kendi özel rollerinizi tanımlayabilirsiniz:
Etiket oluşturmak ve yönetmek için gereken roller
Oluşturma veya geri yükleme işlemlerinde herhangi bir etiket varsa bazı roller gerekir. Etiket anahtar/değer çiftlerini veritabanı kaynaklarıyla ilişkilendirmeden önce oluşturma hakkında daha fazla bilgi için Etiket oluşturma ve yönetme başlıklı makaleyi inceleyin.
Aşağıda listelenen izinler gereklidir.
Etiketleri görüntüle
datastore.databases.listTagBindingsdatastore.databases.listEffectiveTags
Kaynaklardaki etiketleri yönetme
Etiket değerini eklediğiniz veritabanı kaynağı için aşağıdaki izin gereklidir.
datastore.databases.createTagBinding
İzinler
Aşağıdaki tabloda, Cloud Firestore tarafından desteklenen izinler listelenmiştir.
| Veritabanı izni adı | Açıklama | |
|---|---|---|
datastore.databases.get |
İşlem başlatma veya geri alma | |
datastore.databases.getMetadata |
Veritabanından meta verileri okuma | |
datastore.databases.list |
Projedeki veritabanlarını listeleme | |
datastore.databases.create |
Veritabanı oluşturun. | |
datastore.databases.update |
Veritabanını güncelleme | |
datastore.databases.delete |
Veritabanı silme | |
datastore.databases.clone |
Veritabanı klonlama | |
datastore.databases.createTagBinding |
Veritabanı için etiket bağlama oluşturma | |
datastore.databases.deleteTagBinding |
Veritabanı için etiket bağlamayı silme | |
datastore.databases.listTagBindings |
Bir veritabanı için tüm etiket bağlamaları listeleme | |
datastore.databases.listEffectiveTagBindings |
Bir veritabanı için geçerli etiket bağlamaları listeleme | |
| Varlık izni adı | Açıklama | |
datastore.entities.create |
Doküman oluşturun. | |
datastore.entities.delete |
Belge silme | |
datastore.entities.get |
Bir dokümanı okuyun. | |
datastore.entities.list |
Bir projedeki dokümanların adlarını listeleme (Belge verilerine erişmek için datastore.entities.get gereklidir.) |
|
datastore.entities.update |
Doküman güncelleme | |
| Dizin izni adı | Açıklama | |
datastore.schemas.create |
Dizin oluşturun. | |
datastore.schemas.delete |
Dizini silme | |
datastore.schemas.get |
Bir dizindeki meta verileri okuma | |
datastore.schemas.list |
Bir projedeki dizinleri listeler. | |
datastore.schemas.update |
Dizini güncelleme | |
| İşlem izni adı | Açıklama | |
datastore.operations.cancel |
Uzun süreli bir işlemi iptal etme | |
datastore.operations.delete |
Uzun süreli bir işlemi siler. | |
datastore.operations.get |
Uzun süreli bir işlemin en son durumunu bildirir. | |
datastore.operations.list |
Uzun süreli işlemleri listeleme | |
| Proje izni adı | Açıklama | |
resourcemanager.projects.get |
Projedeki kaynaklara göz atın. | |
resourcemanager.projects.list |
Sahibi olduğunuz projeleri listeleme | |
| Konum izni adı | Açıklama | |
datastore.locations.get |
Veritabanı konumuyla ilgili ayrıntıları alma Yeni bir veritabanı oluşturmak için gereklidir. | |
datastore.locations.list |
Kullanılabilir veritabanı konumlarını listeleme Yeni bir veritabanı oluşturmak için gereklidir. | |
| Key Visualizer izin adı | Açıklama | |
datastore.keyVisualizerScans.get |
Key Visualizer taramaları hakkında ayrıntılı bilgi edinin. | |
datastore.keyVisualizerScans.list |
Kullanılabilir Key Visualizer taramalarını listeleme | |
| Yedekleme programı izin adı | Açıklama | |
datastore.backupSchedules.get |
Yedekleme programı hakkında ayrıntılı bilgi edinme | |
datastore.backupSchedules.list |
Mevcut yedekleme programlarını listeleme | |
datastore.backupSchedules.create |
Yedekleme programı oluşturun. | |
datastore.backupSchedules.update |
Yedekleme programını güncelleme | |
datastore.backupSchedules.delete |
Yedekleme programını silme | |
| Yedekleme izni adı | Açıklama | |
datastore.backups.get |
Yedeklemeyle ilgili ayrıntıları öğrenme | |
datastore.backups.list |
Kullanılabilir yedekleri listeleme | |
datastore.backups.delete |
Yedek silme | |
datastore.backups.restoreDatabase |
Veritabanını yedekten geri yükleme | |
| Analiz izni adı | Açıklama | |
datastore.insights.get |
Bir kaynağın analizlerini alma | |
| Kullanıcı kimlik bilgileri izninin adı | Açıklama | |
datastore.userCreds.get |
Kullanıcı kimlik bilgileriyle ilgili ayrıntıları alma | |
datastore.userCreds.list |
Kullanılabilir kullanıcı kimlik bilgilerini listeleme | |
datastore.userCreds.create |
Kullanıcı kimlik bilgileri oluşturun. | |
datastore.userCreds.update |
Kullanıcı kimlik bilgilerini etkinleştirme veya devre dışı bırakma ya da kullanıcı şifresini sıfırlama | |
datastore.userCreds.delete |
Kullanıcı kimlik bilgilerini silme |
Rol değişikliği gecikmesi
Cloud Firestore, IAM izinlerini 5 dakika boyunca önbelleğe alır. Bu nedenle, rol değişikliğinin geçerlilik kazanması 5 dakikayı bulabilir.
Cloud Firestore IAM'yi yönetme
Google Cloud Console, IAM API veya gcloud komut satırı aracını kullanarak IAM politikalarını alabilir ve ayarlayabilirsiniz. Ayrıntılar için Proje üyelerine erişim izni verme, erişim iznini değiştirme ve iptal etme başlıklı makaleyi inceleyin.
Koşullu erişim izinlerini yapılandırma
Koşullu erişim denetimi tanımlamak ve uygulamak için IAM koşullarını kullanabilirsiniz.
Örneğin, aşağıdaki koşul, belirli bir tarihe kadar bir alt öğeye datastore.user rolünü atar:
{
"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')"
}
}
Geçici erişim için IAM Condition'larını nasıl tanımlayacağınızı öğrenmek istiyorsanız Geçici erişimi yapılandırma başlıklı makaleyi inceleyin.
Bir veya daha fazla veritabanına erişim için IAM Koşulları'nı nasıl yapılandıracağınızı öğrenmek istiyorsanız Veritabanı erişim koşullarını yapılandırma başlıklı makaleyi inceleyin.
Sırada ne var?
- IAM hakkında daha fazla bilgi edinin.
- IAM rolleri verme
- Kimlik doğrulama hakkında bilgi edinin.