Ruoli e autorizzazioni

Questa pagina fornisce informazioni su ruoli e autorizzazioni di Identity and Access Management (IAM) e modalità di utilizzo con le istanze Cloud SQL.

Introduzione

Questa pagina è incentrata sugli aspetti di IAM pertinenti specificamente a Cloud SQL. Per una discussione dettagliata di IAM e delle sue funzionalità in generale, vedi Identity and Access Management. In particolare, consulta la sezione Gestione dei criteri IAM. IAM consente di controllare chi ha accesso alle risorse nel tuo progetto Google Cloud. L'insieme di regole di accesso che applichi a una risorsa è chiamato criterio IAM. Un criterio IAM applicato al progetto definisce le azioni che gli utenti possono eseguire su tutte le risorse all'interno del progetto.

I membri sono i "chi" di IAM, I membri possono essere singoli utenti, gruppi, domini o persino il pubblico nel suo complesso. Ai membri vengono assegnati ruoli, che concedono ai membri la possibilità di eseguire azioni in Cloud SQL e in Google Cloud in generale. Ogni ruolo è una raccolta di una o più autorizzazioni. Le autorizzazioni sono le unità di base di IAM: ogni autorizzazione ti consente di eseguire una determinata azione. Consulta i ruoli IAM in Cloud SQL e le autorizzazioni IAM in Cloud SQL per un elenco completo di tutti i ruoli e le autorizzazioni disponibili in Cloud SQL.

Quando utilizzi un account per connetterti a un'istanza Cloud SQL, l'account deve disporre del ruolo Cloud SQL > Client (roles/cloudsql.client), che include le autorizzazioni richieste per la connessione.

Puoi aggiungere ruoli a un account nella console nella pagina IAM e amministrazione > IAM e vedere quali autorizzazioni appartengono a quali ruoli nella pagina IAM e amministrazione > Ruoli.

Cloud SQL utilizza gli account di servizio per l'autenticazione tra Cloud SQL e altri prodotti Google Cloud. Gli account di servizio forniscono credentials in formato JSON, che puoi scaricare dalla console e utilizzare per l'autenticazione in vari scenari.

Ad esempio: connessione da un'applicazione in esecuzione in un container Docker.

Ruoli e autorizzazioni Cloud SQL con il proxy di autenticazione Cloud SQL

Se ti connetti a un'istanza Cloud SQL da un'istanza Compute Engine utilizzando il proxy di autenticazione Cloud SQL, puoi utilizzare l'account di servizio Compute Engine predefinito associato all'istanza di Compute Engine.

Come per tutti gli account che si connettono a un'istanza Cloud SQL, l'account di servizio deve avere il ruolo Cloud SQL > Client.

Ruoli e autorizzazioni di Cloud SQL con opzioni serverless

Le opzioni serverless di Google Cloud includono App Engine, Cloud Functions e Cloud Run.

Utilizza un account di servizio per autorizzare l'accesso da queste opzioni. L'account di servizio autorizza l'accesso a tutte le istanze Cloud SQL in un progetto specifico. Quando crei un'applicazione o una funzione Cloud Functions, questo servizio crea l'account per te. Puoi trovare l'account nella pagina IAM e amministrazione > IAM , con il suffisso appropriato:

Opzione serverless Suffisso account di servizio
App Engine @gae-api-prod.google.com.iam.gserviceaccount.com
Cloud Functions @appspot.gserviceaccount.com
Cloud Run compute@developer.gserviceaccount.com
Come per tutti gli account che si connettono a un'istanza Cloud SQL, l'account di servizio deve avere il ruolo Cloud SQL > Client.

Ruoli e autorizzazioni di Cloud SQL con Cloud Storage

