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:
Antes de comenzar
- Habilita la API de conexión de BigQuery.
-
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
- URI de muestra:
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
Ir a la página IAM y administración
Haz clic en
Otorgar acceso.Se abre el cuadro de diálogo Agregar principales.
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
En el campo Seleccionar un rol, selecciona AlloyDB y, luego, Cliente de AlloyDB.
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 enservice-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 formatoproject_id.region.connection_id
oregion.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?
- Obtén información sobre los diferentes tipos de conexión.
- Obtén más información sobre cómo administrar conexiones.
- Obtén más información sobre consultas federadas.
- Obtén información sobre cómo consultar datos de AlloyDB.