En esta página, se incluyen procedimientos para crear o editar instancias de Cloud SQL para permitir que los usuarios, las cuentas de servicio o los grupos configurados 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 una base de datos postgres
.
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
Si deseas configurar una instancia de Cloud SQL nueva para la autenticación de la base de datos de IAM,
debes habilitar la marca
cloudsql.iam_authentication
.
Después de habilitar esta marca, puedes agregar usuarios, cuentas
de servicio o grupos de IAM a la instancia de Cloud SQL.
Para configurar una instancia de Cloud SQL nueva para usar la autenticación de la base de datos de IAM, sigue estos pasos:
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Haga clic en Crear instancia.
- Haz clic en Elegir PostgreSQL.
- 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).
- Ingresa una contraseña para el administrador predeterminado.
- En el menú 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ú 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: es el nombre de la instancia nueva.
- POSTGRES_VERSION: es la versión de PostgreSQL (como POSTGRES_9_6, POSTGRES_10, POSTGRES_11 o POSTGRES_12).
- NUMBER_OF_CORES: es la cantidad de núcleos en la máquina.
- AMOUNT_OF_MEMORY: es la cantidad de memoria en la máquina. Se debe proporcionar una unidad de tamaño (como 3,072MiB o 9GiB)
- ZONE: es 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=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 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.
-
Inicializa 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 información 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: es el ID de instancia deseado
- REGION: es la región deseada, como us-east-1
- PROJECT_ID: El ID del proyecto
- LOCATION_ID: es el ID de ubicación
- DATABASE_VERSION: la string de enumeración de la versión de la base de datos.
Por ejemplo:
POSTGRES_12
. - PASSWORD: la contraseña para el usuario raíz.
- MACHINE_TYPE: 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/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/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 o información 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: es el ID de instancia deseado
- REGION: es la región deseada, como us-east-1
- PROJECT_ID: El ID del proyecto
- LOCATION_ID: es el ID de ubicación
- DATABASE_VERSION: la string de enumeración de la versión de la base de datos.
Por ejemplo:
POSTGRES_12
. - PASSWORD: la contraseña para el usuario raíz.
- MACHINE_TYPE: 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
Para configurar una instancia de Cloud SQL existente para la autenticación de bases de datos de IAM, debes
habilitar la marca
cloudsql.iam_authentication
.
Después de habilitar esta marca, puedes agregar usuarios, cuentas
de servicio o grupos de IAM a la instancia de Cloud SQL.
Para configurar una instancia de Cloud SQL existente para usar la autenticación de bases de datos de IAM, haz lo siguiente:
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 Editar.
- En la sección Personaliza tu instancia, expande Marcas.
- Haz clic en Agregar marca.
- En el menú 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: es 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 del proyecto
- LOCATION_ID: es el ID de ubicación
- INSTANCE_ID: es el ID de instancia deseado
- REGION: es la región que elegiste
- DATABASE_VERSION: la string de enumeración de la versión de la base de datos.
Por ejemplo:
POSTGRES_12
. - PASSWORD: la contraseña para el usuario raíz.
- MACHINE_TYPE: 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/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/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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto
- LOCATION_ID: es el ID de ubicación
- INSTANCE_ID: es el ID de instancia deseado
- REGION: es la región que elegiste
- DATABASE_VERSION: la string de enumeración de la versión de la base de datos.
Por ejemplo:
POSTGRES_12
. - PASSWORD: la contraseña para el usuario raíz.
- MACHINE_TYPE: 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.
- 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.