Le funzionalità di importazione ed esportazione di Cloud SQL funzionano in sinergia. Le esportazioni scrivono in Cloud Storage e le importano da lì in lettura. Per questo motivo, l'account di servizio che utilizzi per queste operazioni richiede le autorizzazioni di lettura e scrittura per Cloud Storage:

  • Per importare ed esportare dati da Cloud Storage, l'account di servizio dell'istanza Cloud SQL deve avere il ruolo IAM storage.objectAdmin impostato nel progetto. Puoi trovare il nome dell'account di servizio dell'istanza nella console Google Cloud nella pagina Panoramica dell'istanza.
  • Puoi utilizzare il comando gsutil iam per concedere questo ruolo IAM all'account di servizio per il bucket.
  • Per assistenza sulla configurazione dei ruoli e delle autorizzazioni IAM, consulta Utilizzo delle autorizzazioni IAM.
  • Per ulteriori informazioni, consulta IAM per Cloud Storage.

Autorizzazione per accedere alle istanze Cloud SQL private

Quando un altro servizio Google Cloud, come BigQuery, deve comunicare con la tua istanza Cloud SQL per accedere ai dati ed eseguire query su questi dati tramite una connessione privata, il servizio utilizza un percorso interno anziché gli indirizzi IP privati all'interno del Virtual Private Cloud (VPC). Il traffico non può essere controllato o limitato con configurazioni a livello di VPC, regole firewall, criteri di route o l'interruzione del peering.

Cloud SQL offre invece un flag di configurazione sulla tua istanza per stabilire se attivare o disattivare questo percorso interno per altri servizi Google Cloud che accedono al tuo database.

Controllare e revocare l'autorizzazione

Quando un altro servizio Google Cloud, come BigQuery, tenta di accedere alla tua istanza Cloud SQL privata, deve fornire un'identità legittima con l'autorizzazione IAM cloudsql.instances.connect.

In genere, un servizio può raggiungere questo obiettivo in due modi:

  1. Inoltro delle credenziali dell'utente. Un servizio può inoltrare l'identità IAM dell'utente a Cloud SQL per valutare l'autorizzazione di accesso a un'istanza. In questo scenario, l'utente deve disporre di autorizzazioni IAM sufficienti affinché Cloud SQL possa stabilire una connessione.
  2. Utilizzo di un account di servizio. Un servizio, ad esempio BigQuery, può utilizzare un account di servizio preconfigurato per connettersi a un'istanza Cloud SQL. In questo caso, l'account di servizio deve avere autorizzazioni IAM sufficienti.

    Ad esempio, per la connessione federata tra BigQuery e Cloud SQL, viene creato un account di servizio denominato service-{PROJECT_NUMBER}@gcp-sa-bigqueryconnection.iam.gserviceaccount.com quando viene attivata l'API di connessione BigQuery. Questo account di servizio ha due autorizzazioni Cloud SQL: cloudsql.instances.connect e cloudsql.instances.get. BigQuery utilizza queste autorizzazioni per accedere a un'istanza Cloud SQL privata tramite un percorso interno.

Per controllare chi può utilizzare questo percorso interno, puoi concedere e revocare le autorizzazioni IAM da e verso l'identità IAM dell'utente che il servizio Google Cloud, ad esempio BigQuery, utilizza per connettersi alla tua istanza Cloud SQL. Per ulteriori informazioni sulla concessione e la revoca delle autorizzazioni in BigQuery, vedi Configurazione dell'accesso a Cloud SQL.

Ruoli e autorizzazioni di Cloud SQL con altri scenari

Cloud SQL interagisce con altri prodotti e strumenti Google Cloud. Queste interazioni richiedono anche ruoli e autorizzazioni specifici, che possono variare da uno scenario all'altro. La documentazione di Cloud SQL fornisce informazioni dettagliate su questi requisiti per ogni caso riportato di seguito:

Utilizza IAM con i progetti

Le seguenti sezioni mostrano come completare le attività IAM di base sui progetti.

Per completare le attività seguenti, devi disporre delle autorizzazioni IAM resourcemanager.projects.getIamPolicy e resourcemanager.projects.setIamPolicy.

Aggiungere un membro a un criterio a livello di progetto

Per un elenco dei ruoli associati a Cloud SQL, consulta Ruoli IAM.

