Questa pagina descrive come controllare l'accesso e le autorizzazioni ai progetti Memorystore for Redis utilizzando Identity and Access Management (IAM).
Panoramica
Google Cloud offre IAM, che ti consente di concedere un accesso più granulare a determinate risorse Google Cloud e impedisce l'accesso indesiderato ad altre risorse. In questa pagina vengono descritti i ruoli e le autorizzazioni IAM di Memorystore for Redis. Per una descrizione dettagliata dei ruoli e delle autorizzazioni, consulta la documentazione di IAM.
Memorystore for Redis fornisce un insieme di ruoli predefiniti progettati per aiutarti a controllare facilmente l'accesso alle tue risorse Redis. Se i ruoli predefiniti non forniscono i set di autorizzazioni di cui hai bisogno, puoi anche creare ruoli personalizzati. Inoltre, sono ancora disponibili i ruoli di base precedenti (Editor, Visualizzatore e Proprietario), anche se non forniscono lo stesso controllo granulare dei ruoli di Memorystore for Redis. In particolare, i ruoli di base forniscono l'accesso alle risorse inGoogle Cloud, non solo per Memorystore for Redis. Per saperne di più sui ruoli di base, consulta Ruoli di base.
Autorizzazioni e ruoli
Questa sezione riepiloga le autorizzazioni e i ruoli supportati da Memorystore for Redis.
Ruoli predefiniti
Memorystore for Redis fornisce alcuni ruoli predefiniti che puoi utilizzare per fornire autorizzazioni più granulari alle entità. Il ruolo che concedi a un'entità controlla le azioni che l'entità può eseguire. Le entità possono essere persone, gruppi o service account.
Puoi concedere più ruoli alla stessa entità e, se disponi delle autorizzazioni necessarie, puoi modificare i ruoli concessi a un'entità in qualsiasi momento.
I ruoli più ampi includono quelli definiti in modo più ristretto. Ad esempio, il ruolo Redis Editor include tutte le autorizzazioni del ruolo Redis Viewer, oltre alle autorizzazioni per il ruolo Redis Editor. Analogamente, il ruolo Amministratore Redis include tutte le autorizzazioni del ruolo Editor Redis, oltre alle autorizzazioni aggiuntive.
I ruoli di base (Proprietario, Editor, Visualizzatore) forniscono autorizzazioni per Google Cloud. I ruoli specifici di Memorystore for Redis forniscono solo le autorizzazioni di Memorystore for Redis, ad eccezione delle seguenti autorizzazioni Google Cloud , necessarie per l'utilizzo generale di Google Cloud :
resourcemanager.projects.get
resourcemanager.projects.list
La tabella seguente elenca i ruoli predefiniti disponibili per Memorystore for Redis, insieme alle relative autorizzazioni di Memorystore for Redis:
| Ruolo | Nome | Autorizzazioni Redis | Descrizione |
|---|---|---|---|
|
Proprietario |
|
Accesso e controllo completi per tutte le risorse Google Cloud ; gestione dell'accesso degli utenti |
|
Editor | Tutte le autorizzazioni redis tranne *.getIamPolicye.setIamPolicy |
Accesso in lettura/scrittura a tutte le risorse Google Cloud e Redis (controllo completo con esclusione della possibilità di modificare le autorizzazioni) |
|
Visualizzatore |
|
Accesso di sola lettura a tutte le risorse Memorystore for Redis. Tuttavia, non puoi utilizzare questa autorizzazione per visualizzare i dati associati alle risorse. |
|
Redis Admin |
|
Controllo completo di tutte le risorse Memorystore for Redis. |
|
Redis Editor | Tutte le autorizzazioni redis ad eccezione di
|
Gestire le istanze di Memorystore for Redis. Non può creare o eliminare istanze. |
|
Redis Viewer | Tutte le autorizzazioni redis, ad eccezione di
|
Accesso di sola lettura a tutte le risorse Memorystore for Redis. |
Autorizzazioni e relativi ruoli
La tabella seguente elenca ogni autorizzazione supportata da Memorystore for Redis e i ruoli di Memorystore for Redis che la includono:
| Autorizzazione | Ruolo Redis | Ruolo di base |
|---|---|---|
|
Redis Admin Redis Editor Redis Viewer |
Reader |
|
Redis Admin Redis Editor Redis Viewer |
Reader |
|
Redis Admin | Writer |
|
Redis Admin Redis Editor |
Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Redis Admin Redis Editor Redis Viewer |
Reader |
|
Redis Admin Redis Editor Redis Viewer |
Reader |
|
Redis Admin Redis Editor Redis Viewer |
Reader |
|
Redis Admin Redis Editor Redis Viewer |
Reader |
|
Redis Admin | Writer |
Ruoli personalizzati
Se i ruoli predefiniti non soddisfano i tuoi requisiti aziendali specifici, puoi definire ruoli personalizzati con le autorizzazioni da te specificate. Per supportare questo approccio, IAM offre ruoli personalizzati. Quando crei ruoli personalizzati per Memorystore for Redis, assicurati di includere sia resourcemanager.projects.get sia resourcemanager.projects.list.
In caso contrario, la console Google Cloud non funzionerà correttamente per Memorystore for Redis. Per saperne di più, consulta
Dipendenze delle autorizzazioni.
Per scoprire come creare un ruolo personalizzato, consulta Creazione di un ruolo personalizzato.
Autorizzazioni richieste per le attività comuni nella console Google Cloud
Per consentire a un utente di utilizzare Memorystore for Redis con la console Google Cloud , il ruolo dell'utente deve includere le autorizzazioni resourcemanager.projects.get e resourcemanager.projects.list.
La tabella seguente fornisce le altre autorizzazioni necessarie per alcune attività comuni nella console Google Cloud :
| Attività | Autorizzazioni aggiuntive richieste |
|---|---|
| Visualizza la pagina dell'elenco delle istanze |
|
| Crea e modifica un'istanza |
|
| Elimina un'istanza |
|
| Connettiti a un'istanza da Cloud Shell |
|
| Visualizzazione delle informazioni sull'istanza |
|
| Importa ed esporta i file di backup RDB |
|
| Esegui l'upgrade della versione Redis di un'istanza |
|
Autorizzazioni richieste per i comandi gcloud
Per consentire a un utente di utilizzare Memorystore for Redis con i comandi gcloud,
il ruolo dell'utente deve includere l'autorizzazione resourcemanager.projects.get e l'autorizzazione
resourcemanager.projects.list.
La tabella seguente elenca le autorizzazioni di cui deve disporre l'utente che richiama un comando gcloud per ogni sottocomando gcloud redis:
| Comando | Autorizzazioni obbligatorie |
|---|---|
gcloud redis instances auth |
|
gcloud redis instances create |
|
gcloud redis instances delete |
|
gcloud redis instances update |
|
gcloud redis instances list |
|
gcloud redis instances describe |
|
gcloud redis instances import |
|
gcloud redis instances export |
|
gcloud redis instances upgrade |
|
gcloud redis operations list |
|
gcloud redis operations describe |
|
gcloud redis regions list |
|
gcloud redis regions describe |
|
gcloud redis zones list |
|
Autorizzazioni richieste per i metodi API
La tabella seguente elenca le autorizzazioni di cui il chiamante deve disporre per chiamare ciascun metodo nell'API Memorystore for Redis o per eseguire attività utilizzando strumenti Google Cloud che utilizzano l'API (come la console Google Cloud o lo strumento a riga di comando gcloud):
| Metodo | Autorizzazioni obbligatorie |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Il account di servizio Memorystore for Redis
Ogni istanza di Memorystore for Redis ha un account di servizio che utilizza per comunicare con altre risorse Google Cloud .
A volte (ad esempio durante l'esportazione o l'utilizzo di CMEK) devi concedere ruoli o autorizzazioni specifici al account di servizio.
Formato del account di servizio Memorystore for Redis
Il account di servizio della tua istanza utilizza uno dei due formati diversi, a seconda di quando è stato creato.
Il primo formato è:
PROJECT_NUMBER-compute@Il secondo formato è:
service-PROJECT_NUMBER@cloud-redis.
Problemi noti
A volte un account di servizio che utilizza il formato [PROJECT_NUMBER]-compute@ può entrare in conflitto con la policy dell'organizzazione. Per saperne di più e per i passaggi per risolvere questi problemi, consulta Problemi con la policy dell'organizzazione per la limitazione del dominio.
Visualizza il account di servizio dell'istanza
Per visualizzare il account di servizio della tua istanza, esegui il seguente comando e prendi nota del account di servizio elencato in persistenceIamIdentity:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Autorizzazioni Redis AUTH
La tabella seguente mostra le autorizzazioni minime necessarie a un utente per completare alcune attività di base di AUTH di Memorystore for Redis.
| Autorizzazioni richieste | Crea un'istanza Memorystore con l'autenticazione Redis abilitata | Abilita/disabilita AUTH su un'istanza Redis esistente | Visualizza la stringa AUTH | Visualizza se AUTH è abilitato o disabilitato per un'istanza Redis |
|---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | X | ✓ |
redis.instances.updateAuth
|
✓ | ✓ | X | X |
redis.instances.getAuthString
|
X | X | ✓ | X |
Autorizzazioni per la crittografia dei dati in transito
La tabella seguente mostra le autorizzazioni necessarie per attivare e gestire la crittografia in transito per Memorystore for Redis.
| Autorizzazioni richieste | Crea un'istanza Memorystore con crittografia in transito | Scarica l'autorità di certificazione |
|---|---|---|
redis.instances.create
|
✓ | X |
redis.instances.get
|
X | ✓ |
Autorizzazioni per le policy di manutenzione
La tabella seguente mostra le autorizzazioni necessarie per gestire la policy di manutenzione per Memorystore for Redis.
| Autorizzazioni richieste | Crea un'istanza Memorystore con una policy di manutenzione abilitata | Crea o modifica le policy di manutenzione su un'istanza Memorystore esistente | Visualizza le impostazioni della policy di manutenzione | Ripianifica manutenzione |
|---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | ✓ | X |
redis.instances.rescheduleMaintenance
|
X | X | X | ✓ |
Autorizzazioni richieste per l'importazione e l'esportazione
L'utilizzo di ruoli personalizzati per l'importazione e l'esportazione richiede due ruoli personalizzati separati. Un ruolo personalizzato per l'utente e un ruolo personalizzato aggiuntivo per il account di servizio dell'istanza Redis. Il ruolo personalizzato per il account di servizio utilizza le autorizzazioni a livello di bucket Cloud Storage.
Per trovare il account di servizio per la tua istanza, consulta Visualizza il service account dell'istanza.
Autorizzazioni per il account di servizio
Tieni presente che devi concedere le autorizzazioni di archiviazione al account di servizio solo a livello di bucket, non per l'intero progetto. Per istruzioni, consulta Aggiunta di un'entità a una policy a livello di bucket.
Dopo aver concesso al account di servizio le autorizzazioni a livello di bucket, puoi ignorare il messaggio "Memorystore non è in grado di verificare se account di servizio xxxx@xxxx. dispone delle autorizzazioni necessarie per l'importazione/esportazione. Per assistenza nella verifica o nell'aggiornamento delle autorizzazioni, contatta l'amministratore del progetto. Per le autorizzazioni richieste, consulta la documentazione sulle autorizzazioni di importazione/esportazione." Se applichi le autorizzazioni elencate di seguito ai ruoli personalizzati per l'account utente e il account di servizio, l'importazione/esportazione andrà a buon fine.
| Autorizzazioni per il ruolo personalizzato per il account di servizio | Importa con gcloud | Esporta con gcloud | Importa con la console Google Cloud | Esporta con la console Google Cloud |
|---|---|---|---|---|
storage.buckets.get |
✓ | ✓ | ✓ | ✓ |
storage.objects.get |
✓ | X | ✓ | X |
storage.objects.create |
X | ✓ | X | ✓ |
storage.objects.delete |
X | Facoltativo. (concede l'autorizzazione per sovrascrivere il file RDB esistente). |
X | Facoltativo. (concede l'autorizzazione per sovrascrivere il file RDB esistente). |
Autorizzazioni per l'account utente
| Autorizzazioni per il ruolo personalizzato per l'account utente | Importa con gcloud | Esporta con gcloud | Importa con la console Google Cloud | Esporta con la console Google Cloud |
|---|---|---|---|---|
resourcemanager.projects.get |
X | X | ✓ | ✓ |
redis.instances.get |
✓ | ✓ | ✓ | ✓ |
redis.instances.list |
X | X | X | X |
redis.instances.import |
✓ | X | ✓ | X |
redis.instances.export |
X | ✓ | X | ✓ |
redis.operations.get |
X | ✓ | ✓ | ✓ |
redis.operations.list |
X | X | ✓ | ✓ |
redis.operations.cancel |
✓ | ✓ | ✓ | ✓ |
storage.buckets.list |
X | X | ✓ | ✓ |
storage.buckets.get |
X | X | ✓ | ✓ |
storage.objects.list |
X | X | ✓ | ✓ |
storage.objects.get |
X | X | ✓ | ✓ |
Passaggi successivi
- Scopri come concedere e revocare l'accesso.
- Scopri di più su IAM.
- Scopri di più sui ruoli personalizzati.