Controllo dell'accesso con IAM

Questa pagina descrive come controllare l'accesso e le autorizzazioni del progetto 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. Questa pagina descrive i ruoli e le autorizzazioni IAM di Memorystore for Redis. Per una descrizione dettagliata di ruoli e autorizzazioni, consulta la documentazione 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 Memorystore for Redis. In particolare, i ruoli di base forniscono l'accesso alle risorse inGoogle Cloud, anziché solo per Memorystore for Redis. Per ulteriori informazioni sui ruoli di base, consulta la sezione 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 può eseguire. Le entità possono essere persone, gruppi o service account.

Puoi concedere più ruoli alla stessa entità e, se disponi delle autorizzazioni per farlo, puoi modificare i ruoli concessi a un'entità in qualsiasi momento.

I ruoli più ampi includono quelli definiti in modo più specifico. Ad esempio, il ruolo Editor Redis include tutte le autorizzazioni del ruolo Visualizzatore Redis, oltre alle autorizzazioni aggiuntive per il ruolo Editor Redis. Allo stesso modo, il ruolo Amministratore Redis include tutte le autorizzazioni del ruolo Editor Redis, oltre alle sue autorizzazioni aggiuntive.

I ruoli di base (Proprietario, Editor, Visualizzatore) forniscono autorizzazioni in Google Cloud. I ruoli specifici di Memorystore for Redis forniscono solo le autorizzazioni Memorystore for Redis, ad eccezione delle seguenti Google Cloud autorizzazioni, necessarie per l'utilizzo generale Google Cloud :

resourcemanager.projects.get
resourcemanager.projects.list

La tabella seguente elenca i ruoli predefiniti disponibili per Memorystore for Redis, insieme alle relative autorizzazioni Memorystore for Redis:

Ruolo Nome Autorizzazioni Redis Descrizione

roles/owner

Proprietario

redis.*

Accesso e controllo completi per tutte le risorse; gestione dell'accesso utente Google Cloud

roles/editor

Editor Tutte le autorizzazioni redis tranne *.getIamPolicy e .setIamPolicy Accesso in lettura/scrittura a tutte le risorse Google Cloud e Redis (controllo completo, ad eccezione della possibilità di modificare le autorizzazioni)

roles/viewer

Visualizzatore

redis.*.get redis.*.list

Accesso in sola lettura a tutte le risorse, incluse quelle Redis Google Cloud

roles/redis.admin

Amministratore Redis

redis.*

Controllo completo di tutte le risorse Memorystore for Redis.

roles/redis.editor

Editor Redis Tutte le autorizzazioni di redis, tranne

redis.instances.create redis.instances.delete redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

Gestisci le istanze Memorystore for Redis. Non può creare o eliminare istanze.

roles/redis.viewer

Visualizzatore Redis Tutte le autorizzazioni di redis, tranne

redis.instances.create redis.instances.delete redis.instances.update redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

Accesso in 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 Memorystore for Redis che la includono:

Autorizzazione Ruolo Redis Ruolo di base

redis.instances.list

Amministratore Redis
Editor Redis
Visualizzatore Redis
Reader

redis.instances.get

Amministratore Redis
Editor Redis
Visualizzatore Redis
Reader

redis.instances.create

Amministratore Redis Writer

redis.instances.update

Amministratore Redis
Editor Redis
Writer

redis.instances.updateAuth

Amministratore Redis Writer

redis.instances.getAuthString

Amministratore Redis Writer

redis.instances.delete

Amministratore Redis Writer

redis.instances.upgrade

Amministratore Redis Writer

redis.instances.import

Amministratore Redis Writer

redis.instances.export

Amministratore Redis Writer

redis.locations.list

Amministratore Redis
Editor Redis
Visualizzatore Redis
Reader

redis.locations.get

Amministratore Redis
Editor Redis
Visualizzatore Redis
Reader

redis.operations.list

Amministratore Redis
Editor Redis
Visualizzatore Redis
Reader

redis.operations.get

Amministratore Redis
Editor Redis
Visualizzatore Redis
Reader

redis.operations.delete

Amministratore Redis Writer

Ruoli personalizzati

Se i ruoli predefiniti non soddisfano i tuoi requisiti aziendali unici, puoi definire ruoli personalizzati con le autorizzazioni da te specificate. Per supportare questo, IAM offre ruoli personalizzati. Quando crei ruoli personalizzati per Memorystore for Redis, assicurati di includere sia resourcemanager.projects.get che resourcemanager.projects.list. In caso contrario, la console Google Cloud non funzionerà correttamente per Memorystore for Redis. Per ulteriori informazioni, consulta Dipendenze delle autorizzazioni. Per scoprire come creare un ruolo personalizzato, consulta Creare un ruolo personalizzato.

Autorizzazioni richieste per le attività comuni nella console Google Cloud

Per consentire a un utente di lavorare con Memorystore for Redis utilizzando la console Google Cloud , il ruolo dell'utente deve includere le autorizzazioni resourcemanager.projects.get e resourcemanager.projects.list.

La seguente tabella fornisce le altre autorizzazioni richieste per alcune attività comuni nella console Google Cloud :

Attività Autorizzazioni aggiuntive obbligatorie
Visualizzare la pagina dell'elenco delle istanze

redis.instances.get
redis.instances.list

