Conéctate a AlloyDB para PostgreSQL

Como administrador de BigQuery, puedes crear una conexión para acceder a los datos de AlloyDB. Esta conexión permite que los analistas de datos consulten datos en AlloyDB.

Para conectarte a AlloyDB, debes seguir los siguientes pasos:

  1. Crea una conexión de AlloyDB.

  2. Otorga acceso a la cuenta de servicio.

Antes de comenzar

  1. Habilita la API de conexión de BigQuery.

    Habilita la API

  2. Para obtener los permisos que necesitas para crear una conexión de AlloyDB, pídele a tu administrador que te otorgue el rol de IAM administrador de conexión de BigQuery (roles/bigquery.connectionAdmin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

    También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Crea una conexión de AlloyDB

Como práctica recomendada, usa conexiones para controlar las credenciales de la base de datos cuando te conectes a AlloyDB. Las conexiones se encriptan y almacenan de forma segura en el servicio de conexión de BigQuery. Si las credenciales del usuario son válidas para otros datos en el origen, puedes volver a usar la conexión. Por ejemplo, puedes usar una conexión para consultar la misma base de datos en una instancia de AlloyDB varias veces.

Selecciona una de las siguientes opciones para crear una conexión de AlloyDB:

bq

Ingresa el comando bq mk con las siguientes marcas:

  bq mk \
  --connection \
  --location=LOCATION \
  --project_id=PROJECT_ID \
  --connector_configuration '{
    "connector_id": "google-alloydb",
    "asset": {
      "database": "DATABASE",
      "google_cloud_resource": "RESOURCE_PATH"
    },
    "authentication": {
      "username_password": {
        "username": "USERNAME",
        "password": {
          "plaintext": "PASSWORD"
        }
      }
    }
  }' \
  CONNECTION_ID

Reemplaza lo siguiente:

  • LOCATION: Especifica una región del conjunto de datos de BigQuery para combinar con los datos de AlloyDB. Las consultas que usan esta conexión deben ejecutarse desde esta región.
  • PROJECT_ID: ingresa el ID del proyecto de Google Cloud.
  • DATABASE: Ingresa el nombre de la base de datos.
  • RESOURCE_PATH: Ingresa el URI de conexión de la instancia de AlloyDB con el prefijo //alloydb.googleapis.com.
    • URI de muestra: //alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
  • USERNAME: Ingresa el nombre del usuario de la base de datos.
  • PASSWORD: Ingresa la contraseña del usuario de la base de datos.
  • CONNECTION_ID: Ingresa un ID de conexión para identificar esta conexión.

API

Dentro de la API de conexión de BigQuery, puedes invocar CreateConnection dentro de ConnectionService para crear una instancia de conexión. Consulta la página de la biblioteca cliente para obtener más detalles.

Otorga acceso a la cuenta de servicio

Una cuenta de servicio se crea automáticamente cuando creas la primera conexión dentro de un proyecto. El nombre de la cuenta de servicio es agente de BigQuery Connection Service. El ID de la cuenta de servicio tiene el siguiente formato:

service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com

Para conectarte a AlloyDB, debes otorgar a la nueva conexión acceso a AlloyDB para que BigQuery pueda acceder a los datos en nombre de los usuarios. La cuenta de servicio debe tener el siguiente permiso:

  • alloydb.instances.connect

Puedes otorgar a la cuenta de servicio asociada con la conexión el rol de IAM de cliente de AlloyDB, que ya tiene este permiso asignado. Puedes omitir este paso si la cuenta de servicio ya tiene el permiso necesario.

Console

  1. Ir a la página IAM y administración

    Ir a IAM y administración

  2. Haz clic en Otorgar acceso.

    Se abre el cuadro de diálogo Agregar principales.

  3. En el campo Principales nuevas, ingresa el nombre de la cuenta de servicio Agente de servicio de conexión de BigQuery o el ID de la cuenta de servicio que se tomó de la información de conexión

  4. En el campo Seleccionar un rol, selecciona AlloyDB y, luego, Cliente de AlloyDB.

  5. Haz clic en Guardar.

gcloud

Usa el comando de gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client

Ingresa los siguientes valores:

  • PROJECT_ID es el ID del proyecto de Google Cloud.
  • SERVICE_ACCOUNT_ID: Reemplaza el número de proyecto en service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com y úsalo.

Comparte conexiones con usuarios

Puedes otorgar los siguientes roles para permitir que los usuarios consulten datos y administren conexiones:

  • roles/bigquery.connectionUser: Permite que los usuarios usen conexiones para conectarse con fuentes de datos externas y ejecutar consultas en ellas.

  • roles/bigquery.connectionAdmin: Permite que los usuarios administren conexiones.

Para obtener más información sobre los roles y los permisos de IAM en BigQuery, consulta Roles y permisos predefinidos.

Selecciona una de las siguientes opciones:

bq

Usa el siguiente comando set-iam-policy:

  bq set-iam-policy RESOURCE FILE_NAME

Reemplaza lo siguiente:

  • RESOURCE: Ingresa el nombre del recurso en formato project_id.region.connection_id o region.connection_id.
  • FILE_NAME: Ingresa el nombre de archivo que contiene la política de IAM en formato JSON.

Para obtener más información sobre el comando set-iam-policy, consulta Controla el acceso a los recursos con IAM.

API

Consulta el método projects.locations.connections.setIAM en la sección de referencia de la API de REST de las conexiones de BigQuery y proporciona una instancia del recurso policy.

¿Qué sigue?