Questa pagina contiene le procedure per creare o modificare istanze Cloud SQL per consentire a utenti, account di servizio o gruppi configurati per utilizzare l'autenticazione del database IAM di Cloud SQL. Per saperne di più sulle IAM di Cloud SQL integrazione, 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 durante l'esecuzione.performance_schema
: una funzionalità per il monitoraggio dell'esecuzione del server MySQL a basso livello.sys
: contiene un insieme di oggetti che aiutano i DBA e gli sviluppatori a interpretare i dati raccolti dallo schema sul rendimento.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Assicurati di disporre dei ruoli Amministratore Cloud SQL e Visualizzatore Compute on
il tuo account utente.
Scopri di più su ruoli e autorizzazioni.
Configura nuove istanze per l'autenticazione IAM dei database
Per configurare una nuova istanza Cloud SQL per l'autenticazione IAM dei database,
devi attivare il flag cloudsql_iam_authentication
.
Dopo aver attivato questo flag, puoi aggiungere utenti, account di servizio o gruppi IAM all'istanza Cloud SQL.
Per configurare una nuova istanza Cloud SQL in modo che utilizzi l'autenticazione IAM dei database:
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, in quanto è visibile all'esterno. Non è necessario includere l'ID progetto nel nome dell'istanza. L'ID progetto viene incluso automaticamente dove appropriato (ad esempio nei file di log).
- Inserisci una password per l'utente root.
- Dal menu Versione database, seleziona una la versione del database.
- Nella sezione Scegli la disponibilità per regione e zona, seleziona la regione e la zona per l'istanza. Posiziona l'istanza nella stessa regione delle risorse che vi accedono. La la regione selezionata non potrà essere modificata in futuro. In genere, non è necessario specificare una zona.
- Nella sezione Personalizza la tua istanza, fai clic su Mostra le opzioni di configurazione, quindi espandi Flag.
- Fai clic su Aggiungi indicatore.
- Dal menu Scegli un flag, seleziona il flag
cloudsql_iam_authentication
. Assicurati che On sia selezionato come valore per questo flag e poi fai clic su Fine. - Configura altre impostazioni dell'istanza, se necessario. Per ulteriori informazioni sulle impostazioni, consulta Impostazioni.
- Fai clic su Crea istanza.
gcloud
Corsa
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 MySQL (ad esempio MYSQL_5_7 o MYSQL_8_0).
- NUMBER_OF_CORES: il numero di core della macchina.
- AMOUNT_OF_MEMORY: la quantità di memoria nella macchina. Una taglia dell'unità di misura (ad esempio, 3072 MiB o 9GiB).
- ZONE: la 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 dei database abilitata, utilizza una risorsa Terraform.
Applica le modifiche
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi farlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti in Terraform di configurazione del deployment.
Prepara la directory
Ogni file di configurazione Terraform deve avere una directory dedicata (inoltre chiamato modulo principale).
-
In Cloud Shell, crea una directory e un nuovo
all'interno di quella directory. Il nome file deve contenere
.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 di esempio in ogni sezione o passaggio.
Copia il codice di esempio nel file
main.tf
appena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando 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
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform sta per creare o
aggiornare corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform apply
Attendi finché Terraform non visualizzi il messaggio "Applicazione completata!". per creare un nuovo messaggio email.
- Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nella UI per assicurarti create o aggiornate da Terraform.
Elimina le modifiche
Per eliminare le modifiche:
- Per disattivare la protezione dell'eliminazione, imposta
l'argomento
deletion_protection
sufalse
nel file di configurazione Terraform.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente
inserendo
yes
alla richiesta:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform destroy
REST v1
Non includere informazioni sensibili o che consentono l'identificazione personale (PII) nel tuo nome istanza; è visibile all'esterno.
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, apporta le seguenti sostituzioni:
- INSTANCE_ID: l'ID istanza desiderato
- REGION: l'area geografica desiderata, ad esempio us-east-1
- PROJECT_ID: l'ID progetto
- LOCATION_ID: l'ID località
- DATABASE_VERSION: stringa enum della versione del database.
Ad esempio:
MYSQL_8_0
- PASSWORD: la password per l'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/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 di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/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/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, in quanto è visibile all'esterno.
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, apporta le seguenti sostituzioni:
- INSTANCE_ID: l'ID istanza desiderato
- REGION: l'area geografica desiderata, ad esempio us-east-1
- PROJECT_ID: l'ID progetto
- LOCATION_ID: l'ID località
- DATABASE_VERSION: stringa enum della versione del database.
Ad esempio:
MYSQL_8_0
- PASSWORD: la password per l'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 di queste 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
Per configurare un'istanza Cloud SQL esistente per l'autenticazione IAM dei database, devi attivare il flag cloudsql_iam_authentication
.
Dopo aver abilitato questo flag, puoi aggiungere utenti IAM, servizi
o gruppi di utenti all'istanza Cloud SQL.
Per configurare un'istanza Cloud SQL esistente in modo che utilizzi l'autenticazione IAM dei database:
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 indicatore.
- Dal menu Scegli un flag, seleziona il flag
cloudsql_iam_authentication
. Assicurati che On sia selezionato come valore per questo flag e poi fai clic su Fine. - Configura altre impostazioni dell'istanza, se necessario. Per ulteriori informazioni sulle impostazioni, consulta Impostazioni.
- Fai clic su Salva.
gcloud
Per informazioni sull'installazione e su come iniziare a utilizzare gcloud CLI, consulta Installare con gcloud CLI. Per informazioni su come avviare Cloud Shell, consulta Utilizzare Cloud Shell.
Per questa procedura, utilizza
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 Imposta un flag di database.
REST v1
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto
- LOCATION_ID: l'ID posizione
- 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 per l'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/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 di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/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/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto
- LOCATION_ID: l'ID posizione
- 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 per l'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 di queste 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 IAM dei database.
- 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 norme IAM a un utente o a un account di servizio.
- Scopri come accedere a un database Cloud SQL utilizzando l'autenticazione IAM dei database.
- Scopri come gestire gli utenti e gli account di servizio per l'autenticazione IAM dei database.