Configurazione di istanze nuove ed esistenti per l'autenticazione IAM dei database

Questa pagina contiene le procedure per creare o modificare le istanze Cloud SQL Consenti a utenti, account di servizio o gruppi configurati per utilizzare Cloud SQL Autenticazione IAM dei database. Per saperne di più sulle IAM di Cloud SQL integrazione, consulta Autenticazione IAM.

Un'istanza appena creata ha un database postgres.

Prima di iniziare

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the Google Cloud CLI.
  5. To initialize the gcloud CLI, run the following command:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Install the Google Cloud CLI.
  9. To initialize the gcloud CLI, run the following command:

    gcloud init
  10. Assicurati di disporre dei ruoli Amministratore Cloud SQL e Visualizzatore di Compute sul tuo account utente.

    Vai alla pagina IAM

    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 cloudsql.iam_authentication flag. 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

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Fai clic su Crea istanza.
  3. Fai clic su Scegli PostgreSQL.
  4. Inserisci un nome per l'ID istanza.
  5. 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. Il progetto L'ID viene incluso automaticamente ove appropriato (ad esempio, nel log ).
  6. Inserisci una password per l'amministratore predefinito.
  7. Nel menu Versione del database, seleziona una versione del database.
  8. 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 regione selezionata non può essere modificata in futuro. Solitamente, non è necessario per specificare una zona.
  9. Nella sezione Personalizza la tua istanza, fai clic su Mostra opzioni di configurazione, quindi espandi Flag.
  10. Fai clic su Aggiungi indicatore.
  11. Dal menu Scegli un indicatore, seleziona l'indicatore cloudsql.iam_authentication. Assicurati che On sia selezionato come valore per questo flag e poi fai clic su Fine.
  12. Configura altre impostazioni dell'istanza in base alle esigenze. Per ulteriori informazioni impostazioni, consulta Impostazioni.
  13. 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.
  • POSTGRES_VERSION: la versione PostgreSQL (ad esempio POSTGRES_9_6, POSTGRES_10, POSTGRES_11 o POSTGRES_12).
  • 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=POSTGRES_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.

resource "google_sql_database_instance" "default" {
  name             = "postgres-db-auth-instance-name-test"
  region           = "us-west4"
  database_version = "POSTGRES_14"
  settings {
    tier = "db-custom-2-7680"
    database_flags {
      name  = "cloudsql.iam_authentication"
      value = "on"
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally
  # delete this instance by use of Terraform whereas
  # `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Applica le modifiche

Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle seguenti sezioni.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito dove 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 nel file di configurazione di Terraform.

Prepara la directory

Ogni file di configurazione di Terraform deve avere una propria directory (chiamata anche modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo all'interno di quella directory. Il nome del file deve contenere .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice di esempio nel file main.tf appena creato.

    Se vuoi, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. 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

  1. 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.

  2. Applica la configurazione Terraform eseguendo questo comando e inserendo yes alla richiesta:
    terraform apply

    Attendi che Terraform mostri il messaggio "Applicazione completata".

  3. Apri il tuo 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, procedi nel seguente modo:

  1. Per disabilitare la protezione dall'eliminazione, imposta il file di configurazione Terraform Argomento deletion_protection per false.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo il comando seguente inserendo yes alla richiesta:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la tua configurazione Terraform eseguendo questo 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. Il progetto L'ID viene incluso automaticamente dove necessario (ad esempio, nel log ).

Prima di utilizzare i dati della richiesta, effettua 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: POSTGRES_12
  • 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/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/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"
}
Per scoprire come viene costruita la richiesta dell'API REST sottostante per questa attività, consulta Explorer API nella pagina instances:insert.

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. Il progetto L'ID viene incluso automaticamente dove necessario (ad esempio, nel log ).

Prima di utilizzare i dati della richiesta, effettua 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: POSTGRES_12
  • 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"
}
Per vedere come vengono richiesta API REST sottostante per questa attività, vedi Explorer API nella pagina instances:insert.

Configurare le 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 attivato questo flag, puoi aggiungere utenti, account di servizio o gruppi IAM all'istanza Cloud SQL.

Per configurare un'istanza Cloud SQL esistente in modo che utilizzi l'autenticazione IAM dei database:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
  3. Fai clic su Modifica.
  4. Nella sezione Personalizza la tua istanza, espandi Flag.
  5. Fai clic su Aggiungi segnalazione.
  6. Dal menu Scegli un indicatore, seleziona l'indicatore cloudsql.iam_authentication. Assicurati che On sia selezionato come valore per questo flag e poi fai clic su Fine.
  7. Configura altre impostazioni dell'istanza in base alle esigenze. Per ulteriori informazioni impostazioni, consulta Impostazioni.
  8. Fai clic su Salva.

gcloud

Per informazioni su come installare e iniziare a utilizzare gcloud CLI, consulta Installare 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

Verranno reimpostate tutte le altre impostazioni di flag del database esistenti. Per ulteriori indicazioni su come impostare i flag di database, consulta Impostare un flag di database.


REST v1

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: POSTGRES_12
  • 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/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/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, 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: POSTGRES_12
  • 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