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.
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:
|
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?
- IAM hakkında daha fazla bilgi edinin.
- IAM rolleri verme.
- Kimlik doğrulama hakkında bilgi edinin.