Configurar instancias nuevas y existentes para la autenticación de bases de datos de IAM

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 Descripción general de la autenticación de bases de datos de IAM en Cloud SQL.

Una instancia recién creada tiene una base de datos postgres.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  4. Instala y, luego, inicializa Google Cloud CLI.
  5. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  7. Instala y, luego, inicializa Google Cloud CLI.
  8. Asegúrate de tener las funciones de administrador de Cloud SQL y visualizador de Compute en tu cuenta de usuario.

    Ir a la página IAM

    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

  1. En Google Cloud Console, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Haga clic en Crear instancia.
  3. Haz clic en Elegir PostgreSQL.
  4. 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).
  5. Ingresa una contraseña para el usuario administrador predeterminado.
  6. En el menú desplegable Versión de la base de datos, selecciona una versión de base de datos.
  7. 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.
  8. En la sección Personaliza tu instancia, haz clic en Mostrar opciones de configuración y, luego, expande Marcas.
  9. Haz clic en Agregar marca.
  10. En el menú desplegable Elegir 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.
  11. 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.
  12. 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
  • POSTGRES_VERSION: La versión de PostgreSQL (como POSTGRES_9_6, POSTGRES_10, POSTGRES_11 o POSTGRES_12)
  • 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=POSTGRES_VERSION \
--cpu=NUMBER_OF_CORES \
--memory=AMOUNT_OF_MEMORY \
--zone=ZONE_NAME \
--root-password=PASSWORD \
--database-flags=cloudsql.iam_authentication=on

REST v1beta4

No incluyas información sensible o de identificación personal en el nombre de la 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 manera automática cuando es apropiado (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: POSTGRES_12.
  • 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"
}
Si quieres ver cómo se crea la solicitud a la API de REST subyacente para esta tarea, consulta el Explorador de API en la página de instances:insert.

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

  1. En Google Cloud Console, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Haz clic en Edit.
  4. En la sección Personaliza tu instancia, expande Marcas.
  5. Haz clic en Agregar marca.
  6. En el menú desplegable Elegir 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.
  7. 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.
  8. Haz clic en Guardar.

gcloud

Para obtener información sobre cómo instalar y comenzar a usar la herramienta de línea de comandos de gcloud, consulta [Instala la CLI de gcloud](/sdk/docs/install). Si deseas obtener información para iniciar Cloud Shell, consulta la [Documentación de Cloud Shell](/shell/docs/starting-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

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: POSTGRES_12.
  • 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?