Questa pagina contiene le procedure per la creazione o la modifica di istanze Cloud SQL al fine di consentire agli utenti o agli account di servizio configurati per l'utilizzo dell'autenticazione dei database IAM di Cloud SQL. Per saperne di più sull'integrazione IAM di Cloud SQL, consulta Autenticazione IAM.
Un'istanza appena creata ha quattro database di sistema:
information_schema
: fornisce l'accesso ai metadati del database e alle informazioni sul server MySQL.mysql
: lo schema del sistema. Contiene tabelle che archiviano le informazioni richieste dal server MySQL in esecuzione.performance_schema
: una funzionalità per monitorare l'esecuzione del server MySQL a basso livello.sys
: contiene un insieme di oggetti che consente ai database e agli sviluppatori di interpretare i dati raccolti dallo schema delle prestazioni.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Assicurati di disporre dei ruoli Amministratore Cloud SQL e Visualizzatore Compute per il tuo account utente.
Scopri di più su ruoli e autorizzazioni.
Configura nuove istanze per l'autenticazione IAM dei database
Cloud SQL utilizza un flag per abilitare e disabilitare le connessioni utente IAM su un'istanza. In questa procedura, abiliti il flag.
Per configurare una nuova istanza che utilizza l'autenticazione IAM del database Cloud SQL:
Console
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Fai clic su Crea istanza.
- Fai clic su Scegli MySQL.
- Inserisci un nome per l'ID istanza. Non includere informazioni sensibili o che consentono l'identificazione personale nel nome dell'istanza, perché sono visibili esternamente. Non è necessario includere l'ID progetto nel nome dell'istanza. L'ID progetto viene incluso automaticamente, ove appropriato (ad esempio, nei file di log).
- Inserisci una password per l'utente root.
- Dal menu a discesa Versione database, seleziona una versione del database.
- Nella sezione Scegli la disponibilità per regione e zona, seleziona la regione e la zona per la tua istanza. Posiziona l'istanza nella stessa regione delle risorse che vi accedono. La regione selezionata non può essere modificata in futuro. In genere, non è necessario specificare una zona.
- Nella sezione Personalizza la tua istanza, fai clic su Mostra opzioni di configurazione, quindi espandi Flag.
- Fai clic su Aggiungi segnalazione.
- Dal menu a discesa Scegli un flag, seleziona il flag
cloudsql_iam_authentication
. Assicurati che sia selezionato On come valore per questo flag, quindi fai clic su Fine. - Configura altre impostazioni dell'istanza in base alle esigenze. Per ulteriori informazioni sulle impostazioni, vedi Impostazioni.
- Fai clic su Crea istanza.
gcloud
Esegui
gcloud sql instances create
con il parametro --database-flags
impostato su
cloudsql_iam_authentication=on
.
Sostituisci quanto segue:
- INSTANCE_NAME: il nome della nuova istanza.
- MYSQL_VERSION: la versione di MySQL (ad esempio MYSQL_5_7 o MYSQL_8_0).
- NUMBER_OF_CORES: il numero di core nella macchina.
- AMOUNT_OF_MEMORY: la quantità di memoria nella macchina. Deve essere specificata un'unità di dimensione (ad esempio 3072 MiB o 9 GiB).
- ZONE: zona Compute Engine preferita (ad esempio us-central1-a o us-central1-b).
- PASSWORD: crea una password per l'utente root.
gcloud sql instances create INSTANCE_NAME \ --database-version=MYSQL_VERSION \ --cpu=NUMBER_OF_CORES \ --memory=AMOUNT_OF_MEMORY \ --zone=ZONE_NAME \ --root-password=PASSWORD \ --database-flags=cloudsql_iam_authentication=on
Terraform
Per creare un'istanza con l'autenticazione IAM abilitata, utilizza una risorsa Terraform.
Applica le modifiche
Per applicare la tua configurazione Terraform a un progetto Google Cloud, completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito a cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo principale).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome del file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file è denominatomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel nuovo oggetto
main.tf
.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata se lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Facoltativamente, per utilizzare la versione più recente del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà soddisfino le tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo questo comando e inserendo
yes
al prompt:terraform apply
Attendi finché in Terraform non viene visualizzato il messaggio "Applicazione completata!".
- Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nella UI per assicurarti che Terraform le abbia create o aggiornate.
Elimina le modifiche
Per eliminare le modifiche:
- Per disabilitare la protezione dall'eliminazione, imposta l'argomento
deletion_protection
nel file di configurazione di Terraform sufalse
.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo questo comando e
inserendo
yes
al prompt:terraform apply
-
Per rimuovere le risorse applicate in precedenza con la tua configurazione Terraform, esegui questo comando e inserisci
yes
al prompt:terraform destroy
REST v1
Non includere informazioni sensibili o che consentono l'identificazione personale (PII) nel nome dell'istanza perché sono visibili esternamente.
Non è necessario includere l'ID progetto nel nome dell'istanza. L'ID progetto viene incluso automaticamente dove necessario (ad esempio, nei file di log).
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- INSTANCE_ID: l'ID istanza desiderato
- REGION: la regione desiderata, ad esempio us-east-1
- PROJECT_ID: il tuo ID progetto
- LOCATION_ID: l'ID località
- DATABASE_VERSION: stringa enum della versione del database.
Ad esempio:
MYSQL_8_0
- PASSWORD: la password dell'utente root
- MACHINE_TYPE: stringa enum del tipo di macchina (livello), ad esempio:
db-custom-[CPUS]-[MEMORY_MBS]
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
Corpo JSON della richiesta:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql_iam_authentication", "value": "on" } ] } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Non includere informazioni sensibili o che consentono l'identificazione personale (PII) nel nome dell'istanza perché sono visibili esternamente.
Non è necessario includere l'ID progetto nel nome dell'istanza. L'ID progetto viene incluso automaticamente dove necessario (ad esempio, nei file di log).
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- INSTANCE_ID: l'ID istanza desiderato
- REGION: la regione desiderata, ad esempio us-east-1
- PROJECT_ID: il tuo ID progetto
- LOCATION_ID: l'ID località
- DATABASE_VERSION: stringa enum della versione del database.
Ad esempio:
MYSQL_8_0
- PASSWORD: la password dell'utente root
- MACHINE_TYPE: stringa enum del tipo di macchina (livello), ad esempio:
db-custom-[CPUS]-[MEMORY_MBS]
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
Corpo JSON della richiesta:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql_iam_authentication", "value": "on" } ] } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Configura istanze esistenti per l'autenticazione IAM dei database Cloud SQL
Per configurare l'autenticazione del database IAM su un'istanza esistente:
Console
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Modifica.
- Nella sezione Personalizza la tua istanza, espandi Flag.
- Fai clic su Aggiungi segnalazione.
- Dal menu a discesa Scegli un flag, seleziona il flag
cloudsql_iam_authentication
. Assicurati che sia selezionato On come valore per questo flag, quindi fai clic su Fine. - Configura altre impostazioni dell'istanza in base alle esigenze. Per ulteriori informazioni sulle impostazioni, vedi Impostazioni.
- Fai clic su Salva.
gcloud
Per informazioni sull'installazione e su come iniziare a utilizzare gcloud CLI, consulta Installare gcloud CLI. Per informazioni sull'avvio di Cloud Shell, consulta Utilizzare Cloud Shell.
Per questa procedura, usa
gcloud
sql instances patch
.
Sostituisci quanto segue:
- INSTANCE_NAME: il nome della nuova istanza.
gcloud sql instances patch INSTANCE_NAME \ --database-flags=cloudsql_iam_authentication=on
In questo modo vengono reimpostate tutte le altre impostazioni dei flag di database esistenti. Per ulteriori indicazioni sull'impostazione dei flag di database, consulta Impostare un flag di database.
REST v1
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- LOCATION_ID: l'ID località
- INSTANCE_ID: l'ID istanza desiderato
- REGION: la regione desiderata
- DATABASE_VERSION: stringa enum della versione del database.
Ad esempio:
MYSQL_8_0
- PASSWORD: la password dell'utente root
- MACHINE_TYPE: stringa enum del tipo di macchina (livello), ad esempio:
db-custom-[CPUS]-[MEMORY_MBS]
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
Corpo JSON della richiesta:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql_iam_authentication", "value": "on" } ] } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il tuo ID progetto
- LOCATION_ID: l'ID località
- INSTANCE_ID: l'ID istanza desiderato
- REGION: la regione desiderata
- DATABASE_VERSION: stringa enum della versione del database.
Ad esempio:
MYSQL_8_0
- PASSWORD: la password dell'utente root
- MACHINE_TYPE: stringa enum del tipo di macchina (livello), ad esempio:
db-custom-[CPUS]-[MEMORY_MBS]
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
Corpo JSON della richiesta:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql_iam_authentication", "value": "on" } ] } }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Passaggi successivi
- Scopri di più sull'autenticazione dei database IAM.
- Scopri come configurare gli accessi alle repliche di lettura per l'autenticazione dei database IAM.
- Scopri come creare account di servizio e utenti che utilizzano l'autenticazione IAM dei database di Cloud SQL.
- Scopri come aggiungere un'associazione di criteri IAM a un account utente o di servizio.
- Scopri come accedere a un database Cloud SQL utilizzando l'autenticazione dei database IAM.
- Scopri come gestire utenti e account di servizio per l'autenticazione IAM dei database.