Kimlik ve Erişim Yönetimi (IAM)

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.get
datastore.entities.list
Aggregate datastore.entities.get
datastore.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.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 (yalnızca ekleme/güncelleme için)
FindAndModify datastore.entities.get
datastore.entities.list
datastore.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

clone isteğiniz bir tags değeri içeriyorsa aşağıdaki ek izinler gerekir:

  • datastore.databases.createTagBinding

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:

  • 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

Ö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.get

datastore.*

resourcemanager.projects.get
resourcemanager.projects.list
Cloud Firestore için tam erişim.
roles/datastore.user appengine.applications.get

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

resourcemanager.projects.get
resourcemanager.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.get

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

resourcemanager.projects.get
resourcemanager.projects.list
Tüm Cloud Firestore kaynaklarına okuma erişimi.
roles/datastore.indexAdmin appengine.applications.get

datastore.databases.getMetadata

datastore.schemas.*

datastore.operations.list
datastore.operations.get
resourcemanager.projects.get
resourcemanager.projects.list
Dizin tanımlarını yönetmek için tam erişim.
roles/datastore.backupSchedulesViewer datastore.backupSchedules.get
datastore.backupSchedules.list
Cloud Firestore veritabanındaki yedekleme planlarına okuma erişimi.
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 veritabanındaki yedekleme programlarına tam erişim.
roles/datastore.backupsViewer datastore.backups.get
datastore.backups.list
Cloud Firestore konumundaki yedekleme bilgilerine okuma erişimi.
roles/datastore.backupsAdmin datastore.backups.get
datastore.backups.list
datastore.backups.delete
Cloud Firestore konumundaki yedeklere tam erişim.
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 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.clone
datastore.databases.list
datastore.databases.create
datastore.databases.getMetadata
datastore.operations.list
datastore.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.get
resourcemanager.projects.list
datastore.databases.getMetadata
datastore.insights.get
datastore.keyVisualizerScans.get
datastore.keyVisualizerScans.list
datastore.statistics.list
datastore.statistics.get
Analizler, istatistikler ve Key Visualizer taramalarına okuma erişimi.
roles/datastore.userCredsViewer datastore.userCreds.get
datastore.userCreds.list
Cloud Firestore veritabanındaki kullanıcı kimlik bilgilerine okuma erişimi.
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 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.listTagBindings
  • datastore.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?