Console

  1. Vai alla pagina IAM e amministrazione nella console Google Cloud
  2. Nel menu a discesa del progetto nella barra superiore, seleziona il progetto a cui vuoi aggiungere un membro.
  3. Fai clic su Aggiungi. Viene visualizzata la finestra di dialogo Aggiungi membri, ruoli al progetto.
  4. Nel campo Nuovi membri, specifica il nome dell'entità a cui stai concedendo l'accesso.
  5. Nel menu a discesa Seleziona un ruolo, concedi il ruolo appropriato al membro. I ruoli che influiscono sulle risorse Cloud SQL sono disponibili nei sottomenu Progetto e Cloud SQL.
  6. Fai clic su Salva.

gsutil

I criteri IAM a livello di progetto sono gestiti tramite il comando gcloud, che fa parte di Google Cloud SDK. Per aggiungere un criterio a livello di progetto, utilizza gcloud beta projects add-iam-policy-binding.

Visualizza il criterio IAM per un progetto

Console

  1. Vai alla pagina IAM e amministrazione nella console Google Cloud
  2. Nel menu a discesa del progetto nella barra superiore, seleziona il progetto di cui vuoi visualizzare il criterio.
  3. Esistono due modi per visualizzare le autorizzazioni per il progetto:
    • Visualizza per Membri: visualizza la colonna Ruolo associata ai singoli membri per vedere i ruoli di ciascun membro.
    • Visualizza per Ruoli: utilizza il menu a discesa associato ai singoli ruoli per visualizzare quali membri hanno il ruolo.

gsutil

I criteri IAM a livello di progetto sono gestiti tramite il comando gcloud, che fa parte di Google Cloud SDK. Per visualizzare il criterio IAM di un progetto, utilizza il comando gcloud beta projects get-iam-policy.

Rimuovere un membro da un criterio a livello di progetto

Console

  1. Vai alla pagina IAM e amministrazione nella console Google Cloud
  2. Nel menu a discesa del progetto nella barra superiore, seleziona il progetto da cui vuoi rimuovere un membro.
  3. Assicurati di visualizzare le autorizzazioni per Membri e seleziona i membri che vuoi rimuovere.
  4. Fai clic su Rimuovi.
  5. Nella finestra dell'overlay visualizzata, fai clic su Conferma.

gsutil

I criteri IAM a livello di progetto sono gestiti tramite il comando gcloud, che fa parte di Google Cloud SDK. Per rimuovere un criterio a livello di progetto, utilizza gcloud beta projects remove-iam-policy-binding.

best practice

IAM, come qualsiasi altra impostazione amministrativa, richiede che la gestione attiva sia efficace. Prima di rendere una risorsa accessibile ad altri utenti, assicurati di sapere quali ruoli vuoi che svolgano queste persone. Nel corso del tempo, i cambiamenti nella gestione dei progetti, nei modelli di utilizzo e nella proprietà organizzativa potrebbero richiedere la modifica delle impostazioni IAM dei progetti, soprattutto se gestisci Cloud SQL in una grande organizzazione o per un gruppo numeroso di utenti. Quando valuti e pianifichi le impostazioni di controllo dell'accesso#39;accesso, tieni presente le seguenti best practice:

  • Utilizza il principio del privilegio minimo quando concedi l'accesso. Il principio del privilegio minimo è una linea guida di sicurezza per concedere l'accesso alle tue risorse. Quando concedi l'accesso in base al principio del privilegio minimo, concedi a un utente solo l'accesso di cui ha bisogno per portare a termine l'attività che gli è stata assegnata.

  • Evita di concedere ruoli con autorizzazione setIamPolicy a persone che non conosci. La concessione dell'autorizzazione setIamPolicy consente a un utente di modificare le autorizzazioni e assumere il controllo dei dati. Devi utilizzare i ruoli con autorizzazione setIamPolicy solo quando vuoi delegare il controllo amministrativo su oggetti e bucket.

  • Assicurati di delegare il controllo amministrativo delle tue risorse. Devi assicurarti che le tue risorse possano essere comunque gestite da altri membri del team nel caso in cui una persona con accesso amministrativo lasci il gruppo. I due modi più comuni per raggiungere questo obiettivo sono i seguenti:

    • Assegna il ruolo Amministratore Cloud SQL per il progetto a un gruppo anziché a un singolo utente.
    • Assegna il ruolo Amministratore Cloud SQL per il progetto ad almeno due utenti.

Passaggi successivi