Controllo dell'accesso con IAM

Questa pagina descrive come controllare l'accesso ai progetti Memorystore for Redis le autorizzazioni usando Identity and Access Management (IAM).

Panoramica

Google Cloud offre IAM, che ti consente di concedere un accesso più granulare a risorse Google Cloud specifiche 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 documentazione IAM.

Memorystore for Redis offre un insieme di ruoli predefiniti progettata 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 i tuoi ruoli personalizzati. Inoltre, i ruoli di base precedenti (Editor, Visualizzatore e Proprietario) sono ancora disponibili per te, anche se lo fanno Non forniscono lo stesso controllo granulare dei ruoli di Memorystore for Redis. In particolare, i ruoli di base forniscono l'accesso alle risorse di Google Cloud, non solo a Memorystore per Redis. Per ulteriori informazioni sui ruoli di base, consulta Ruoli di base.

Autorizzazioni e ruoli

Questa sezione riassume le autorizzazioni e i ruoli di Memorystore for Redis Google Cloud.

Ruoli predefiniti

Memorystore for Redis offre alcuni ruoli predefiniti che puoi utilizzare e fornire autorizzazioni più granulari alle entità. Il ruolo concesso a un'entità controlla le azioni che può eseguire. Le entità possono essere persone, gruppi o account di servizio.

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

Tra i ruoli generali figurano quelli più definiti. Ad esempio, Il ruolo Editor Redis include tutte le autorizzazioni del ruolo Visualizzatore Redis, nonché l'aggiunta di autorizzazioni per il ruolo Editor Redis. 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 le autorizzazioni in Google Cloud. I ruoli specifici di Memorystore per Redis forniscono solo le autorizzazioni di Memorystore per 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 e Memorystore for Redis autorizzazioni:

Ruolo Nome Autorizzazioni Redis Descrizione

roles/owner

Proprietario

redis.*

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

roles/editor

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

roles/viewer

Visualizzatore

redis.*.get redis.*.list

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

roles/redis.admin

Amministratore Redis

redis.*

Controllo completo per tutte le risorse Memorystore for Redis.

roles/redis.editor

Redis Editor Tutte le autorizzazioni di redis, ad eccezione di

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 le istanze.

roles/redis.viewer

Visualizzatore Redis Tutte le autorizzazioni di redis, ad eccezione di

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 per 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

Redis Admin
Redis Editor
Redis Viewer
Reader

redis.instances.get

Amministratore Redis
Editor Redis
Visualizzatore Redis
Reader

redis.instances.create

Amministratore Redis Writer

redis.instances.update

Redis Admin
Editor Redis
Writer

redis.instances.updateAuth

Amministratore Redis Writer

redis.instances.getAuthString

Amministratore Redis Writer

redis.instances.delete

Amministratore Redis Writer

redis.instances.upgrade

Redis Admin Writer

redis.instances.import

Redis Admin Writer

redis.instances.export

Redis Admin 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 specifici, puoi definire i tuoi ruoli personalizzati con le autorizzazioni da te specificate. Per l'assistenza 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, vedi Dipendenze per le autorizzazioni. Per informazioni su 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 tramite la console Google Cloud, il suo ruolo deve includere le autorizzazioni resourcemanager.projects.get e resourcemanager.projects.list.

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

Attività Autorizzazioni aggiuntive richieste
Visualizza la pagina di elenco dell'istanza

redis.instances.get
redis.instances.list

Creazione e modifica di un'istanza

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

Eliminazione di un'istanza

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

Connessione a un'istanza da Cloud Shell

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

Visualizzazione di informazioni sulle istanze

redis.instances.get
monitoring.timeSeries.list

Importazione ed esportazione dei file di backup RDB

redis.instances.import
redis.instances.export

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 resourcemanager.projects.get e Autorizzazione resourcemanager.projects.list.

La tabella seguente elenca le autorizzazioni che l'utente che richiama un gcloud che 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

