Zarządzanie dostępem do zasobów za pomocą usługi Identity and Access Management (IAM). IAM umożliwia przyznawanie bardziej szczegółowego dostępu do konkretnych Google Cloudzasobów i zapobiega niepożądanemu dostępowi do innych zasobów. Na tej stronie opisujemy uprawnienia i role IAM dla Cloud Firestore. Szczegółowy opis IAM znajdziesz w dokumentacji IAM.
IAM umożliwia wdrożenie zasady minimalnego wymaganego poziomu uprawnień, która polega na przyznawaniu wyłącznie niezbędnych praw dostępu do zasobów.
Uprawnienia pozwalają kontrolować, kto (użytkownik) ma jakie (rola) uprawnienia do których zasobów, gdy ustawisz zasady uprawnień.
Zasady IAM przyznają użytkownikowi co najmniej 1 rolę, która daje mu określone uprawnienia. Możesz na przykład przyznać użytkownikowi rolę datastore.indexAdmin, która umożliwia mu tworzenie, modyfikowanie, usuwanie, wyświetlanie i przeglądanie indeksów.
Uprawnienia i role
W tej sekcji podsumowujemy uprawnienia i role obsługiwane przez Cloud Firestore.
Wymagane uprawnienia do metod interfejsu API
W tabeli poniżej znajdziesz uprawnienia, które musi mieć wywołujący, aby wykonać poszczególne działania:
| Metoda | Wymagane uprawnienia | |
|---|---|---|
projects.databases.MongoDBCompatible |
||
ListDatabases |
datastore.databases.getMetadata |
|
ListIndexes |
datastore.indexes.list |
|
Find |
datastore.entities.getdatastore.entities.list |
|
Aggregate |
datastore.entities.getdatastore.entities.list |
|
GetMore |
Te same uprawnienia, które były wymagane przez wywołanie, które utworzyło kursor. |
|
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 (tylko w przypadku operacji upsert) |
|
FindAndModify |
datastore.entities.getdatastore.entities.listdatastore.entities.update (tylko w przypadku zastępowania lub aktualizowania)datastore.entities.create (tylko w przypadku wstawiania lub aktualizowania)datastore.entities.delete (tylko w przypadku usuwania) |
|
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 |
|
| przywróć | datastore.backups.restoreDatabase |
|
clone |
datastore.databases.clone |
sklonować bazę danych,
Jeśli żądanie
Jeśli chcesz sprawdzić, czy powiązania tagów zostały ustawione prawidłowo, wyświetlając listę powiązań, musisz mieć te dodatkowe uprawnienia:
|
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 |
|
Gotowe role
W przypadku IAM każda metoda interfejsu API w Cloud Firestorewymaga, aby konto wysyłające żądanie do interfejsu API miało odpowiednie uprawnienia do korzystania z zasobu. Uprawnienia są przyznawane przez ustawienie zasad, które przyznają role użytkownikowi, grupie lub kontu usługi. Oprócz ról podstawowych właściciel, edytujący i wyświetlający możesz przyznawać użytkownikom projektu role Cloud Firestore.
W tabeli poniżej znajdziesz role Cloud Firestore IAM. Możesz przyznać użytkownikowi, grupie lub kontu usługi wiele ról.
| Rola | Uprawnienia | Opis |
|---|---|---|
roles/datastore.owner |
appengine.applications.getdatastore.*resourcemanager.projects.getresourcemanager.projects.list |
Pełny dostęp do Cloud Firestore. |
roles/datastore.user |
appengine.applications.getdatastore.databases.getdatastore.databases.getMetadatadatastore.databases.listdatastore.entities.*datastore.indexes.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list |
Uprawnienia do odczytu i zapisu danych w bazie danych Cloud Firestore. Rola przeznaczona dla twórców aplikacji i kont usługi. |
roles/datastore.viewer |
appengine.applications.getdatastore.databases.getdatastore.databases.getMetadatadatastore.databases.listdatastore.entities.getdatastore.entities.listdatastore.indexes.getdatastore.indexes.listdatastore.namespaces.getdatastore.namespaces.listdatastore.statistics.getdatastore.statistics.listresourcemanager.projects.getresourcemanager.projects.list |
Dostęp do wszystkich zasobów Cloud Firestore w trybie odczytu. |
roles/datastore.indexAdmin |
appengine.applications.getdatastore.databases.getMetadatadatastore.indexes.*datastore.operations.listdatastore.operations.getresourcemanager.projects.getresourcemanager.projects.list |
Pełny dostęp do zarządzania definicjami indeksów. |
roles/datastore.backupSchedulesViewer |
datastore.backupSchedules.getdatastore.backupSchedules.list |
Dostęp z możliwością odczytu do harmonogramów tworzenia kopii zapasowych w bazie danych Cloud Firestore. |
roles/datastore.backupSchedulesAdmin |
datastore.backupSchedules.getdatastore.backupSchedules.listdatastore.backupSchedules.createdatastore.backupSchedules.updatedatastore.backupSchedules.deletedatastore.databases.listdatastore.databases.getMetadata |
Pełny dostęp do harmonogramów tworzenia kopii zapasowych w bazie danych Cloud Firestore. |
roles/datastore.backupsViewer |
datastore.backups.getdatastore.backups.list |
Dostęp z możliwością odczytu do informacji o kopii zapasowej w Cloud Firestore. |
roles/datastore.backupsAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.delete |
Pełny dostęp do kopii zapasowych w lokalizacji Cloud Firestore. |
roles/datastore.restoreAdmin |
datastore.backups.getdatastore.backups.listdatastore.backups.restoreDatabasedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
Możliwość przywrócenia kopii zapasowej Cloud Firestore do nowej bazy danych. Ta rola umożliwia też tworzenie nowych baz danych, niekoniecznie przez przywracanie z kopii zapasowej. |
roles/datastore.cloneAdmin |
datastore.databases.clonedatastore.databases.listdatastore.databases.createdatastore.databases.getMetadatadatastore.operations.listdatastore.operations.get |
Możliwość sklonowania bazy danych Cloud Firestore do nowej bazy danych. Ta rola umożliwia też tworzenie nowych baz danych, niekoniecznie przez klonowanie. |
roles/datastore.statisticsViewer |
resourcemanager.projects.getresourcemanager.projects.listdatastore.databases.getMetadatadatastore.insights.getdatastore.keyVisualizerScans.getdatastore.keyVisualizerScans.listdatastore.statistics.listdatastore.statistics.get |
Dostęp z możliwością odczytu do obserwacji, statystyk i skanowań usługi Key Visualizer. |
roles/datastore.userCredsViewer |
datastore.userCreds.getdatastore.userCreds.list |
Dostęp z możliwością odczytu do danych logowania użytkowników w bazie danych Cloud Firestore. |
roles/datastore.userCredsAdmin |
datastore.userCreds.getdatastore.userCreds.listdatastore.userCreds.createdatastore.userCreds.updatedatastore.userCreds.deletedatastore.databases.listdatastore.databases.getMetadata |
Pełny dostęp do danych logowania użytkowników w Cloud Firestore bazie danych. |
Role niestandardowe
Jeśli wstępnie zdefiniowane role nie spełniają wymagań Twojej firmy, możesz zdefiniować własne role niestandardowe z samodzielnie określonymi uprawnieniami:
Role wymagane do tworzenia tagów i zarządzania nimi
Jeśli tag jest reprezentowany w działaniach związanych z tworzeniem lub przywracaniem, wymagane są niektóre role. Więcej informacji o tworzeniu par klucz-wartość tagu przed powiązaniem ich z zasobami bazy danych znajdziesz w artykule Tworzenie tagów i zarządzanie nimi.
Wymagane są te uprawnienia:
Wyświetl tagi
datastore.databases.listTagBindingsdatastore.databases.listEffectiveTags
Zarządzanie tagami w zasobach
W przypadku zasobu bazy danych, do którego dołączasz wartość tagu, wymagane jest to uprawnienie:
datastore.databases.createTagBinding
Uprawnienia
Tabela poniżej zawiera listę uprawnień, które obsługuje Cloud Firestore.
| Nazwa uprawnienia do bazy danych | Opis | |
|---|---|---|
datastore.databases.get |
Rozpoczynanie lub wycofywanie transakcji. | |
datastore.databases.getMetadata |
Odczytywanie metadanych z bazy danych. | |
datastore.databases.list |
Wyświetlanie listy baz danych w projekcie. | |
datastore.databases.create |
Utwórz bazę danych. | |
datastore.databases.update |
Zaktualizuj bazę danych. | |
datastore.databases.delete |
Usuń bazę danych. | |
datastore.databases.clone |
sklonować bazę danych, | |
datastore.databases.createTagBinding |
Utwórz wiązanie tagu dla bazy danych. | |
datastore.databases.deleteTagBinding |
Usuwanie wiązania tagu z bazą danych. | |
datastore.databases.listTagBindings |
Wyświetl wszystkie powiązania tagów z bazą danych. | |
datastore.databases.listEffectiveTagBindings |
Wyświetla listę obowiązujących powiązań tagów z bazą danych. | |
| Nazwa uprawnienia do jednostki | Opis | |
datastore.entities.create |
Utwórz dokument. | |
datastore.entities.delete |
Usuń dokument. | |
datastore.entities.get |
Odczytaj dokument. | |
datastore.entities.list |
Wyświetlanie listy nazw dokumentów w projekcie. ( datastore.entities.get jest wymagany do uzyskania dostępu do danych dokumentu). |
|
datastore.entities.update |
zaktualizować dokument, | |
| Nazwa uprawnienia do indeksu | Opis | |
datastore.indexes.create |
Utwórz indeks. | |
datastore.indexes.delete |
Usuń indeks. | |
datastore.indexes.get |
Odczytywanie metadanych z indeksu. | |
datastore.indexes.list |
Wyświetlanie listy indeksów w projekcie. | |
datastore.indexes.update |
Zaktualizuj indeks. | |
| Nazwa uprawnienia do operacji | Opis | |
datastore.operations.cancel |
Anulowanie długotrwałej operacji. | |
datastore.operations.delete |
Usuwanie długotrwałej operacji | |
datastore.operations.get |
Pobiera najnowszy stan długo trwającej operacji. | |
datastore.operations.list |
Wyświetl listę długo trwających operacji. | |
| Nazwa uprawnienia do projektu | Opis | |
resourcemanager.projects.get |
Przeglądaj zasoby w projekcie. | |
resourcemanager.projects.list |
Wyświetl listę projektów, których jesteś właścicielem. | |
| Nazwa uprawnienia dostępu do lokalizacji | Opis | |
datastore.locations.get |
uzyskiwać szczegółowe informacje o lokalizacji bazy danych, Wymagane do utworzenia nowej bazy danych. | |
datastore.locations.list |
Wyświetl listę dostępnych lokalizacji baz danych. Wymagane do utworzenia nowej bazy danych. | |
| Nazwa uprawnienia Key Visualizer | Opis | |
datastore.keyVisualizerScans.get |
Sprawdzanie szczegółów skanowań usługi Key Visualizer | |
datastore.keyVisualizerScans.list |
Wyświetlanie listy dostępnych skanów usługi Key Visualizer. | |
| Nazwa uprawnienia Harmonogram tworzenia kopii zapasowych | Opis | |
datastore.backupSchedules.get |
Uzyskaj szczegółowe informacje o harmonogramie tworzenia kopii zapasowych. | |
datastore.backupSchedules.list |
Wyświetl dostępne harmonogramy tworzenia kopii zapasowych. | |
datastore.backupSchedules.create |
Utwórz harmonogram tworzenia kopii zapasowych. | |
datastore.backupSchedules.update |
Aktualizowanie harmonogramu tworzenia kopii zapasowych. | |
datastore.backupSchedules.delete |
Usuń harmonogram tworzenia kopii zapasowych. | |
| Nazwa uprawnienia do tworzenia kopii zapasowych | Opis | |
datastore.backups.get |
Pobieranie szczegółów kopii zapasowej | |
datastore.backups.list |
Wyświetl listę dostępnych kopii zapasowych. | |
datastore.backups.delete |
Usuń kopię zapasową. | |
datastore.backups.restoreDatabase |
Przywróć bazę danych z kopii zapasowej. | |
| Nazwa uprawnienia do statystyk | Opis | |
datastore.insights.get |
Uzyskiwanie statystyk dotyczących zasobu | |
| Nazwa uprawnienia danych logowania użytkownika | Opis | |
datastore.userCreds.get |
Uzyskiwanie szczegółowych informacji o danych logowania użytkownika. | |
datastore.userCreds.list |
Wyświetl dostępne dane logowania użytkownika. | |
datastore.userCreds.create |
Utwórz dane logowania użytkownika. | |
datastore.userCreds.update |
Włączanie i wyłączanie danych logowania użytkownika oraz resetowanie hasła użytkownika. | |
datastore.userCreds.delete |
Usuń dane logowania użytkownika. |
Opóźnienie zmiany roli
Cloud Firestore buforuje uprawnienia IAM przez 5 minut, więc zastosowanie zmiany roli może potrwać do 5 minut.
Zarządzanie Cloud Firestore IAM
Zasady IAM możesz pobierać i ustawiać za pomocą konsoli Google Cloud, interfejsu IAM API lub narzędzia wiersza poleceń gcloud. Więcej informacji znajdziesz w artykule Przyznawanie, zmienianie i odbieranie uprawnień dostępu uczestnikom projektu.
Konfigurowanie uprawnień dostępu warunkowego
Za pomocą warunków uprawnień możesz definiować i egzekwować warunkową kontrolę dostępu.
Na przykład ten warunek przypisuje podmiotowi zabezpieczeń rolę datastore.user do określonej daty:
{
"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')"
}
}
Aby dowiedzieć się, jak zdefiniować warunki uprawnień dla dostępu tymczasowego, zapoznaj się z artykułem Konfigurowanie dostępu tymczasowego.
Aby dowiedzieć się, jak skonfigurować warunki uprawnień dotyczące dostępu do co najmniej 1 bazy danych, przeczytaj artykuł Konfigurowanie warunków dostępu do bazy danych.
Co dalej?
- Dowiedz się więcej o IAM.
- Przypisz role uprawnień.
- Dowiedz się więcej o uwierzytelnianiu.