Ruoli e autorizzazioni

Questa pagina fornisce informazioni sui ruoli IAM (Identity and Access Management) e autorizzazioni e come vengono usate con le istanze Cloud SQL.

Introduzione

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

I membri indicano "chi" di IAM. I membri possono essere singoli utenti gruppi, domini e persino il pubblico nel suo complesso. Ai membri vengono assegnati dei ruoli che consentono ai membri di eseguire azioni in Cloud SQL e Google Cloud più in generale. Ogni ruolo è una raccolta di uno maggiori autorizzazioni. Le autorizzazioni sono le unità di base di IAM: ognuna ti consente di eseguire una determinata azione. Consulta Ruoli IAM in Cloud SQL e le autorizzazioni IAM in Cloud SQL per gli elenchi completi di tutti i ruoli e le autorizzazioni disponibili in Cloud SQL.

Quando utilizzi un account per connetterti a un account Cloud SQL istanza, l'account deve avere la classe Cloud SQL > il ruolo Cliente (roles/cloudsql.client), che include le autorizzazioni richiesta per la connessione.

Puoi aggiungere ruoli a un account nella Console nella IAM e Amministratore > IAM e vedere quali autorizzazioni appartengono a quali ruoli nella IAM e Amministratore > 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, la connessione da un'applicazione in esecuzione in container Docker.

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

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

Come per tutti gli account che si connettono a un'istanza Cloud SQL, deve disporre del ruolo Cloud SQL > Cliente.

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. Il servizio autorizza l'accesso a tutto il codice Cloud SQL in un progetto specifico. Quando creare un'applicazione o un servizio Cloud Functions, crea questo account per te. Puoi trovare l'account nella IAM e Amministratore > 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, deve disporre del ruolo Cloud SQL > Cliente.

Ruoli e autorizzazioni di Cloud SQL con Cloud Storage

Le funzionalità di importazione ed esportazione in Cloud SQL funzionano in sinergia. Esportazioni in Cloud Storage e importa i dati letti da lì. Per questo motivo, l'account di servizio che utilizzi per queste operazioni richiede sia la lettura che la scrittura le autorizzazioni per Cloud Storage:

  • Per importare ed esportare dati da Cloud Storage, Cloud SQL l'account di servizio dell'istanza deve avere storage.objectAdmin Ruolo IAM impostato nel progetto. Tu puoi trovare il nome dell'account di servizio dell'istanza nella console Google Cloud sul tuo nella pagina Panoramica dell'istanza.
  • Puoi utilizzare il comando gsutil iam per concedere Ruolo IAM all'account di servizio per il bucket.
  • Per assistenza sull'impostazione di ruoli e autorizzazioni IAM, consulta Utilizzando Autorizzazioni IAM.
  • Per ulteriori informazioni, consulta IAM per Cloud Storage.

Ruoli e autorizzazioni di Cloud SQL per l'integrazione di Dataplex

Per fornire l'accesso ai metadati Cloud SQL su Dataplex, può concedere a un utente il ruolo roles/cloudsql.schemaViewer o aggiungere Autorizzazione cloudsql.schemas.view per un ruolo personalizzato.

Per ulteriori informazioni, vedi Gestisci le risorse Cloud SQL con Dataplex Catalog.

Autorizzazione di accesso 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 una connessione privata, il servizio utilizza un percorso interno anziché l'IP privato nel VPC (Virtual Private Cloud). Il traffico non può essere controllato o limitati a configurazioni a livello di VPC, regole firewall, criteri di route del peering.

Cloud SQL offre invece un flag di configurazione sull'istanza per controllare se attivare o disattivare questo percorso interno per gli altri servizi Google Cloud che accedono del database.

Controlla e revoca l'autorizzazione

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

In genere, un servizio può ottenere questo risultato in due modi:

  1. Inoltro delle credenziali dell'utente. Un servizio può inoltrare i dati IAM dell'utente l'identità a Cloud SQL per valutare l'autorizzazione ad accedere a un'istanza. In questo scenario, l'utente deve disporre di autorizzazioni IAM sufficienti Cloud SQL può stabilire una connessione.
  2. Tramite un account di servizio. Un servizio, come BigQuery, può utilizzare un account di servizio preconfigurato per connettersi a un'istanza Cloud SQL. In questo in questo caso, l'account di servizio deve avere autorizzazioni IAM sufficienti.

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

