Questa pagina descrive come controllare l'accesso e le autorizzazioni dei 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 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 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 risorse Redis. Se i ruoli predefiniti non forniscono i set di autorizzazioni di cui hai bisogno, puoi anche creare i tuoi 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 per 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 riepiloga le autorizzazioni e i ruoli supportati da Memorystore per Redis.
Ruoli predefiniti
Memorystore for Redis fornisce alcuni ruoli predefiniti che puoi utilizzare per 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 delle autorizzazioni necessarie, puoi modificare i ruoli concessi a un'entità in qualsiasi momento.
I ruoli più ampi includono i ruoli definiti in modo più limitato. Ad esempio, il ruolo Editor Redis include tutte le autorizzazioni del ruolo Visualizzatore Redis, oltre alle autorizzazioni per il ruolo Editor Redis. Analogamente, il ruolo Redis Admin include tutte le autorizzazioni del ruolo Redis Editor, oltre alle autorizzazioni aggiuntive.
I ruoli di base (Proprietario, Editor e Visualizzatore) forniscono 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, insieme alle relative autorizzazioni:
Ruolo | Nome | Autorizzazioni Redis | Descrizione |
---|---|---|---|
|
Proprietario |
|
Accesso e controllo completi per tutte le risorse Google Cloud; gestione dell'accesso degli utenti |
|
Editor | Tutte le redis autorizzazioni tranne *.getIamPolicy e
.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 in sola lettura a tutte le risorse Google Cloud, incluse le risorse Redis |
|
Redis Admin |
|
Controllo completo di tutte le risorse Memorystore for Redis. |
|
Redis Editor | Tutte le autorizzazioni redis tranne
|
Gestisci le istanze Memorystore for Redis. Non può creare o eliminare le istanze. |
|
Redis Viewer | Tutte le autorizzazioni redis tranne
|
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 Admin Redis Editor Redis Viewer |
Reader |
|
Redis Admin Redis Editor Redis Viewer |
Reader |
|
Redis Admin | Writer |
|
Redis Admin Editor Redis |
Writer |
|
Redis Admin | Writer |
|
Redis Admin | Writer |
|
Redis Admin | Writer |
|
Redis Admin | Writer |
|
Redis Admin | Writer |
|
Redis Admin | 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 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 utilizzare Memorystore for Redis con 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 dell'elenco di istanze |
|
Creazione e modifica di un'istanza |
|
Eliminazione di un'istanza |
|
Connessione a un'istanza da Cloud Shell |
|
Visualizzazione di informazioni sulle istanze |
|
Importazione ed esportazione dei file di backup RDB |
|
Upgrade della versione di Redis di un'istanza |
|
Autorizzazioni richieste per i comandi gcloud
Per consentire a un utente di utilizzare Memorystore for Redis utilizzando i comandi gcloud
, il ruolo dell'utente deve includere l'autorizzazione resourcemanager.projects.get
e resourcemanager.projects.list
.
La tabella seguente elenca le autorizzazioni che l'utente che richiama un comando gcloud
deve disporre per ogni comando secondario 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 che l'utente che chiama deve disporre per chiamare ogni metodo nell'API Memorystore per Redis o per eseguire attività utilizzando gli strumenti Google Cloud che utilizzano l'API (ad esempio la console Google Cloud o lo strumento a riga di comando gcloud
):
Metodo | Autorizzazioni obbligatorie |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 all'account di servizio ruoli o autorizzazioni specifici.
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 la tua istanza, esegui il seguente
comando e prendi nota dell'account di servizio elencato in
persistenceIamIdentity
:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Autorizzazioni Redis AUTH
La tabella seguente mostra le autorizzazioni minime di cui un utente ha bisogno per completare alcune attività di AUTH di Memorystore for Redis di base.
Autorizzazioni richieste | Crea un'istanza Memorystore con Redis AUTH abilitato | Attivare / disattivare AUTH su un'istanza Redis esistente | Visualizzare 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 attivare e gestire la crittografia 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 criterio di manutenzione per Memorystore for Redis.
Autorizzazioni richieste | Creare un'istanza Memorystore con una norma di manutenzione abilitata | Creare o modificare i criteri di manutenzione in 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 di ruoli personalizzati per l'importazione e l'esportazione richiede due ruoli personalizzati distinti. 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 della tua istanza, consulta 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, vedi Aggiunta di un principale a un criterio 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 necessarie, consulta la documentazione relativa alle autorizzazioni per importazione/esportazione." 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 | Esportazione 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 | Esportazione 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
- Scopri come concedere e revocare l'accesso.
- Scopri di più su IAM.
- Scopri di più sui ruoli personalizzati.