Nella tabella seguente sono elencate le autorizzazioni che il chiamante deve avere per chiamare ogni nell'API Memorystore for Redis o per eseguire attività con gli strumenti Google Cloud che utilizzano l'API (ad esempio la console Google Cloud o lo gcloudstrumento a riga di comando):

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

L'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 autorizzazioni o ruoli specifici all'account di servizio.

Formato dell'account di servizio Memorystore for Redis

L'account di servizio della tua istanza utilizza uno di due formati diversi, a seconda di quando è stato creato.

  • Il primo formato è:

    [PROJECT_NUMBER]-compute@developer.gserviceaccount.com

  • Il secondo formato è:

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

Per visualizzare la fonte attendibile su cui utilizza l'account di servizio della tua istanza, consulta Visualizzare l'account di servizio dell'istanza.

Problemi noti

A volte un account di servizio che utilizza il formato [PROJECT_NUMBER]-compute@developer.gserviceaccount.com può essere in conflitto con i criteri della tua organizzazione. Per ulteriori informazioni e per conoscere la procedura per risolvere questi problemi, consulta Problemi relativi alle norme dell'organizzazione per la condivisione con restrizioni al dominio.

Visualizza l'account di servizio dell'istanza:

Per visualizzare l'account di servizio per l'istanza, esegui questo comando: e prendi nota dell'account di servizio elencato sotto persistenceIamIdentity:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Autorizzazioni di autenticazione Redis

La tabella seguente mostra le autorizzazioni minime necessarie per un utente per completare AUT di base di Memorystore for Redis attività di machine learning.

Autorizzazioni necessarie Creare un'istanza Memorystore con Redis AUTH abilitata Abilita / disabilita AUTH su un'istanza Redis esistente Visualizza la stringa AUTH Visualizza 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 dei dati in transito

La tabella seguente mostra le autorizzazioni necessarie per abilitare e gestire la crittografia dei dati in transito per Memorystore for Redis.

Autorizzazioni richieste Creare un'istanza Memorystore con crittografia in transito Scarica l'autorità di certificazione
redis.instances.create X
redis.instances.get X

Autorizzazioni dei criteri di manutenzione

La tabella seguente mostra le autorizzazioni necessarie per gestire il Regolamento per la manutenzione per Memorystore for Redis.

Autorizzazioni necessarie Creare un'istanza Memorystore con un criterio di manutenzione abilitato Crea o modifica i criteri di manutenzione su un'istanza Memorystore esistente Visualizzazione delle impostazioni dei criteri di manutenzione Riprogrammazione della 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 dei ruoli personalizzati per l'importazione e l'esportazione richiede due ruoli. Un ruolo personalizzato per l'utente e un altro ruolo personalizzato per l'account di servizio dell'istanza Redis. Il ruolo personalizzato per l'account di servizio utilizza le autorizzazioni a livello di bucket Cloud Storage.

Per trovare l'account di servizio per la tua istanza, vedi Visualizzare l'account di servizio dell'istanza

Autorizzazioni per l'account di servizio

Tieni presente che devi concedere le autorizzazioni di archiviazione all'account di servizio solo a livello di bucket, non all'intero progetto. Per istruzioni, consulta Aggiunta di un'entità a livello di bucket.

Dopo aver concesso all'account di servizio le autorizzazioni a livello di bucket, puoi ignorare il messaggio "Memorystore non è in grado di verificare se l'account di servizio xxxx@xxxx.gserviceaccount.com ha le autorizzazioni necessarie per l'importazione/esportazione. Per assistenza per la verifica o l'aggiornamento delle autorizzazioni, contatta l'amministratore del progetto. Per le autorizzazioni richieste, consulta importazione/esportazione documentazione sulle autorizzazioni". Se applichi le autorizzazioni elencate di seguito ai ruoli personalizzati per l'account utente e l'account di servizio, l'importazione/esportazione andrà a buon fine.

Autorizzazioni per il ruolo personalizzato per l'account di servizio Importa con gcloud Esporta 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 Esporta 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