Creare e modificare un'istanza

redis.instances.create
redis.instances.get
redis.instances.list
compute.networks.list

Elimina un'istanza

redis.instances.delete
redis.instances.get
redis.instances.list

Connettiti a un'istanza da Cloud Shell

redis.instances.get
redis.instances.list
redis.instances.update

Visualizzazione delle informazioni sull'istanza

redis.instances.get
monitoring.timeSeries.list

Importare ed esportare i file di backup RDB

redis.instances.import
redis.instances.export

Esegui l'upgrade della versione di Redis di un'istanza

redis.instances.upgrade

Autorizzazioni richieste per i comandi gcloud

Per consentire a un utente di lavorare con Memorystore for Redis utilizzando i comandi gcloud, il ruolo dell'utente deve includere le autorizzazioni resourcemanager.projects.get e resourcemanager.projects.list.

La seguente tabella elenca le autorizzazioni che l'utente che richiama un comando gcloud deve avere per ogni sottocomando gcloud redis:

Comando Autorizzazioni obbligatorie
gcloud redis instances auth

redis.instances.updateAuth
redis.instances.getAuthString

gcloud redis instances create

redis.instances.get
redis.instances.create

gcloud redis instances delete

redis.instances.delete

gcloud redis instances update

redis.instances.get
redis.instances.update

gcloud redis instances list

redis.instances.list

gcloud redis instances describe

redis.instances.get

gcloud redis instances import

redis.instances.import

gcloud redis instances export

redis.instances.export

gcloud redis instances upgrade

redis.instances.upgrade

gcloud redis operations list

redis.operations.list

gcloud redis operations describe

redis.operations.get

gcloud redis regions list

redis.locations.list

gcloud redis regions describe

redis.locations.get

gcloud redis zones list

redis.locations.list

Autorizzazioni richieste per i metodi API

La tabella seguente elenca le autorizzazioni che il chiamante deve avere per chiamare ogni metodo nell'API Memorystore for Redis o per eseguire attività utilizzando Google Cloud strumenti che utilizzano l'API (come la console Google Cloud o lo strumento a riga di comandogcloud):

Metodo Autorizzazioni obbligatorie

locations.get

redis.locations.get

locations.list

redis.locations.list

instances.create

redis.instances.create

instances.delete

redis.instances.delete

instances.get

redis.instances.get

instances.list

redis.instances.list

instances.patch

redis.instances.update

instances.import

redis.instances.import

instances.export

redis.instances.export

instances.upgrade

redis.instances.upgrade

operations.get

redis.operations.get

operations.list

redis.operations.list

Il account di servizio Memorystore for Redis

Ogni istanza 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 dell'account di servizio Memorystore for Redis

Il account di servizio della tua istanza utilizza uno dei due formati diversi, a seconda della data di creazione.

  • Il primo formato è:

    PROJECT_NUMBER-compute@developer.gserviceaccount.com

  • Il secondo formato è:

    service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com

Problemi noti

A volte un account di servizio che utilizza il formato [PROJECT_NUMBER]-compute@developer.gserviceaccount.com può entrare in conflitto con le norme della tua organizzazione. Per ulteriori informazioni e passaggi per risolvere questo problema, consulta Problemi relativi alla policy dell'organizzazione per la condivisione con limitazioni al dominio.

Visualizzare il account di servizio dell'istanza

Per visualizzare il account di servizio per la 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 Memorystore for Redis AUTH.

Autorizzazioni necessarie Crea un'istanza Memorystore con Redis AUTH abilitato Attiva / disattiva AUTH su un'istanza Redis esistente Visualizzare la stringa AUTH Visualizzare se AUTH è abilitato / 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 di crittografia in transito

La tabella seguente mostra le autorizzazioni richieste per l'attivazione e la gestione della crittografia in transito per Memorystore for Redis.

Autorizzazioni necessarie Crea un'istanza Memorystore con la 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 richieste per gestire la policy di manutenzione per Memorystore for Redis.

Autorizzazioni necessarie Crea un'istanza Memorystore con una policy di manutenzione abilitata Creare o modificare le norme di manutenzione in 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 Visualizzare il service account dell'istanza.

Autorizzazioni per il account di servizio

Tieni presente che devi concedere le autorizzazioni di archiviazione all'account di servizio solo a livello di bucket, non per l'intero progetto. Per istruzioni, vedi Aggiungere un principal a una policy a livello di bucket.

Dopo aver concesso all'account di servizio le autorizzazioni a livello di bucket, puoi ignorare il messaggio che indica che "Memorystore non è in grado di verificare se il service account xxxx@xxxx.gserviceaccount.com ha le autorizzazioni necessarie per l'importazione/esportazione. Se hai bisogno di aiuto per verificare o aggiornare le autorizzazioni, contatta l'amministratore del progetto. Per le autorizzazioni necessarie, consulta la documentazione sulle autorizzazioni per 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 Esportare con gcloud Importa con la console Google Cloud Esportazione 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 a sovrascrivere il file RDB esistente).
X Facoltativo.
(concede l'autorizzazione a sovrascrivere il file RDB esistente).

Autorizzazioni per l'account utente

Autorizzazioni per il ruolo personalizzato per l'account utente Importa con gcloud Esportare con gcloud Importa con la console Google Cloud Esportazione 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