Kimlik ve Erişim Yönetimi (IAM)

Identity and Access Management (IAM) ile kaynaklarınıza erişimi yönetin. IAM, belirli Google Cloud kaynaklarına daha ayrıntılı erişim izni vermenize olanak tanır ve diğer kaynaklara istenmeyen erişimi engeller. Bu sayfada, Cloud Firestore için IAM izinleri ve rolleri açıklanmaktadır. IAM'nin ayrıntılı açıklaması için IAM belgelerini inceleyin.

IAM, en düşük ayrıcalık güvenlik ilkesini kullanmanıza olanak tanır. Böylece kaynaklarınıza yalnızca gerekli olan erişim iznini verirsiniz.

IAM, IAM politikaları ayarlayarak hangi kaynaklar için kimin (kullanıcı) hangi (rol) izne sahip olduğunu kontrol etmenize olanak tanır. IAM politikaları, bir kullanıcıya bir veya daha fazla rol vererek kullanıcıya belirli izinler tanır. Örneğin, bir kullanıcıya datastore.indexAdmin rolü atayabilirsiniz. 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, arayanın her işlemi gerçekleştirmek için sahip olması gereken izinler listelenmiştir:

Yöntem Gerekli izinler
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

İmleci oluşturan çağrı için gereken 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/güncelleme için)
datastore.entities.delete (yalnızca silme için)
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
restore datastore.backups.restoreDatabase
clone datastore.databases.clone Veritabanı klonlayın.

clone isteğinizde tags değeri varsa aşağıdaki ek izinler gerekir:

  • datastore.databases.createTagBinding

Bağlantıları listeleyerek etiket bağlamalarının başarıyla ayarlanıp ayarlanmadığını doğrulamak istiyorsanız aşağıdaki ek izinler gereklidir:

  • 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 için API isteğinde bulunan hesabın kaynağı kullanmak üzere uygun izinlere sahip olması gerekir. İzinler, kullanıcılara, gruplara veya hizmet hesaplarına roller veren politikalar ayarlanarak verilir. Sahip, düzenleyici ve görüntüleyici temel rollerine ek olarak, 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'a tam erişim.
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 veritabanındaki verilere okuma/yazma erişimi. Uygulama geliştiricileri ve hizmet hesaplarına yöneliktir.
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
Tüm Cloud Firestore kaynaklarına okuma erişimi.
roles/datastore.indexAdmin appengine.applications.get

datastore.databases.getMetadata

datastore.indexes.*

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 planları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 yedeğini yeni bir veritabanına geri yükleme olanağı. Bu rol, yedeklemeden geri yükleme yapmadan da yeni veritabanları oluşturma olanağı 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 klonlayabilme. Bu rol, klonlama yoluyla olmasa da yeni veritabanları oluşturma olanağı da sunar.
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şletme gereksinimlerinizi karşılamıyorsa belirttiğiniz izinlere sahip 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 gereklidir. Etiket anahtar-değer çiftlerini oluşturup 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 Bir veritabanından meta verileri okuma.
datastore.databases.list Bir 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ı klonlayın.
datastore.databases.createTagBinding Veritabanı için etiket bağlama oluşturun.
datastore.databases.deleteTagBinding Veritabanı için etiket bağlamayı silin.
datastore.databases.listTagBindings Bir veritabanı için tüm etiket bağlamalarını listeler.
datastore.databases.listEffectiveTagBindings Bir veritabanı için etkili etiket bağlamalarını listeler.
Varlık izni adı Açıklama
datastore.entities.create Doküman oluşturma
datastore.entities.delete Doküman silme
datastore.entities.get Bir dokümanı okuma
datastore.entities.list Bir projedeki dokümanların adlarını listeleme.
(Belge verilerine erişmek için datastore.entities.get gereklidir.)
datastore.entities.update Bir dokümanı güncelleyin.
Dizin izni adı Açıklama
datastore.indexes.create Dizin oluşturun.
datastore.indexes.delete Dizin silme
datastore.indexes.get Bir dizinden meta verileri okuma.
datastore.indexes.list Bir projedeki dizinleri listeleme.
datastore.indexes.update Dizini güncelleyin.
İşlem izni adı Açıklama
datastore.operations.cancel Uzun süren bir işlemi iptal etme
datastore.operations.delete Uzun süren bir işlemi silin.
datastore.operations.get Uzun süren bir işlemin en son durumunu alır.
datastore.operations.list Uzun süreli işlemleri listeleyin.
Proje izni adı Açıklama
resourcemanager.projects.get Projedeki kaynaklara göz atın.
resourcemanager.projects.list Sahip olunan projeleri listeleme
Konum izni adı Açıklama
datastore.locations.get Bir veritabanı konumu hakkında ayrıntılı bilgi edinin. Yeni bir veritabanı oluşturmak için gereklidir.
datastore.locations.list Kullanılabilir veritabanı konumlarını listeler. 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ı listeler.
Yedekleme Programı izni adı Açıklama
datastore.backupSchedules.get Yedekleme planı hakkında ayrıntılı bilgi edinin.
datastore.backupSchedules.list Kullanılabilir yedekleme planlarını listeler.
datastore.backupSchedules.create Yedekleme planı oluşturun.
datastore.backupSchedules.update Yedekleme zamanlamasını güncelleyin.
datastore.backupSchedules.delete Yedekleme planını silme
Yedekleme izni adı Açıklama
datastore.backups.get Yedekleme hakkında ayrıntılı bilgi edinin.
datastore.backups.list Kullanılabilir yedekleri listeler.
datastore.backups.delete Yedek silme
datastore.backups.restoreDatabase Bir veritabanını yedekten geri yükleme.
Analiz izni adı Açıklama
datastore.insights.get Bir kaynağın analizlerini alma
Kullanıcı kimlik bilgileri izin adı Açıklama
datastore.userCreds.get Kullanıcı kimlik bilgileri hakkında ayrıntılı bilgi edinin.
datastore.userCreds.list Kullanılabilir kullanıcı kimlik bilgilerini listeler.
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 silin.

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çerli olması 5 dakika sürer.

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 verme, erişimi değiştirme ve iptal etme başlıklı makaleyi inceleyin.

Koşullu erişim izinlerini yapılandırma

Koşullu erişim denetimini tanımlamak ve zorunlu kılmak için IAM koşullarını kullanabilirsiniz.

Örneğin, aşağıdaki koşul, belirtilen tarihe kadar bir asile datastore.user rolü 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 koşullarını nasıl tanımlayacağınızı öğrenmek istiyorsanız Geçici erişimi yapılandırma başlıklı makaleye bakın.

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?