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 |
---|---|---|---|
|
Proprietario |
|
Accesso e controllo completi per tutte le risorse; gestione dell'accesso utente Google Cloud |
|
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) |
|
Visualizzatore |
|
Accesso in sola lettura a tutte le risorse, incluse quelle Redis Google Cloud |
|
Amministratore Redis |
|
Controllo completo di tutte le risorse Memorystore for Redis. |
|
Editor Redis | Tutte le autorizzazioni di redis , tranne
|
Gestisci le istanze Memorystore for Redis. Non può creare o eliminare istanze. |
|
Visualizzatore Redis | Tutte le autorizzazioni di redis , tranne
|
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 |
---|---|---|
|
Amministratore Redis Editor Redis Visualizzatore Redis |
Reader |
|
Amministratore Redis Editor Redis Visualizzatore Redis |
Reader |
|
Amministratore Redis | Writer |
|
Amministratore Redis Editor Redis |
Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis | Writer |
|
Amministratore Redis Editor Redis Visualizzatore Redis |
Reader |
|
Amministratore Redis Editor Redis Visualizzatore Redis |
Reader |
|
Amministratore Redis Editor Redis Visualizzatore Redis |
Reader |
|
Amministratore Redis Editor Redis Visualizzatore Redis |
Reader |
|
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 |
|
Creare e modificare un'istanza |
|
Elimina un'istanza |
|
Connettiti a un'istanza da Cloud Shell |
|
Visualizzazione delle informazioni sull'istanza |
|
Importare ed esportare i file di backup RDB |
|
Esegui l'upgrade della versione di Redis di un'istanza |
|
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 |
|
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 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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
- Scopri come concedere e revocare l'accesso.
- Scopri di più su IAM.
- Scopri di più sui ruoli personalizzati.