En esta página, se incluyen procedimientos para crear o editar instancias de Cloud SQL a fin de permitir que los usuarios o las cuentas de servicio configuradas usen la autenticación de bases de datos de IAM en Cloud SQL. Para obtener más información sobre la integración de IAM en Cloud SQL, consulta Autenticación de IAM.
Una instancia recién creada tiene cuatro bases de datos del sistema:
information_schema
: Proporciona acceso a los metadatos de la base de datos y la información sobre el servidor de MySQL.mysql
: El esquema del sistema. Contiene tablas que almacenan información requerida por el servidor MySQL mientras se ejecuta.performance_schema
: Una función para supervisar la ejecución del servidor MySQL a un nivel bajo.sys
: Contiene un conjunto de objetos que ayuda a los DBA y los desarrolladores a interpretar los datos recopilados por el esquema de rendimiento.
Antes de comenzar
- 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
- Asegúrate de tener las funciones de administrador de Cloud SQL y visualizador de Compute en tu cuenta de usuario.
Obtén más información sobre las funciones y los permisos.
Configura instancias nuevas para la autenticación de bases de datos de IAM
Cloud SQL usa una marca para inhabilitar y habilitar las conexiones de usuario de IAM en una instancia. En este procedimiento, habilitas esa marca.
Para configurar una instancia nueva que use la autenticación de bases de datos IAM en Cloud SQL, haz lo siguiente:
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Haga clic en Crear instancia.
- Haga clic en Choose MySQL.
- Ingresa un nombre para el ID de la instancia. No incluyas información sensible o de identificación personal en el nombre de tu instancia, ya que es visible de forma externa. No debes incluir el ID del proyecto en el nombre de la instancia. Esto se hace de manera automática cuando es apropiado (por ejemplo, en los archivos de registro).
- Ingrese una contraseña para el usuario raíz.
- En el menú desplegable Versión de la base de datos, selecciona una versión de base de datos.
- En la sección Elige la región y la disponibilidad zonal, selecciona la región y la zona de la instancia. Ubica la instancia en la misma región en la que están los recursos que acceden a ella. No se podrá modificar la región que seleccionaste en un futuro. Por lo general, no es necesario especificar una zona.
- En la sección Personaliza tu instancia, haz clic en Mostrar opciones de configuración y, luego, expande Marcas.
- Haz clic en Agregar marca.
- En el menú desplegable Elige una marca, selecciona la marca
cloudsql_iam_authentication
. Asegúrate de que la opción Activada esté seleccionada como el valor de esta marca y, luego, haz clic en Listo. - Establece otras opciones de configuración de la instancia, según sea necesario. Para obtener más información sobre la configuración, consulta Configuración.
- Haga clic en Crear instancia.
gcloud
Ejecuta gcloud sql instances create
con el parámetro --database-flags
configurado como cloudsql_iam_authentication=on
.
Reemplaza lo siguiente:
- INSTANCE_NAME: El nombre de la instancia nueva
- MYSQL_VERSION: La versión de MySQL (como MYSQL_5_7 o MYSQL_8_0).
- NUMBER_OF_CORES: La cantidad de núcleos en la máquina
- AMOUNT_OF_MEMORY: La cantidad de memoria en la máquina. Se debe proporcionar una unidad de tamaño (como 3,072MiB o 9GiB)
- ZONE: La zona de Compute Engine preferida (como us-central1-a o us-central1-b)
- PASSWORD: Crea una contraseña para el usuario raíz
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
Para crear una instancia con la autenticación de la base de datos de IAM habilitada, usa un recurso de Terraform.
Aplica los cambios
Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicialice Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
Borra los cambios
Para borrar tus cambios, haz lo siguiente:
- Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform apply
-
Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform destroy
REST v1
No incluyas información sensible o de identificación personal (PII) en el nombre de tu instancia, ya que es visible de forma externa.
No debes incluir el ID del proyecto en el nombre de la instancia. El ID de proyecto se incluye de forma automática cuando hace falta (por ejemplo, en los archivos de registro).
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- INSTANCE_ID: el ID de instancia deseado
- REGION: la región deseada, como us-east-1
- PROJECT_ID: el ID de tu proyecto
- LOCATION_ID: el ID de ubicación
- DATABASE_VERSION: Es la string de enumeración de la versión de la base de datos.
Por ejemplo:
MYSQL_8_0
. - PASSWORD: Es la contraseña para el usuario raíz.
- MACHINE_TYPE: Es la string de enumeración del tipo de máquina (nivel) como:
db-custom-[CPUS]-[MEMORY_MBS]
.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql_iam_authentication", "value": "on" } ] } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
No incluyas información sensible o de identificación personal (PII) en el nombre de tu instancia, ya que es visible de forma externa.
No debes incluir el ID del proyecto en el nombre de la instancia. El ID de proyecto se incluye de forma automática cuando hace falta (por ejemplo, en los archivos de registro).
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- INSTANCE_ID: el ID de instancia deseado
- REGION: la región deseada, como us-east-1
- PROJECT_ID: el ID de tu proyecto
- LOCATION_ID: el ID de ubicación
- DATABASE_VERSION: Es la string de enumeración de la versión de la base de datos.
Por ejemplo:
MYSQL_8_0
. - PASSWORD: Es la contraseña para el usuario raíz.
- MACHINE_TYPE: Es la string de enumeración del tipo de máquina (nivel) como:
db-custom-[CPUS]-[MEMORY_MBS]
.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql_iam_authentication", "value": "on" } ] } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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 instancias existentes para la autenticación de bases de datos de IAM en Cloud SQL
Para configurar la autenticación de bases de datos de IAM en una instancia existente, sigue estos pasos:
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Edit.
- En la sección Personaliza tu instancia, expande Marcas.
- Haz clic en Agregar marca.
- En el menú desplegable Elige una marca, selecciona la marca
cloudsql_iam_authentication
. Asegúrate de que la opción Activada esté seleccionada como el valor de esta marca y, luego, haz clic en Listo. - Establece otras opciones de configuración de la instancia, según sea necesario. Para obtener más información sobre la configuración, consulta Configuración.
- Haz clic en Guardar.
gcloud
Para obtener información sobre cómo instalar y comenzar a usar la CLI de gcloud, consulta Instala la CLI de gcloud. Para obtener información sobre cómo iniciar Cloud Shell, consulta Usa Cloud Shell.
Para este procedimiento, usa
gcloud
sql instances patch
.
Reemplaza lo siguiente:
- INSTANCE_NAME: El nombre de la instancia nueva
gcloud sql instances patch INSTANCE_NAME \ --database-flags=cloudsql_iam_authentication=on
Esto restablece todas las demás configuraciones de marcas de la base de datos existentes. Para obtener más orientación sobre cómo configurar las marcas de la base de datos, consulta Establece una marca de base de datos.
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID de tu proyecto
- LOCATION_ID: el ID de ubicación
- INSTANCE_ID: el ID de instancia deseado
- REGION: Es la región que elegiste.
- DATABASE_VERSION: Es la string de enumeración de la versión de la base de datos.
Por ejemplo:
MYSQL_8_0
. - PASSWORD: Es la contraseña para el usuario raíz.
- MACHINE_TYPE: Es la string de enumeración del tipo de máquina (nivel) como:
db-custom-[CPUS]-[MEMORY_MBS]
.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql_iam_authentication", "value": "on" } ] } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID de tu proyecto
- LOCATION_ID: el ID de ubicación
- INSTANCE_ID: el ID de instancia deseado
- REGION: Es la región que elegiste.
- DATABASE_VERSION: Es la string de enumeración de la versión de la base de datos.
Por ejemplo:
MYSQL_8_0
. - PASSWORD: Es la contraseña para el usuario raíz.
- MACHINE_TYPE: Es la string de enumeración del tipo de máquina (nivel) como:
db-custom-[CPUS]-[MEMORY_MBS]
.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql_iam_authentication", "value": "on" } ] } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" }
¿Qué sigue?
- Obtén más información sobre la autenticación de bases de datos de IAM.
- Obtén información sobre cómo configurar accesos de réplica de lectura para la autenticación de bases de datos de IAM.
- Obtén información para crear usuarios y cuentas de servicio que usen la autenticación de bases de datos de IAM en Cloud SQL.
- Aprende cómo agregar una vinculación de política de IAM a un usuario o una cuenta de servicio.
- Obtén información para acceder a una base de datos de Cloud SQL con la autenticación de la base de datos de IAM.
- Obtén información sobre cómo administrar usuarios y cuentas de servicio para la autenticación de bases de datos de IAM.