Configura instancias 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 cuatro bases de datos del sistema: information_schema, mysql, performance_schema y sys.

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. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  4. Instala e inicializa el SDK de Cloud.
  5. 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. Selecciona MySQL y haz clic en Siguiente.
  4. Ingresa un nombre para el ID de la instancia. 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. Esto se hace de manera automática cuando es apropiado (por ejemplo, en los archivos de registro). Nota: No puedes volver a usar el nombre de una instancia por una semana después de haberla borrado.
  5. Ingrese una contraseña para el usuario raíz.
  6. En la sección Ubicación, selecciona la región y zona para 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.
  7. Selecciona una versión de la base de datos.
  8. En la sección Opciones de configuración, expande Marcas.
  9. Selecciona + Agregar elemento.
  10. Ingresa cloudsql_iam_authentication para el nombre de la marca. Asegúrate de que la opción Activada esté seleccionada para esta marca.
  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. Haz clic en Crear.

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

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. Esto se hace 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: 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"
}
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. Haz clic en el nombre de la instancia para abrir la página Descripción general de esa instancia.
  3. Haz clic en Edit.
  4. En la sección Opciones de configuración, expande Marcas.
  5. Selecciona + Agregar elemento.
  6. Ingresa cloudsql_iam_authentication para el nombre de la marca. Asegúrate de que la opción Activada esté seleccionada para esta marca.
  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

Si deseas obtener información para instalar y comenzar a usar la herramienta de línea de comandos de gcloud, consulta [Instala el SDK de Cloud](/sdk/downloads). 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: 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?