Conectarse a AlloyDB para PostgreSQL
Como administrador de BigQuery, puedes crear una conexión para acceder a los datos de AlloyDB. Esta conexión permite a los analistas de datos consultar datos en AlloyDB.
Para conectarte a AlloyDB, debes seguir estos pasos:
Antes de empezar
- Habilita la API de conexión de BigQuery.
-
Para obtener los permisos que necesitas para crear una conexión de AlloyDB, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de conexiones de BigQuery (
roles/bigquery.connectionAdmin
) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Crear una conexión de AlloyDB
Como práctica recomendada, usa conexiones para gestionar las credenciales de la base de datos cuando te conectes a AlloyDB. Las conexiones se cifran y se almacenan de forma segura en el servicio de conexión de BigQuery. Si las credenciales de usuario son válidas para otros datos de la fuente, puedes reutilizar 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:
Consola
Ve a la página BigQuery.
En el panel Explorador, haz clic en
Añadir.Se abrirá el cuadro de diálogo Añadir datos.
En el panel Filtrar por, en la sección Tipo de fuente de datos, selecciona Bases de datos.
También puede introducir
alloydb
en el campo Buscar fuentes de datos.En la sección Fuentes de datos destacadas, haga clic en Google Cloud AlloyDB.
Haga clic en la tarjeta de solución AlloyDB: federación de BigQuery.
En el cuadro de diálogo Fuente de datos externa, introduce la siguiente información:
- En Connection type (Tipo de conexión), selecciona AlloyDB.
- En Connection ID (ID de conexión), introduce un identificador para el recurso de conexión. Se admiten letras, números y guiones bajos. Por ejemplo,
bq_alloydb_connection
. - En Ubicación de los datos, seleccione una ubicación (o región) de BigQuery que sea compatible con la región de su fuente de datos externa.
- Opcional: En Nombre descriptivo, introduce un nombre descriptivo para la conexión, como
My connection resource
. El nombre descriptivo puede ser cualquier valor que te ayude a identificar el recurso de conexión si necesitas modificarlo más adelante. - Opcional: En Descripción, escribe una descripción de este recurso de conexión.
- Opcional: Cifrado. Si quieres usar una clave de cifrado gestionada por el cliente (CMEK) para cifrar tus credenciales, selecciona Clave de cifrado gestionada por el cliente (CMEK) y, a continuación, elige una clave gestionada por el cliente. De lo contrario, tus credenciales estarán protegidas por el valor predeterminado Google-owned and Google-managed encryption key.
- En Database name (Nombre de la base de datos), introduce el nombre de la base de datos.
- En Nombre de usuario de la base de datos, introduce el nombre de usuario de la base de datos.
- En Contraseña de la base de datos, introduce la contraseña de la base de datos.
- Opcional: Para ver la contraseña, haz clic en Mostrar contraseña.
En Instancia de AlloyDB, introduce el URI de conexión de la instancia principal o de lectura de AlloyDB con el prefijo //alloydb.googleapis.com.
- URI de ejemplo:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- URI de ejemplo:
Haga clic en Crear conexión.
Haz clic en Ir a la conexión.
En el panel Información sobre la conexión, copia el ID de la cuenta de servicio para usarlo en el siguiente paso y conceder los permisos de gestión de identidades y accesos correctos.
bq
Introduce 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
Haz los cambios siguientes:
LOCATION
: especifica una región del conjunto de datos de BigQuery que se combinará con los datos de AlloyDB. Las consultas que usen esta conexión deben ejecutarse desde esta región.PROJECT_ID
: introduce el ID de tu proyecto Google Cloud .DATABASE
: introduce el nombre de la base de datos.RESOURCE_PATH
: introduce el URI de conexión de la instancia principal o de lectura de AlloyDB con el prefijo //alloydb.googleapis.com.- URI de ejemplo:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- URI de ejemplo:
USERNAME
: introduce el nombre del usuario de la base de datos.PASSWORD
: introduce la contraseña del usuario de la base de datos.CONNECTION_ID
: introduce un ID de conexión para identificar esta conexión.
API
En la API de conexión de BigQuery, puedes invocar CreateConnection
en ConnectionService
para crear una instancia de conexión. Consulta la página de la biblioteca de cliente para obtener más información.
Conceder acceso a la cuenta de servicio
Se crea automáticamente una cuenta de servicio cuando creas la primera conexión en un proyecto. El nombre de la cuenta de servicio es Agente del servicio de conexión de BigQuery. 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 dar acceso a la nueva conexión 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 conceder a la cuenta de servicio asociada a la conexión el rol de gestión de identidades y accesos de cliente de AlloyDB, que ya tiene asignado este permiso. Puedes omitir este paso si la cuenta de servicio ya tiene el permiso necesario.
Consola
Ve a la página IAM y administración.
Haz clic en
Conceder acceso.Se abrirá el cuadro de diálogo Añadir principales.
En el campo Principales nuevas, introduce 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 ha obtenido de la información de conexión.
En el campo Selecciona un rol, elige AlloyDB y, a continuación, Cliente de AlloyDB.
Haz clic en Guardar.
gcloud
Usa el comando
gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client
Proporciona los siguientes valores:
PROJECT_ID
: tu ID de proyecto Google Cloud .SERVICE_ACCOUNT_ID
: sustituye el número de proyecto enservice-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
y úsalo.
Compartir conexiones con usuarios
Puede conceder los siguientes roles para permitir que los usuarios consulten datos y gestionen conexiones:
roles/bigquery.connectionUser
: permite a los usuarios usar conexiones para conectarse con fuentes de datos externas y ejecutar consultas en ellas.roles/bigquery.connectionAdmin
: permite a los usuarios gestionar las conexiones.
Para obtener más información sobre los roles y permisos de gestión de identidades y accesos en BigQuery, consulta el artículo sobre roles y permisos predefinidos.
Selecciona una de las opciones siguientes:
Consola
Ve a la página BigQuery.
Las conexiones se muestran en tu proyecto, en un grupo llamado Conexiones externas.
En el panel Explorador, haga clic en el nombre del proyecto > Conexiones externas > conexión.
En el panel Detalles, haz clic en Compartir para compartir una conexión. A continuación, sigue estas instrucciones:
En el cuadro de diálogo Permisos de conexión, comparte la conexión con otras entidades principales añadiendo o editando entidades principales.
Haz clic en Guardar.
bq
Usa el siguiente comando set-iam-policy
:
bq set-iam-policy RESOURCE FILE_NAME
Haz los cambios siguientes:
RESOURCE
: introduzca el nombre del recurso en formatoproject_id.region.connection_id
oregion.connection_id
.FILE_NAME
: introduce el nombre del archivo que contiene la política de IAM en formato JSON.
Para obtener más información sobre el comando set-iam-policy, consulta el artículo sobre cómo controlar el acceso a los recursos con la gestión de identidades y accesos.
API
Usa el método projects.locations.connections.setIAM
de la sección de referencia de la API REST Connections de BigQuery y proporciona una instancia del recurso policy
.
Siguientes pasos
- Consulta información sobre los diferentes tipos de conexión.
- Consulta cómo gestionar las conexiones.
- Consulta información sobre las consultas federadas.
- Consulta cómo consultar datos de AlloyDB.