Conectar-se ao AlloyDB para PostgreSQL
Como administrador do BigQuery, é possível criar uma conexão para acessar dados do AlloyDB. Essa conexão permite que os analistas de dados consultem os dados no AlloyDB.
Para se conectar ao AlloyDB, siga estas etapas:
Antes de começar
- Ative a API BigQuery Connection.
-
Para receber as permissões necessárias para criar uma conexão do AlloyDB, peça ao administrador para conceder a você o papel do IAM Administrador de conexão do BigQuery (
roles/bigquery.connectionAdmin
) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Criar uma conexão do AlloyDB
Como prática recomendada, use conexões para processar credenciais de banco de dados ao se conectar ao AlloyDB. As conexões são criptografadas e armazenadas com segurança no serviço de conexão do BigQuery. Se as credenciais do usuário forem válidas para outros dados na origem, a conexão poderá ser reutilizada. Por exemplo, é possível usar uma conexão para consultar o mesmo banco de dados em uma instância do AlloyDB várias vezes.
Selecione uma das seguintes opções para criar uma conexão do AlloyDB:
Console
Acessar a página do BigQuery.
No painel Explorer, clique em
Adicionar dados.Na caixa de diálogo Adicionar dados, clique em Conexões com fontes de dados externas:
No painel Fonte de dados externa, insira as seguintes informações:
- Em Tipo de conexão, selecione AlloyDB.
- Em ID da conexão, insira um identificador para o recurso de conexão. Letras, números e sublinhados são permitidos. Por exemplo,
bq_alloydb_connection
. - Em Local da conexão, selecione um local (ou região) do BigQuery compatível com a região da fonte de dados externa.
- (Opcional) Em Nome amigável, insira um nome fácil de usar para
a conexão, como
My connection resource
. O nome amigável pode ser qualquer valor que ajude você a identificar o recurso de conexão se precisar modificá-lo mais tarde. - (Opcional) Em Descrição, insira uma descrição para este recurso de conexão.
- Opcional: Criptografia. Se você quiser usar uma chave de criptografia gerenciada pelo cliente (CMEK) para criptografar suas credenciais, selecione Chave de criptografia gerenciada pelo cliente (CMEK) e selecione uma chave desse tipo. Caso contrário, suas credenciais estarão protegidas pela chave padrão gerenciada pelo Google.
- Em Nome do banco de dados, insira o nome do banco de dados.
- Em Nome de Usuário do banco de dados, insira o nome de usuário para o banco de dados.
- Em Senha do banco de dados, insira a senha do banco de dados.
- Opcional: para ver a senha, clique em Mostrar senha.
Em Instância do AlloyDB, insira o URI de conexão do AlloyDB instância principal ou de leitura com o prefixo //alloydb.googleapis.com.
- URI de amostra:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- URI de amostra:
Clique em Criar conexão.
Clique em Ir para conexão.
No painel Informações da conexão, copie o ID da conta de serviço para uso no próxima etapa para conceder as permissões de IAM corretas.
bq
Insira o comando bq mk
com as seguintes sinalizações:
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
Substitua:
LOCATION
: especifique uma região do conjunto de dados do BigQuery a ser combinado com os dados do AlloyDB. As consultas que usam essa conexão precisam ser executadas nessa região.PROJECT_ID
: insira o ID do projeto do Google Cloud.DATABASE
: insira o nome do banco de dados.RESOURCE_PATH
: insira o URI de conexão da instância primária do AlloyDB ou de leitura com o prefixo //alloydb.googleapis.com.- URI de amostra:
//alloydb.googleapis.com/projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_NAME/instances/INSTANCE_ID
- URI de amostra:
USERNAME
: insira a senha do usuário do banco de dados.PASSWORD
: insira a senha do usuário do banco de dados.CONNECTION_ID
: insira um ID de conexão para identificar essa conexão.
API
Na API do BigQuery Connection, é possível invocar CreateConnection
no ConnectionService
para instanciar uma conexão. Consulte a página da biblioteca de cliente para mais detalhes.
Conceder acesso à conta de serviço
Uma conta de serviço é criada automaticamente quando você cria a primeira conexão em um projeto. O nome da conta de serviço é BigQuery Connection Service Agent. O ID da conta de serviço tem o seguinte formato:
service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
.
Para se conectar ao AlloyDB, você precisa conceder à nova conexão acesso ao AlloyDB para que o BigQuery possa acessar os dados em nome dos usuários. A conta de serviço precisa ter a seguinte permissão:
alloydb.instances.connect
Você pode conceder à conta de serviço associada à conexão o papel do IAM de cliente do AlloyDB, que já tem essa permissão atribuída. É possível omitir esta etapa se a conta de serviço já tem a permissão necessária.
Console
Acesse a página IAM e administrador.
Clique em
Conceder acesso.A caixa de diálogo Adicionar principais é aberta.
No campo Novos principais, insira o nome da conta de serviço Agente de serviço de conexão do BigQuery ou o ID da conta de serviço retirado das informações de conexão.
No campo Selecionar papel, escolha AlloyDB e, em seguida, Cliente AlloyDB.
Clique em Salvar.
gcloud
Use o comando gcloud projects add-iam-policy-binding
:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:SERVICE_ACCOUNT_ID --role=roles/alloydb.client
Forneça os valores a seguir:
PROJECT_ID
pelo ID do projeto do Google Cloud.SERVICE_ACCOUNT_ID
: substitua o número do projeto emservice-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com
e use-o.
Compartilhar conexões com os usuários
Você pode conceder os seguintes papéis para permitir que os usuários consultem dados e gerenciem conexões:
roles/bigquery.connectionUser
: permite aos usuários usar conexões para se conectar a fontes de dados externas e executar consultas nelas.roles/bigquery.connectionAdmin
: permite que os usuários gerenciem conexões.
Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Papéis e permissões predefinidos.
Selecione uma das seguintes opções:
Console
Acessar a página do BigQuery.
As conexões são listadas no projeto, em um grupo chamado Conexões externas.
No painel Explorer, clique no nome do seu projeto > Conexões externas > conexão.
No painel Detalhes, clique em Compartilhar para compartilhar uma conexão. Em seguida, siga estas etapas:
Na caixa de diálogo Permissões de conexão, compartilhe a conexão com outros principais adicionando ou editando principais.
Clique em Salvar.
bq
Use o comando set-iam-policy
a seguir:
bq set-iam-policy RESOURCE FILE_NAME
Substitua:
RESOURCE
: digite o nome do recurso no formatoproject_id.region.connection_id
ouregion.connection_id
.FILE_NAME
: insira o nome de arquivo que contém a política do IAM em um formato JSON.
Para mais informações sobre o comando set-iam-policy, consulte Controlar o acesso a recursos com o IAM.
API
Consulte o
método projects.locations.connections.setIAM
na seção de referência da API REST BigQuery Connections e
forneça uma instância do recurso policy
.
A seguir
- Saiba sobre diferentes tipos de conexão.
- Saiba mais sobre como gerenciar conexões.
- Saiba mais sobre consultas federadas.
- Saiba como consultar dados do AlloyDB.