Questa pagina fornisce informazioni sui ruoli e sulle autorizzazioni di Identity and Access Management (IAM) e su come vengono utilizzati con le istanze Cloud SQL.
Introduzione
Questa pagina si concentra sugli aspetti di IAM pertinenti specificamente a Cloud SQL. Per una discussione dettagliata di IAM e delle sue funzionalità in generale, consulta 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 tuo progetto definisce le azioni che gli utenti possono intraprendere su tutte le risorse all'interno del progetto.
I membri sono il "chi" di IAM. I membri possono essere singoli utenti, gruppi, domini o persino il pubblico nel suo complesso. Ai membri vengono assegnati ruoli, che consentono loro di eseguire azioni in Cloud SQL e Google Cloud in generale. Ogni ruolo è una raccolta di una o più autorizzazioni. Le autorizzazioni sono le unità di base di IAM: ogni autorizzazione consente di eseguire una determinata azione. Consulta Ruoli IAM in Cloud SQL e Autorizzazioni IAM in Cloud SQL per elenchi completi 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 i service account per l'autenticazione tra Cloud SQL e altri prodotti Google Cloud . I service account forniscono credentials
in formato JSON, che scarichi dalla console e utilizzi per l'autenticazione in vari scenari.
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 Compute Engine.
Come per tutti gli account che si connettono a un'istanza Cloud SQL, l'account di servizio deve disporre del ruolo Cloud SQL > Client.
Ruoli e autorizzazioni Cloud SQL con opzioni serverless
LeGoogle Cloud opzioni serverless includono App Engine e Cloud Run.Utilizza un account di servizio per autorizzare l'accesso da queste opzioni. L'account di servizio autorizza l'accesso a tutti i Cloud SQL in un progetto specifico. Quando crei un'applicazione o una funzione Cloud Run, questo servizio crea questo account per te. Puoi trovare l'account nella pagina IAM e amministrazione > IAM , con il suffisso appropriato:
Opzione serverless | Suffisso del service account |
---|---|
App Engine | @gae-api-prod.google.com.iam.gserviceaccount.com |
Cloud Run Functions | @appspot.gserviceaccount.com |
Cloud Run | [email protected] |
Ruoli e autorizzazioni Cloud SQL con Cloud Storage
Le funzionalità di importazione ed esportazione in Cloud SQL funzionano insieme. Le esportazioni vengono scritte in Cloud Storage e le importazioni vengono lette da lì. Per questo motivo, il account di servizio che utilizzi per queste operazioni deve disporre delle autorizzazioni di lettura e scrittura su Cloud Storage:
- Per importare ed esportare dati da Cloud Storage, il service account dell'istanza Cloud SQL deve disporre del ruolo IAM
storage.objectAdmin
impostato nel progetto. Puoi trovare il nome del account di servizio dell'istanza nella console Google Cloud nella pagina Panoramica dell'istanza. - Puoi utilizzare il comando
gcloud storage buckets add-iam-policy-binding
per concedere questo ruolo IAM al account di servizio per il bucket. - Per assistenza con l'impostazione di ruoli e autorizzazioni IAM, consulta Utilizzare le autorizzazioni IAM.
- Per maggiori informazioni, consulta IAM per Cloud Storage.
Ruoli e autorizzazioni Cloud SQL con l'autenticazione dei gruppi IAM
Quando utilizzi l'autenticazione di gruppo IAM, crei gruppi. Puoi quindi utilizzare i gruppi per gestire l'accesso e i privilegi del database alle tue istanze Cloud SQL.
La tabella seguente elenca i ruoli necessari per gestire l'autenticazione del gruppo IAM.
Azione | Ruoli |
---|---|
Creare, visualizzare e gestire i gruppi. |
|
Visualizza il log delle modifiche all'appartenenza ai gruppi IAM. |
|
Concedi, visualizza e imposta le autorizzazioni IAM a livello di progetto. |
|
Concedi, visualizza e imposta le autorizzazioni IAM a livello di cartella. |
|
L'amministratore può concedere ruoli Cloud SQL o assegnare singole autorizzazioni Cloud SQL a ogni gruppo. I membri di ogni gruppo ereditano ruoli e autorizzazioni.
Ruoli e autorizzazioni Cloud SQL per l'integrazione di Dataplex Universal Catalog
Per fornire l'accesso ai metadati Cloud SQL su Dataplex Universal Catalog, puoi concedere a un utente il ruolo roles/cloudsql.schemaViewer
o aggiungere l'autorizzazione cloudsql.schemas.view
a un ruolo personalizzato.
Per saperne di più, consulta Gestire le risorse Cloud SQL con Dataplex Universal Catalog.
Autorizzazione per accedere alle istanze Cloud SQL private
Quando un altro Google Cloud servizio, come BigQuery, deve comunicare con l'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 di Virtual Private Cloud (VPC). Il traffico non può essere controllato o limitato con configurazioni a livello di VPC, regole firewall, criteri di route o interruzione del peering.
Cloud SQL offre invece un flag di configurazione sull'istanza per controllare 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:
- 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.
Utilizzo di un account di servizio. Un servizio, come BigQuery, può utilizzare un account di servizio preconfigurato per connettersi a un'istanza Cloud SQL. In questo caso, il account di servizio deve disporre di 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 BigQuery Connection. Questo account di servizio dispone di due autorizzazioni Cloud SQL:cloudsql.instances.connect
ecloudsql.instances.get
. BigQuery utilizza queste autorizzazioni per accedere a un'istanza Cloud SQL privata tramite un percorso interno.
Per controllare l'autorizzazione per chi può utilizzare questo percorso interno, puoi concedere e revocare le autorizzazioni IAM all'identità IAM dell'utente che il servizioGoogle Cloud , come BigQuery, utilizza per connettersi alla tua istanza Cloud SQL. Per saperne di più sulla concessione e sulla revoca delle autorizzazioni in BigQuery, consulta Configurazione dell'accesso a Cloud SQL.
Ruoli e autorizzazioni Cloud SQL con altri scenari
Cloud SQL interagisce con altri Google Cloud prodotti e strumenti. Queste interazioni richiedono anche ruoli e autorizzazioni specifici che possono variare a seconda degli scenari. La documentazione di Cloud SQL fornisce informazioni dettagliate su questi requisiti per ogni caso riportato di seguito:
- Connessione a Cloud SQL da applicazioni esterne.
- Utilizzo delle chiavi di crittografia gestite dal cliente (CMEK).
- Ruoli IAM per amministrare i Controlli di servizio VPC.
- Per connetterti a un'istanza Cloud SQL da un'applicazione in esecuzione in Google Kubernetes Engine, devi creare un secret per il file JSON della chiave di un account di servizio account.
Utilizzare IAM con i progetti
Le sezioni seguenti mostrano come completare le attività IAM di base sui progetti.
Per completare le seguenti attività, 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
- Vai alla pagina IAM e amministrazione della console Google Cloud .
- Nel menu a discesa del progetto nella barra in alto, seleziona il progetto a cui vuoi aggiungere un membro.
- Fai clic su Aggiungi. Viene visualizzata la finestra di dialogo Aggiungi membri e ruoli al progetto.
- Nel campo Nuovi membri, specifica il nome dell'entità a cui stai concedendo l'accesso.
- Nel menu a discesa Seleziona un ruolo, assegna il ruolo appropriato al membro. I ruoli che influiscono sulle risorse Cloud SQL si trovano nei sottomenu Progetto e Cloud SQL.
- Fai clic su Salva.
gcloud
Per aggiungere una policy IAM a livello di progetto, utilizza
gcloud beta projects add-iam-policy-binding
.
Visualizza la policy IAM per un progetto
Console
- Vai alla pagina IAM e amministrazione della console Google Cloud .
- Nel menu a discesa del progetto nella barra in alto, seleziona il progetto di cui vuoi visualizzare la policy.
- Esistono due modi per visualizzare le autorizzazioni per il progetto:
- Visualizza per Membri: visualizza la colonna Ruolo associata ai singoli membri per vedere quali ruoli ha ciascun membro.
- Visualizza per Ruoli: utilizza il menu a discesa associato ai singoli ruoli per vedere quali membri hanno il ruolo.
gcloud
Per visualizzare la policy IAM di un progetto, utilizza
gcloud beta projects get-iam-policy
.
Rimuovere un membro da un criterio a livello di progetto
Console
- Vai alla pagina IAM e amministrazione della console Google Cloud .
- Nel menu a discesa del progetto nella barra in alto, seleziona il progetto da cui vuoi rimuovere un membro.
- Assicurati di visualizzare le autorizzazioni per Membri e seleziona i membri che vuoi rimuovere.
- Fai clic su Rimuovi.
- Nella finestra di overlay visualizzata, fai clic su Conferma.
gcloud
Per rimuovere una policy IAM a livello di progetto, utilizza
gcloud beta projects remove-iam-policy-binding
.
Best practice
IAM, come qualsiasi altra impostazione amministrativa, richiede una gestione attiva per essere efficace. Prima di rendere una risorsa accessibile ad altri utenti, assicurati di sapere quali ruoli vuoi che svolgano. Nel tempo, le modifiche alla gestione dei progetti, ai pattern di utilizzo e alla proprietà dell'organizzazione potrebbero richiedere la modifica delle impostazioni IAM nei progetti, soprattutto se gestisci Cloud SQL in un'organizzazione di grandi dimensioni 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 necessario per svolgere l'attività assegnata.
Evita di concedere ruoli con autorizzazione
setIamPolicy
a persone che non conosci. La concessione dell'autorizzazionesetIamPolicy
consente a un utente di modificare le autorizzazioni e assumere il controllo dei dati. Devi utilizzare i ruoli con l'autorizzazionesetIamPolicy
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 comunque essere gestite da altri membri del team nel caso in cui un utente con accesso amministrativo abbandoni il gruppo. Due modi comuni per raggiungere questo obiettivo sono i seguenti:
- Assegna il ruolo Amministratore Cloud SQL per il tuo progetto a un gruppo anziché a un singolo utente.
- Assegna il ruolo Amministratore Cloud SQL per il tuo progetto ad almeno due persone.
Passaggi successivi
- Scopri di più sul controllo dell'accesso