Esta página descreve como usar o Private Service Connect para estabelecer ligação a uma instância do AlloyDB for PostgreSQL.
Pode usar o Private Service Connect para se ligar a uma instância principal do AlloyDB ou a qualquer uma das respetivas réplicas de leitura, ou a uma instância secundária do AlloyDB a partir de várias redes da nuvem virtual privada (VPC) pertencentes a diferentes grupos, equipas, projetos ou organizações.
Funções necessárias
Tem de conceder todas as seguintes funções a um utilizador na sua rede VPC para poder estabelecer ligação a uma instância do AlloyDB.
Função | Descrição |
---|---|
compute.networkAdmin |
Concede controlo total sobre a rede VPC que inicia uma ligação a uma instância do AlloyDB. Se usar o Private Service Connect para se ligar a uma instância do AlloyDB a partir de várias redes VPC, cada rede tem o seu próprio administrador. |
dns.admin |
Concede controlo total sobre os recursos do Cloud DNS, incluindo zonas e registos de DNS. |
alloydb.admin |
Fornece controlo total de uma instância do AlloyDB e controla a instância ao longo do respetivo ciclo de vida. |
alloydb.databaseUser (Opcional) |
Fornece acesso à instância do AlloyDB. Se se ligar através do cliente do proxy de autenticação do AlloyDB, tem de ter a função de cliente do AlloyDB. Se fizer a associação diretamente, não precisa de funções nem autorizações da gestão de identidade e de acesso (IAM). |
Custom AlloyDB role (Opcional) |
Se estiver a usar uma função personalizada, além de conceder as funções compute.networkAdmin e dns.admin , conceda as seguintes autorizações:
|
Crie um ponto final do Private Service Connect
Os pontos finais do Private Service Connect são endereços IP internos numa rede VPC do consumidor, aos quais os clientes nessa rede podem aceder diretamente. Os clientes podem usar estes pontos finais para estabelecer ligação a instâncias do AlloyDB.
Para que o AlloyDB crie o ponto final do Private Service Connect automaticamente, faça o seguinte:
- Reutilize uma política de ligação de serviço existente ou crie uma política de ligação de serviço nas suas redes VPC. Com esta política, pode aprovisionar pontos finais do Private Service Connect automaticamente.
- Crie um cluster e uma instância do AlloyDB com o Private Service Connect ativado para a instância e configure a instância para criar automaticamente pontos finais do Private Service Connect.
- Recupere o ponto final da instância. Isto permite-lhe usar o ponto final para estabelecer ligação à instância.
- (Opcional) Atualize um cluster e uma instância do AlloyDB existentes com o Private Service Connect ativado para gerar pontos finais automaticamente.
Também pode criar o ponto final do Private Service Connect manualmente. Para mais informações, consulte o artigo Crie o ponto final manualmente.
Crie o ponto final automaticamente
6As secções seguintes explicam como configurar a sua instância para permitir que o AlloyDB crie automaticamente o ponto final { 6{private_service_connect_name}}.
Crie uma política de ligação de serviço
Pode reutilizar uma política de ligação de serviço existente ou criar uma política de ligação de serviço através da Google Cloud consola ou da CLI do Google Cloud.
Uma política de ligação de serviço permite-lhe autorizar uma classe de serviço especificada a criar um ponto final do Private Service Connect na sua rede VPC do consumidor. Pode usar a política de ligação de serviço para permitir que o AlloyDB crie automaticamente pontos finais do Private Service Connect.
Consola
Na Google Cloud consola, aceda à página Private Service Connect.
Clique no separador Políticas de ligação.
Clique em Criar política de ligação.
Introduza um Nome para a política de associação.
Especifique a classe de serviço fazendo o seguinte:
- Para Classe de serviço de origem, selecione Serviços Google.
- No menu Classe de serviço, selecione
google-cloud-alloydb
porque o AlloyDB é o serviço gerido para a política de ligação.
Na secção Âmbito dos pontos finais, selecione uma Rede e uma Região às quais esta política se aplica.
Na secção Configuração dos pontos finais, selecione uma ou mais sub-redes no menu Sub-redes. As sub-redes são usadas para atribuir endereços IP a pontos finais.
Opcional: especifique um limite de associações para a política. O limite determina quantos pontos finais o AlloyDB pode criar para esta política de ligação. Se não especificar um limite de ligações, não existe limite.
Clique em Criar política.
gcloud
Para criar uma política de ligação de serviço, use o comando service-connection-policies create
.
gcloud network-connectivity service-connection-policies create POLICY_NAME \ --network=NETWORK \ --project=PROJECT_ID \ --region=REGION \ --service-class=SERVICE_CLASS \ --subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \ --psc-connection-limit=LIMIT \ --description="DESCRIPTION" \ --producer-instance-location=PRODUCER_INSTANCE_LOCATION \ --allowed-google-producers-resource-hierarchy-level=LIST_OF_NODES
Substitua o seguinte:
POLICY_NAME
: o nome da política de ligação de serviços.NETWORK
: a rede à qual esta política se aplica.PROJECT_ID
: o ID ou o número do projeto do projeto da rede VPC. Para redes de VPC partilhada, tem de implementar políticas de ligação de serviço no projeto anfitrião, uma vez que estas políticas não são suportadas em projetos de serviço.REGION
: a região à qual esta política se aplica. A mesma política tem de existir para todas as regiões onde quer automatizar a conetividade dos serviços.SERVICE_CLASS
: o identificador do recurso fornecido pelo produtor da classe de serviço. Para o AlloyDB, a classe de serviço égoogle-cloud-alloydb
.SUBNETS
: uma ou mais sub-redes de consumidor normais que são usadas para atribuir endereços IP para pontos finais do Private Service Connect. Estes endereços IP são atribuídos automaticamente e devolvidos ao conjunto da sub-rede à medida que as instâncias de serviços geridos são criadas e eliminadas. As sub-redes têm de estar na mesma região que a política de ligação de serviço. Se várias políticas de ligação partilharem a mesma região, pode reutilizar a mesma sub-rede nestas políticas. Pode introduzir várias sub-redes numa lista separada por vírgulas.LIMIT
: o número máximo de pontos finais que pode criar com esta política. Se não especificar um limite, não existe um limite.DESCRIPTION
: uma descrição opcional da política de associação de serviços.PRODUCER_INSTANCE_LOCATION
: especifica se a política automatiza as ligações a instâncias do AlloyDB. Pode definir este valor de uma das seguintes formas:none
(predefinição): a instância do AlloyDB está no mesmo projeto que a política de ligação de serviço (ou, no caso da VPC partilhada, em projetos ligados).custom-resource-hierarchy-levels
: requer que defina o caminho da localização do Resource Manager para os projetos para os quais quer automatizar a conetividade através do parâmetroallowed-google-producers-resource-hierarchy-level
.
LIST_OF_NODES
: defina este parâmetro se a localização da instância do produtor estiver definida comocustom-resource-hierarchy-levels
. Este parâmetro é uma lista de projetos, pastas e organizações onde residem as instâncias para as quais quer automatizar a conetividade. A lista está no formatoprojects/PROJECT_ID
,folders/FOLDER_ID
ouorganizations/ORGANIZATION_ID
.
Por exemplo, o seguinte comando cria uma política de ligação de serviço
para a classe de serviço
google-cloud-alloydb
que atribui endereços IP
da sub-rede managed-services
. É possível criar um máximo de 10 pontos finais do Private Service Connect com esta política. Os pontos finais têm de ser criados em projetos que estejam na mesma organização que a instância do serviço gerido. A instância do AlloyDB está localizada no projeto myproject
.
gcloud network-connectivity service-connection-policies create alloydb-policy \ --network=default \ --project=my-project \ --region=us-central1 \ --service-class=google-cloud-alloydb \ --subnets=managed-service-subnet \ --psc-connection-limit=10 \ --producer-instance-location=custom-resource-hierarchy-levels \ --allowed-google-producers-resource-hierarchy-level=projects/myproject
Crie uma instância do AlloyDB
Pode criar uma instância com o Private Service Connect ativado para a instância e configurar a instância para criar pontos finais automaticamente através da consola, da CLI gcloud ou do Terraform.
Consola
Na Google Cloud consola, aceda à página Clusters.
Clique em Criar cluster.
Em ID do cluster, introduza
my-cluster
.Introduza uma palavra-passe. Tome nota desta palavra-passe, pois vai usá-la neste início rápido.
Manter a versão predefinida da base de dados.
Selecione a região
us-central1 (Iowa)
.Mantenha o ID da instância predefinido,
my-cluster-primary
.Em Disponibilidade zonal, mantenha Zona única como a opção selecionada. Embora não recomendemos uma única instância de zona para produção, use uma única zona neste início rápido para minimizar os custos. Para mais informações, consulte o artigo Reduza os custos com instâncias básicas.
Selecione o
2 vCPU, 16 GB
tipo de máquina.Manter a conetividade de IP privado.
- Selecione Private Service Connect (PSC).
- Clique em Adicionar um ponto final.
- Selecione o projeto onde quer criar o ponto final.
- Selecione a rede.
- Clique em Verificar política para ver informações sobre a política de ligação de serviços.
Mantenha as predefinições em Segurança de rede.
Não faça alterações em Mostrar opções avançadas.
Clique em Criar cluster. O AlloyDB pode demorar vários minutos a criar o cluster e apresentá-lo na página Vista geral do cluster principal.
gcloud
Para criar o cluster, use o comando gcloud alloydb clusters
create
.
gcloud alloydb clusters create CLUSTER_ID \
--password=PASSWORD \
--region=REGION_ID \
--project=PROJECT_ID \
--enable-private-service-connect
Substitua o seguinte:
CLUSTER_ID
: o ID do cluster que está a criar. Tem de começar com uma letra minúscula e pode conter letras minúsculas, números e hífenes.PASSWORD
: a palavra-passe a usar para o utilizadorpostgres
predefinido.REGION_ID
: a região onde quer colocar o cluster.PROJECT_ID
: o ID do projeto onde quer colocar o cluster.
Este comando inicia uma operação de longa duração, devolvendo um ID da operação.
Para criar a instância do AlloyDB, seja principal ou um conjunto de leitura para usar o Private Service Connect, use o comando gcloud alloydb instances create. Certifique-se de que inclui o parâmetro --allowed-psc-projects
para especificar que projetos de consumidor podem criar pontos finais para estabelecer ligação a esta instância.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECT
Substitua o seguinte:
INSTANCE_ID
: o ID da instância que está a criar. Tem de começar por uma letra minúscula e pode conter letras minúsculas, números e hífenes.CPU_COUNT
: o número de vCPUs que quer para a instância. Os valores válidos incluem o seguinte:2
: 2 vCPUs, 16 GB de RAM4
: 4 vCPUs, 32 GB de RAM8
: 8 vCPUs, 64 GB de RAM16
: 16 vCPUs, 128 GB de RAM32
: 32 vCPUs, 256 GB de RAM64
: 64 vCPUs, 512 GB de RAM96
: 96 vCPUs, 768 GB de RAM128
: 128 vCPUs, 864 GB de RAM
AVAILABILITY
: indica se esta instância deve ou não ter alta disponibilidade (HA), com nós em várias zonas. Os valores válidos incluem:REGIONAL
: cria uma instância de HA com nós ativos e em espera separados e com comutação por falha automatizada entre eles. Este é o valor predefinido, adequado para ambientes de produção.ZONAL
: cria uma instância básica, que contém apenas um nó e nenhuma comutação por falha automática.
REGION_ID
: a região onde quer colocar a instância.CLUSTER_ID
: o ID do cluster que criou anteriormente.ALLOWED_PROJECT_LIST
: a lista de IDs de projetos ou números de projetos separados por vírgulas aos quais quer permitir o acesso à instância. Por exemplo:my-project-1
,12345
,my-project-n
.NETWORK_ATTACHMENT_URI
(Opcional): o nome completo do recurso do URI do anexo de rede que cria para a conetividade de saída. Por exemplo:projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID
.CONSUMER_NETWORK
: o caminho para a rede da VPC onde os pontos finais do Private Service Connect têm de ser criados. Por exemplo:projects/my-host-project/global/networks/default
. Esta opção aplica-se quando cria pontos finais automaticamente. Certifique-se de que a política de ligação de serviços é criada. Pode criar a política antes ou depois de criar a instância.CONSUMER_PROJECT
: o projeto onde o ponto final do Private Service Connect é criado. Se estiver a usar uma rede de VPC partilhada, pode ser o projeto anfitrião ou o projeto de serviço. Todos os projetos especificados nos parâmetros de associação automática são adicionados automaticamente aos seus projetos permitidos. Opcionalmente, para todos os projetos nos quais quer criar pontos finais do Private Service Connect manualmente, pode adicioná-los à sua lista de projetos permitidos.
Um cluster secundário criado para um cluster principal com o Private Service Connect ativado herda automaticamente a configuração do Private Service Connect. Para mais informações, consulte o artigo Crie um cluster secundário.
Terraform
Para criar uma instância no cluster de base de dados, use um recurso do Terraform.
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY"
machine_config {
cpu_count = 2
}
psc_instance_config {
allowed_consumer_projects = ["123456789"]
psc_interface_configs {
network_attachment_resource = google_compute_network_attachment.default.id
}
}
}
resource "google_compute_network" "default" {
name = "alloydb-network"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "default" {
name = "alloydb-subnetwork"
region = "us-central1"
network = google_compute_network.default.id
ip_cidr_range = "10.0.0.0/16"
}
resource "google_compute_network_attachment" "default" {
name = "alloydb-network-attachment"
region = "us-central1"
connection_preference = "ACCEPT_AUTOMATIC"
subnetworks = [
google_compute_subnetwork.default.self_link
]
}
data "google_project" "project" {}
Para saber como aplicar ou remover uma configuração do Terraform, consulte o artigo Comandos básicos do Terraform.
Obtenha o ponto final
Ao obter o endereço IP interno, que é o ponto final do Private Service Connect para uma instância, pode usar este ponto final para estabelecer ligação à instância.
Para ver informações sobre uma instância, incluindo o endereço IP que é o ponto final do Private Service Connect para a instância, use o comando gcloud alloydb instances describe
:
gcloud alloydb instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'
Faça as seguintes substituições:
- INSTANCE_NAME: o nome da instância do AlloyDB. Se esta instância tiver o Private Service Connect ativado, os pontos finais do Private Service Connect nas redes VPC podem estabelecer ligação à mesma.
- PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância.
Na resposta, tome nota do valor que aparece junto ao campo pscConfig:pscAutoConnections:ipAddress
. Este valor é o endereço IP interno que também é o ponto final do Private Service Connect para a instância.
Atualize uma instância para criar pontos finais automaticamente
Para atualizar uma instância de modo a criar pontos finais automaticamente, transmita o parâmetro --psc-auto-connections
para o comando gcloud alloydb instances update.
Configure a conetividade de saída
Se quiser ativar a conetividade de saída para a sua instância do AlloyDB com o Private Service Connect ativado, tem de definir o URI da associação da rede para a instância. Para mais informações, consulte o artigo Configure a conetividade de saída.
Crie o ponto final manualmente
As secções seguintes explicam como criar um ponto final do Private Service Connect manualmente.
Crie uma instância do AlloyDB
Pode criar uma instância com o Private Service Connect ativado para a instância e configurar a instância para criar pontos finais automaticamente através da consola, da CLI gcloud ou do Terraform.
Consola
Na Google Cloud consola, aceda à página Clusters.
Clique em Criar cluster.
Em ID do cluster, introduza
my-cluster
.Introduza uma palavra-passe. Tome nota desta palavra-passe, pois vai usá-la neste início rápido.
Manter a versão predefinida da base de dados.
Selecione a região
us-central1 (Iowa)
.Mantenha o ID da instância predefinido,
my-cluster-primary
.Em Disponibilidade zonal, mantenha Zona única como a opção selecionada. Embora não recomendemos uma única instância de zona para produção, use uma única zona neste início rápido para minimizar os custos. Para mais informações, consulte o artigo Reduza os custos com instâncias básicas.
Selecione o
2 vCPU, 16 GB
tipo de máquina.Manter a conetividade de IP privado.
- Selecione Private Service Connect(PSC).
- Clique em Adicionar um ponto final.
- Selecione o projeto onde quer criar o ponto final.
- Selecione a rede.
- Clique em Verificar política para ver informações sobre a política de ligação de serviços.
Mantenha as predefinições em Segurança de rede.
Não faça alterações em Mostrar opções avançadas.
Clique em Criar cluster. O AlloyDB pode demorar vários minutos a criar o cluster e apresentá-lo na página Vista geral do cluster principal.
gcloud
Para criar o cluster, use o comando gcloud alloydb clusters
create
.
gcloud alloydb clusters create CLUSTER_ID \
--password=PASSWORD \
--region=REGION_ID \
--project=PROJECT_ID \
--enable-private-service-connect
Substitua o seguinte:
CLUSTER_ID
: o ID do cluster que está a criar. Tem de começar com uma letra minúscula e pode conter letras minúsculas, números e hífenes.PASSWORD
: a palavra-passe a usar para o utilizadorpostgres
predefinido.REGION_ID
: a região onde quer colocar o cluster.PROJECT_ID
: o ID do projeto onde quer colocar o cluster.
Este comando inicia uma operação de longa duração, devolvendo um ID da operação.
Para criar a instância principal, use o comando gcloud alloydb instances create.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
Substitua o seguinte:
INSTANCE_ID
: o ID da instância que está a criar. Tem de começar por uma letra minúscula e pode conter letras minúsculas, números e hífenes.CPU_COUNT
: o número de vCPUs que quer para a instância. Os valores válidos incluem o seguinte:2
: 2 vCPUs, 16 GB de RAM4
: 4 vCPUs, 32 GB de RAM8
: 8 vCPUs, 64 GB de RAM16
: 16 vCPUs, 128 GB de RAM32
: 32 vCPUs, 256 GB de RAM64
: 64 vCPUs, 512 GB de RAM96
: 96 vCPUs, 768 GB de RAM128
: 128 vCPUs, 864 GB de RAM
AVAILABILITY
: indica se esta instância deve ou não ter alta disponibilidade (HA), com nós em várias zonas. Os valores válidos incluem:REGIONAL
: cria uma instância de HA com nós ativos e em espera separados e com comutação por falha automatizada entre eles. Este é o valor predefinido, adequado para ambientes de produção.ZONAL
: cria uma instância básica, que contém apenas um nó e nenhuma comutação por falha automática.
REGION_ID
: a região onde quer colocar a instância.CLUSTER_ID
: o ID do cluster que criou anteriormente.ALLOWED_PROJECT_LIST
: a lista separada por vírgulas dos IDs dos projetos ou do número do projeto aos quais quer permitir o acesso à instância, por exemplo,my-project-1
,12345
,my-project-n
.NETWORK_ATTACHMENT_URI
(Opcional): o nome completo do recurso do URI do anexo de rede que cria para a conetividade de saída. Por exemplo:projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID
.CONSUMER_NETWORK
: o caminho para a rede VPC a partir da qual os pontos finais do Private Service Connect têm de ser criados. Por exemplo:projects/my-host-project/global/networks/default
. Esta opção aplica-se quando cria pontos finais automaticamente. Certifique-se de que a política de ligação de serviços é criada. Pode criar a política antes ou depois de criar a instância.CONSUMER_PROJECT
: o projeto onde o ponto final do Private Service Connect é criado. Se estiver a usar uma rede de VPC partilhada, pode ser o projeto anfitrião ou o projeto de serviço. Todos os projetos especificados nos parâmetros de associação automática são adicionados automaticamente aos seus projetos permitidos. Opcionalmente, para todos os projetos nos quais quer criar pontos finais do Private Service Connect manualmente, pode adicioná-los à sua lista de projetos permitidos.
Um cluster secundário criado para um cluster principal com o Private Service Connect ativado herda automaticamente a configuração do Private Service Connect. Para mais informações, consulte o artigo Crie um cluster secundário.
Terraform
Para criar uma instância no cluster de base de dados, use um recurso do Terraform.
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY"
machine_config {
cpu_count = 2
}
psc_instance_config {
allowed_consumer_projects = ["123456789"]
psc_interface_configs {
network_attachment_resource = google_compute_network_attachment.default.id
}
}
}
resource "google_compute_network" "default" {
name = "alloydb-network"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "default" {
name = "alloydb-subnetwork"
region = "us-central1"
network = google_compute_network.default.id
ip_cidr_range = "10.0.0.0/16"
}
resource "google_compute_network_attachment" "default" {
name = "alloydb-network-attachment"
region = "us-central1"
connection_preference = "ACCEPT_AUTOMATIC"
subnetworks = [
google_compute_subnetwork.default.self_link
]
}
data "google_project" "project" {}
Para saber como aplicar ou remover uma configuração do Terraform, consulte o artigo Comandos básicos do Terraform.
Obtenha a associação de serviço
Depois de criar uma instância do AlloyDB com o Private Service Connect ativado, obtenha o URL da associação do serviço e use-o para criar o ponto final do Private Service Connect.
Use o comando gcloud alloydb instances describe
para ver detalhes sobre uma instância.
gcloud alloydb instances describe INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID
Substitua o seguinte:
INSTANCE_ID
: o ID da instância.CLUSTER_ID
: o ID do cluster.REGION_ID
: a região na qual o cluster do AlloyDB está implementado.
Segue-se um exemplo de resposta para o comando:
"pscInstanceConfig": {
"serviceAttachmentLink:": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id"
"allowedConsumerProjects": {
"45678",
"12345",
"67890",
},
"pscDnsName": "11111111-1111-1111-1111-111111111111.22222222-2222-2222-2222-222222222222.alloydb-psc.goog."
}
O parâmetro serviceAttachmentLink
contém o valor do URL do anexo de serviço.
Crie um ponto final do Private Service Connect
Para criar um ponto final do Private Service Connect, transmita o URL da associação de serviço juntamente com um nome de ponto final exclusivo. Para mais informações sobre como criar um ponto final do Private Service Connect, consulte o artigo Crie um ponto final.
Também pode reservar um endereço IP interno para o ponto final do Private Service Connect através do comando gcloud compute addresses create
e, em seguida, usar o endereço IP reservado quando criar o ponto final.
Configure a conetividade de saída
Para ativar a conetividade de saída, defina o URI do anexo de rede quando criar ou atualizar uma instância do AlloyDB. Este URI permite uma conetividade segura entre o seu projeto e a instância do AlloyDB durante operações de saída, como migrações.
Crie a associação de rede
Pode criar uma associação de rede que possa aceitar associações automaticamente(ACCEPT_AUTOMATIC
) ou manualmente (ACCEPT_MANUAL
). Para mais informações sobre como criar uma associação de rede, consulte o artigo Crie e faça a gestão de associações de rede.
Se optar por criar uma associação de rede que aceite ligações automaticamente, não precisa de definir explicitamente uma lista de projetos aceites. Para aceitar ligações manualmente, tem de adicionar o número do projeto pertencente ao serviço do projeto onde a sua instância do AlloyDB está localizada à lista de projetos aceites.
Para encontrar o número do projeto pertencente ao serviço, execute o seguinte comando:
gcloud alpha alloydb clusters describe CLUSTER_ID --region=REGION_ID
Segue-se um exemplo de resposta:
pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012
Depois de identificar o número do projeto pertencente ao serviço, adicione o projeto à lista de projetos aceites e, em seguida, crie a associação da rede.
Certifique-se de que a região da associação de rede é a mesma que a região da instância do AlloyDB. Além disso, a sub-rede usada para criar a associação de rede tem de pertencer aos intervalos de IP RFC 1918, que são 10.0.0.0/8
, 172.16.0.0/12
e 192.168.0.0/16
.
Atualize uma instância para a conetividade de saída
Para ativar a conetividade de saída para uma instância do AlloyDB existente com o Private Service Connect ativado, transmita o parâmetro --psc-network-attachment-uri
ao comando gcloud alloydb instances update
.
As instâncias do AlloyDB criadas antes de 1 de março de 2025 não podem ser atualizadas para ativar as ligações de saída. Como abordagem alternativa, recomendamos que use uma das seguintes opções:
- Crie uma réplica regional (CRR) da sua instância principal com a conetividade de saída ativada. Em seguida, faça uma comutação para designar a instância de réplica como a nova instância principal.
- Faça uma cópia de segurança do cluster e da instância principal do AlloyDB existentes. Em seguida, crie um novo cluster e uma instância principal do AlloyDB com a conetividade de saída ativada. Por último, faça um restauro da cópia de segurança criada anteriormente no novo cluster.
Desative a conetividade de saída
Para desativar a conetividade de saída para uma instância do AlloyDB existente, transmita o parâmetro --clear-psc-network-attachment-uri
ao comando gcloud alloydb instances update
.
Associe-se a uma instância do AlloyDB
Pode estabelecer ligação a uma instância do AlloyDB com o Private Service Connect ativado através de uma das seguintes opções:
- Estabeleça ligação diretamente através de um registo DNS
- Use o proxy Auth do AlloyDB com o registo DNS
- Use os conectores de linguagem do AlloyDB com o registo DNS
- Estabeleça ligação diretamente através de um endereço IP interno
Para métodos que usam um registo DNS, tem de criar o registo numa zona DNS privada na rede VPC correspondente. Depois de criar um registo DNS, pode usá-lo para estabelecer ligação a uma instância com o Private Service Connect ativado.
Configure uma zona gerida por DNS e um registo DNS
Para configurar uma zona gerida de DNS e um registo de DNS na sua rede, siga estes passos:
Para ver informações de resumo sobre uma instância do AlloyDB, incluindo o nome DNS da instância, use o comando
gcloud alloydb instances describe
:gcloud alloydb instances describe INSTANCE_ID \ --cluster=CLUSTER_ID --region=REGION_ID
Substitua o seguinte:
INSTANCE_ID
: o ID da instância.CLUSTER_ID
: o ID do cluster.
Na resposta, verifique se o nome DNS aparece. O nome DNS tem o padrão
INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog.
.Para criar uma zona DNS privada, use o comando
gcloud dns managed-zones create
. Esta zona está associada à rede VPC usada para estabelecer ligação à instância do AlloyDB através do ponto final do Private Service Connect.gcloud dns managed-zones create ZONE_NAME \ --project=PROJECT_ID \ --description=DESCRIPTION \ --dns-name=DNS_NAME \ --networks=NETWORK_NAME \ --visibility=private
Substitua o seguinte:
ZONE_NAME
: o nome da zona DNS.PROJECT_ID
: o ID ou o número do projeto do Google Cloud projeto que contém a zona.DESCRIPTION
: uma descrição da zona (por exemplo, uma zona DNS para a instância do AlloyDB).DNS_NAME
: o nome DNS da zona, comoINSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog.
.NETWORK_NAME
: o nome da rede VPC. No caso de uma rede VPC partilhada, defina o caminho totalmente qualificado da rede VPC, por exemplo,projects/cymbal-project/global/networks/shared-vpc-network
.
Depois de criar o ponto final do Private Service Connect, para criar um registo DNS na zona, use o comando gcloud dns record-sets create:
gcloud dns record-sets create DNS_NAME \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAME
Substitua o seguinte:
DNS_NAME
: o nome DNS que obteve anteriormente neste procedimento.RRSET_TYPE
: o tipo de registo de recurso do conjunto de registos de DNS (por exemplo, A).RR_DATA
: o endereço IP atribuído ao ponto final do Private Service Connect (por exemplo, 198.51.100.5). Também pode introduzir vários valores, como rrdata1 rrdata2 rrdata3 (por exemplo, 10.1.2.3 10.2.3.4 10.3.4.5).
Estabeleça ligação diretamente através de um registo DNS
Depois de criar um ponto final do Private Service Connect e um registo DNS, pode estabelecer ligação diretamente através do registo DNS.
Para obter o registo DNS do ponto final do Private Service Connect, use o comando
gcloud compute addresses describe
:gcloud compute addresses describe DNS_RECORD \ --project=PROJECT_ID \ --region=REGION_NAME
Substitua o seguinte:
DNS_RECORD
: o registo de DNS para o ponto final.PROJECT_ID
: o ID ou o número do projeto do Google Cloud projeto que contém o ponto final.REGION_NAME
: o nome da região do ponto final.
Para se ligar à instância do AlloyDB, use o registo DNS.
psql -U USERNAME -h DNS_RECORD
Substitua o seguinte:
USERNAME
: o nome do utilizador que está a estabelecer ligação à instância.DNS_RECORD
: o registo de DNS do ponto final.
Ligue-se através do proxy Auth do AlloyDB
O proxy de autorização do AlloyDB é um conetor que lhe permite estabelecer ligações autorizadas e encriptadas a bases de dados do AlloyDB. O proxy de autenticação do AlloyDB funciona com um cliente local em execução no ambiente local. A sua aplicação comunica com o AlloyDB Auth Proxy com o protocolo de base de dados padrão usado pela sua base de dados.
Quando define a flag --psc
ao iniciar o cliente do proxy de autorização, o proxy de autorização do AlloyDB usa o registo DNS que criou para se ligar à instância com o Private Service Connect ativado.
Certifique-se de que inicia o cliente do proxy de autorização transmitindo o URI da instância que recupera através do comando gcloud alloydb instances list
e defina a flag --psc
.
Para mais informações sobre como ligar a uma instância através do proxy Auth, consulte o artigo Ligue-se através do proxy Auth.
Ligue-se através dos conetores de linguagem do AlloyDB
Os conectores de linguagem do AlloyDB são bibliotecas que fornecem mTLS automatizado com TLS 1.3 e autorização da gestão de identidade e de acesso (IAM) quando se ligam a uma instância do AlloyDB.
Depois de o Language Connector determinar que a instância suporta o Private Service Connect, usa o registo DNS que criou para se ligar à instância.
Java
Se estiver a usar o Private Service Connect para estabelecer ligação à sua instância do AlloyDB, inclua o seguinte:
config.addDataSourceProperty("alloydbIpType", "PSC");
Para mais informações sobre a utilização do ponto final do Private Service Connect nos conectores da linguagem Java, consulte o repositório do GitHub.
Python (pg8000)
Se estiver a usar o Private Service Connect para estabelecer ligação à sua instância do AlloyDB, inclua o seguinte:
def getconn() -> pg8000.dbapi.Connection:
conn: pg8000.dbapi.Connection = connector.connect(
inst_uri,
"pg8000",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
Para mais informações sobre a utilização do ponto final do Private Service Connect nos conectores de linguagem Python, consulte o repositório do GitHub.
Python (asyncpg)
Se estiver a usar o Private Service Connect para estabelecer ligação à sua instância do AlloyDB, inclua o seguinte:
async def getconn() -> asyncpg.Connection:
conn: asyncpg.Connection = await connector.connect(
inst_uri,
"asyncpg",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
Para mais informações sobre a utilização do ponto final do Private Service Connect nos conectores de linguagem Python, consulte o repositório do GitHub.
Go (pgx)
Se estiver a usar o Private Service Connect para estabelecer ligação à sua instância do AlloyDB, inclua o seguinte:
d.Dial(ctx, instURI, alloydbconn.WithPSC())
Para mais informações sobre a utilização do ponto final do Private Service Connect nos conetores da linguagem Go, consulte o repositório do GitHub.
Go (database/sql)
Se estiver a usar o Private Service Connect para estabelecer ligação à sua instância do AlloyDB, inclua o seguinte:
cleanup, err := pgxv5.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC())
)
Para mais informações sobre a utilização do ponto final do Private Service Connect nos conetores da linguagem Go, consulte o repositório do GitHub.
Ligue-se diretamente através de um endereço IP interno
Depois de criar um ponto final do Private Service Connect, pode estabelecer ligação diretamente a uma instância do AlloyDB através do endereço IP que configurou.
Para obter o endereço IP do ponto final do Private Service Connect, use o comando
gcloud compute addresses describe
:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Substitua o seguinte:
ADDRESS_NAME
: o nome do endereço IP do ponto final.PROJECT_ID
: o ID ou o número do projeto do Google Cloud projeto que contém o ponto final.REGION_NAME
: o nome da região do ponto final.
Para estabelecer ligação à instância do AlloyDB, use o endereço IP interno.
psql -U USERNAME -h IP_ADDRESS"
Substitua o seguinte:
USERNAME
: o nome do utilizador que está a estabelecer ligação à instância.IP_ADDRESS
: o endereço IP do ponto final.
Limitações
- Pode configurar até 20 pontos finais do Private Service Connect que se ligam à associação do serviço de uma instância do AlloyDB com o Private Service Connect ativado.
- Não pode usar a flag
--network
quando cria um cluster com o Private Service Connect ativado, porque está associado ao acesso privado aos serviços. - Não pode ativar nem desativar o Private Service Connect numa instância existente.
- Não pode configurar uma instância com o Private Service Connect ativado para usar o acesso a serviços privados.