Per controllare l'autorizzazione che consente di utilizzare questo percorso interno, puoi concedere e di revocare le autorizzazioni IAM da e verso l'identità IAM dell'utente che Il servizio Google Cloud, ad esempio BigQuery, lo utilizza per connettersi di Cloud SQL. Per saperne di più sulla concessione e sulla revoca delle autorizzazioni in BigQuery, vedi Configurare l'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 una situazione all'altra. La documentazione di Cloud SQL fornisce informazioni informazioni su questi requisiti per ciascun caso riportato di seguito:

Usa IAM con i progetti

Le sezioni seguenti mostrano come completare le attività IAM di base su in modo programmatico a gestire i progetti.

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

Aggiungi un membro a un criterio a livello di progetto

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

Console

  1. Vai alla sezione IAM e Amministrazione la console Google Cloud
  2. Nel menu a discesa del progetto sulla barra superiore, seleziona il progetto in 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 desideri stanno concedendo l'accesso.
  5. Nel menu a discesa Seleziona un ruolo, assegna il ruolo appropriato al . I ruoli che influiscono sulle risorse Cloud SQL sono disponibili nella sottomenu Progetto e Cloud SQL.
  6. Fai clic su Salva.

gsutil

I criteri IAM a livello di progetto vengono gestiti tramite gcloud che fa parte di Google Cloud SDK. Per aggiungere un modello a livello di progetto: utilizza gcloud beta projects add-iam-policy-binding.

Visualizza il criterio IAM per un progetto

Console

  1. Vai alla sezione IAM e Amministrazione la console Google Cloud
  2. Nel menu a discesa del progetto nella barra superiore, seleziona il progetto che vuoi visualizzare.
  3. Esistono due modi per visualizzare le autorizzazioni per il progetto:
    • Visualizza per Membri: visualizza la colonna Ruolo associata al singolo utente per vedere i ruoli di ogni membro.
    • Visualizza per Ruoli: utilizza il menu a discesa associato al singolo ruoli per vedere quali membri hanno quel ruolo.

gsutil

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

Rimuovi un membro da un criterio a livello di progetto

Console

  1. Vai alla sezione IAM e Amministrazione la console Google Cloud
  2. Nel menu a discesa del progetto nella barra superiore, seleziona il progetto da per cui vuoi rimuovere un membro.
  3. Assicurati di visualizzare le autorizzazioni in base ai Membri e seleziona il 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 vengono 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 dei dati sia efficace. Prima di rendere una risorsa accessibile altri utenti, assicurati di sapere quali ruoli vuoi che ricoprono ciascuna. Nel tempo, le modifiche alla gestione dei progetti, ai modelli di utilizzo e all'organizzazione la proprietà può richiedere la modifica delle impostazioni IAM su progetti, soprattutto se gestisci Cloud SQL in un'organizzazione di grandi dimensioni o per un ampio gruppo di utenti. Quando valuti e pianifichi le impostazioni di controllo dell'accesso, tieni presenti le seguenti best practice:

  • Applica il principio del privilegio minimo quando concedi l'accesso. Il principio del privilegio minimo è una linea guida per la sicurezza per concedere l'accesso alle tue risorse. Quando concedi l'accesso in base principio del privilegio minimo, concedi a un utente solo l'accesso di cui ha bisogno a svolgere l'attività 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. Dovresti usare i ruoli con setIamPolicy solo quando si desidera delegare il controllo amministrativo su di oggetti e bucket.

  • Assicurati di delegare il controllo amministrativo delle tue risorse. Devi assicurarti che le risorse possano ancora essere gestite gli altri membri del team devono lasciare gruppo. Due modi comuni per raggiungere questo obiettivo sono i seguenti:

    • Assegna il ruolo Amministratore Cloud SQL per il tuo progetto a un gruppo piuttosto che una singola persona.
    • Assegna il ruolo Amministratore Cloud SQL per il tuo progetto ad almeno due singoli utenti.

Passaggi successivi