En esta página se describen los procedimientos para crear o editar instancias de Cloud SQL con el fin de permitir que los usuarios, las cuentas de servicio o los grupos que estén configurados para usar la autenticación de bases de datos de Cloud SQL IAM. Para obtener más información sobre la integración de gestión de identidades y accesos de Cloud SQL, consulta Autenticación de gestión de identidades y accesos.
Una instancia recién creada tiene una base de datos postgres
.
Antes de empezar
- 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Install the gcloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
-
Asegúrate de tener los roles Administrador de Cloud SQL y Lector de Compute en tu cuenta de usuario.
Ir a la página de gestión de identidades y accesos
Más información sobre los roles y los permisos
- Nueva arquitectura de red SQL: puedes tener hasta 1000 instancias por proyecto.
- Arquitectura de red SQL antigua: puedes tener hasta 100 instancias por proyecto.
- Usar ambas arquitecturas: el límite estará entre 100 y 1000, en función de la distribución de tus instancias en las dos arquitecturas.
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Haz clic en Crear instancia.
- Haz clic en Elegir PostgreSQL.
- Introduce un nombre para el ID de instancia. No incluyas información sensible ni de identificación personal en el nombre de tu instancia, ya que es visible externamente. No es necesario que incluyas el ID del proyecto en el nombre de la instancia. El ID del proyecto se incluye automáticamente cuando es necesario (por ejemplo, en los archivos de registro).
- Introduce una contraseña para el administrador predeterminado.
- En el menú Versión de la base de datos, seleccione una versión de la base de datos.
- En la sección Choose region and zonal availability (Elegir región y disponibilidad zonal), selecciona la región y la zona de tu instancia. Ubica tu instancia en la misma región que los recursos que acceden a ella. La región que selecciones no se podrá modificar en el futuro. Por lo general, no es necesario que especifiques una zona.
- En la sección Personalizar tu instancia, haz clic en Mostrar opciones de configuración y, a continuación, amplía Marcas.
- Haz clic en Añadir marca.
- En el menú Elige una bandera, selecciona la bandera
cloudsql.iam_authentication
. Asegúrate de que el valor de esta marca sea Activado y, a continuación, haz clic en Hecho. - Configura otros ajustes de la instancia según sea necesario. Para obtener más información sobre los ajustes, consulta Configuración.
- Haz clic en Crear instancia.
- INSTANCE_NAME: el nombre de la nueva instancia.
- POSTGRES_VERSION: la versión de PostgreSQL (por ejemplo, POSTGRES_9_6, POSTGRES_10, POSTGRES_11 o POSTGRES_12).
- NUMBER_OF_CORES: número de núcleos de la máquina.
- AMOUNT_OF_MEMORY: la cantidad de memoria de la máquina. Se debe indicar una unidad de tamaño (por ejemplo, 3072 MiB o 9 GiB).
- ZONE: zona de Compute Engine preferida (por ejemplo, us-central1-a o us-central1-b).
- PASSWORD: crea una contraseña para el usuario root.
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
- Para inhabilitar la protección contra la eliminación, en el archivo de configuración de Terraform, asigna el valor
false
al argumentodeletion_protection
.deletion_protection = "false"
- Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
-
Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce
yes
en la petición:terraform destroy
- INSTANCE_ID: el ID de instancia que quieras
- REGION: la región que quieras, como us-east-1
- PROJECT_ID: el ID del proyecto
- LOCATION_ID: el ID de la ubicación
- DATABASE_VERSION: cadena enum de la versión de la base de datos.
Por ejemplo:
POSTGRES_12
- PASSWORD: contraseña del usuario raíz
- MACHINE_TYPE: cadena de enumeración del tipo de máquina (nivel), como:
db-custom-[CPUS]-[MEMORY_MBS]
- INSTANCE_ID: el ID de instancia que quieras
- REGION: la región que quieras, como us-east-1
- PROJECT_ID: el ID del proyecto
- LOCATION_ID: el ID de la ubicación
- DATABASE_VERSION: cadena enum de la versión de la base de datos.
Por ejemplo:
POSTGRES_12
- PASSWORD: contraseña del usuario raíz
- MACHINE_TYPE: cadena de enumeración del tipo de máquina (nivel), como:
db-custom-[CPUS]-[MEMORY_MBS]
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Editar.
- En la sección Personalizar tu instancia, amplía Marcas.
- Haz clic en Añadir marca.
- En el menú Elige una bandera, selecciona la bandera
cloudsql.iam_authentication
. Asegúrate de que el valor de esta marca sea Activado y, a continuación, haz clic en Hecho. - Configura otros ajustes de la instancia según sea necesario. Para obtener más información sobre los ajustes, consulta Configuración.
- Haz clic en Guardar.
- INSTANCE_NAME: el nombre de la nueva instancia.
- PROJECT_ID: el ID del proyecto
- LOCATION_ID: el ID de la ubicación
- INSTANCE_ID: el ID de instancia que quieras
- REGION: la región deseada
- DATABASE_VERSION: cadena enum de la versión de la base de datos.
Por ejemplo:
POSTGRES_12
- PASSWORD: contraseña del usuario raíz
- MACHINE_TYPE: cadena de enumeración del tipo de máquina (nivel), como:
db-custom-[CPUS]-[MEMORY_MBS]
- PROJECT_ID: el ID del proyecto
- LOCATION_ID: el ID de la ubicación
- INSTANCE_ID: el ID de instancia que quieras
- REGION: la región deseada
- DATABASE_VERSION: cadena enum de la versión de la base de datos.
Por ejemplo:
POSTGRES_12
- PASSWORD: contraseña del usuario raíz
- MACHINE_TYPE: cadena de enumeración del tipo de máquina (nivel), como:
db-custom-[CPUS]-[MEMORY_MBS]
- Más información sobre la autenticación de bases de datos de gestión de identidades y accesos
- Consulta cómo configurar los inicios de sesión de réplicas de lectura para la autenticación de bases de datos de gestión de identidades y accesos.
- Consulta cómo crear usuarios y cuentas de servicio que usen la autenticación de bases de datos de gestión de identidades y accesos de Cloud SQL.
- Consulta cómo iniciar sesión en una base de datos de Cloud SQL mediante la autenticación de bases de datos de gestión de identidades y accesos.
- Consulta cómo gestionar usuarios y cuentas de servicio para la autenticación de bases de datos de gestión de identidades y accesos.
El número máximo de instancias que puedes tener en un solo proyecto depende de la arquitectura de red de esas instancias:
Envía un caso de asistencia para solicitar un aumento. Las réplicas de lectura se contabilizan como instancias.
Configurar instancias nuevas para la autenticación de bases de datos de gestión de identidades y accesos
Para configurar una instancia de Cloud SQL para la autenticación de bases de datos de gestión de identidades y accesos, debes habilitar la marca cloudsql.iam_authentication
.
Una vez que hayas habilitado esta marca, podrás añadir usuarios, cuentas de servicio o grupos de gestión de identidades y accesos a la instancia de Cloud SQL.
Para configurar una instancia de Cloud SQL nueva para que use la autenticación de bases de datos de gestión de identidades y accesos, sigue estos pasos:
Consola
gcloud
Ejecuta
gcloud sql instances create
con el parámetro --database-flags
definido como
cloudsql.iam_authentication=on
.
Haz los cambios siguientes:
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
Para crear una instancia con la autenticación de bases de datos de gestión de identidades y accesos habilitada, usa un recurso de Terraform.
Aplica los cambios
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
Aplica los cambios
Eliminar los cambios
Para eliminar los cambios, sigue estos pasos:
REST v1
No incluyas información sensible ni información personal identificable (IPI) en el nombre de tu instancia, ya que es visible externamente.
No es necesario que incluyas el ID del proyecto en el nombre de la instancia. El ID del proyecto se incluye automáticamente cuando es necesario (por ejemplo, en los archivos de registro).
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://sqladmin.googleapis.com/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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
No incluyas información sensible ni información personal identificable (IPI) en el nombre de tu instancia, ya que es visible externamente.
No es necesario que incluyas el ID del proyecto en el nombre de la instancia. El ID del proyecto se incluye automáticamente cuando es necesario (por ejemplo, en los archivos de registro).
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" }
Configurar instancias ya creadas para la autenticación de bases de datos de gestión de identidades y accesos
Para configurar una instancia de Cloud SQL para la autenticación de bases de datos de gestión de identidades y accesos, debes habilitar la marca cloudsql.iam_authentication
.
Una vez que hayas habilitado esta marca, podrás añadir usuarios, cuentas de servicio o grupos de gestión de identidades y accesos a la instancia de Cloud SQL.
Para configurar una instancia de Cloud SQL que ya tengas para que use la autenticación de bases de datos de gestión de identidades y accesos, sigue estos pasos:
Consola
gcloud
Para obtener información sobre cómo instalar y empezar a usar la CLI de gcloud, consulta el artículo Instalar la CLI de gcloud. Para obtener información sobre cómo iniciar Cloud Shell, consulta el artículo Usar Cloud Shell.
Para este procedimiento, usa
gcloud
sql instances patch
.
Haz los cambios siguientes:
gcloud sql instances patch INSTANCE_NAME \ --database-flags=cloudsql.iam_authentication=on
De esta forma, se restablecerán todos los demás ajustes de las marcas de la base de datos. Para obtener más información sobre cómo definir indicadores de bases de datos, consulta Definir un indicador de base de datos.
REST v1
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
Método HTTP y URL:
POST https://sqladmin.googleapis.com/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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
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, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "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" }