Estabeleça ligação a uma instância através do Private Service Connect

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:
  • alloydb.clusters.create: fornece acesso para ativar o Private Service Connect para um cluster.
  • alloydb.instances.create e alloydb.instances.update: fornece acesso para adicionar uma lista de projetos permitidos e definir um URI de anexo de rede para uma instância.

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:

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

  1. Na Google Cloud consola, aceda à página Private Service Connect.

    Aceda ao Private Service Connect

  2. Clique no separador Políticas de ligação.

  3. Clique em Criar política de ligação.

  4. Introduza um Nome para a política de associação.

  5. Especifique a classe de serviço fazendo o seguinte:

    1. Para Classe de serviço de origem, selecione Serviços Google.
    2. No menu Classe de serviço, selecione google-cloud-alloydb porque o AlloyDB é o serviço gerido para a política de ligação.
  6. Na secção Âmbito dos pontos finais, selecione uma Rede e uma Região às quais esta política se aplica.

  7. 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.

  8. 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.

  9. 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âmetro allowed-google-producers-resource-hierarchy-level.
  • LIST_OF_NODES: defina este parâmetro se a localização da instância do produtor estiver definida como custom-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 formato projects/PROJECT_ID, folders/FOLDER_ID ou organizations/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

  1. Na Google Cloud consola, aceda à página Clusters.

    Aceda a Clusters

  2. Clique em Criar cluster.

  3. Em ID do cluster, introduza my-cluster.

  4. Introduza uma palavra-passe. Tome nota desta palavra-passe, pois vai usá-la neste início rápido.

  5. Manter a versão predefinida da base de dados.

  6. Selecione a região us-central1 (Iowa).

  7. Mantenha o ID da instância predefinido, my-cluster-primary.

  8. 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.

  9. Selecione o 2 vCPU, 16 GBtipo de máquina.

  10. Manter a conetividade de IP privado.

    1. Selecione Private Service Connect (PSC).
    2. Clique em Adicionar um ponto final.
    3. Selecione o projeto onde quer criar o ponto final.
    4. Selecione a rede.
    5. Clique em Verificar política para ver informações sobre a política de ligação de serviços.
  11. Mantenha as predefinições em Segurança de rede.

  12. Não faça alterações em Mostrar opções avançadas.

  13. 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 utilizador postgres 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 RAM
    • 4: 4 vCPUs, 32 GB de RAM
    • 8: 8 vCPUs, 64 GB de RAM
    • 16: 16 vCPUs, 128 GB de RAM
    • 32: 32 vCPUs, 256 GB de RAM
    • 64: 64 vCPUs, 512 GB de RAM
    • 96: 96 vCPUs, 768 GB de RAM
    • 128: 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:

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

  1. Na Google Cloud consola, aceda à página Clusters.

    Aceda a Clusters

  2. Clique em Criar cluster.

  3. Em ID do cluster, introduza my-cluster.

  4. Introduza uma palavra-passe. Tome nota desta palavra-passe, pois vai usá-la neste início rápido.

  5. Manter a versão predefinida da base de dados.

  6. Selecione a região us-central1 (Iowa).

  7. Mantenha o ID da instância predefinido, my-cluster-primary.

  8. 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.

  9. Selecione o 2 vCPU, 16 GBtipo de máquina.

  10. Manter a conetividade de IP privado.

    1. Selecione Private Service Connect(PSC).
    2. Clique em Adicionar um ponto final.
    3. Selecione o projeto onde quer criar o ponto final.
    4. Selecione a rede.
    5. Clique em Verificar política para ver informações sobre a política de ligação de serviços.
  11. Mantenha as predefinições em Segurança de rede.

  12. Não faça alterações em Mostrar opções avançadas.

  13. 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 utilizador postgres 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 RAM
    • 4: 4 vCPUs, 32 GB de RAM
    • 8: 8 vCPUs, 64 GB de RAM
    • 16: 16 vCPUs, 128 GB de RAM
    • 32: 32 vCPUs, 256 GB de RAM
    • 64: 64 vCPUs, 512 GB de RAM
    • 96: 96 vCPUs, 768 GB de RAM
    • 128: 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:


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:

Tem de configurar um registo DNS para que os conectores de idiomas usem o Private Service Connect.

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:

  1. 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..

  2. 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, como INSTANCE_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.
  3. 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.

  1. 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.
  2. 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.

  1. 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.
  2. 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.