Conectar-se a uma instância usando o Private Service Connect

Nesta página, descrevemos como usar o Private Service Connect para se conectar a uma instância do AlloyDB para PostgreSQL.

Use o Private Service Connect para se conectar a uma instância primária do AlloyDB ou a qualquer uma das réplicas de leitura dela, ou a uma instância secundária do AlloyDB de várias redes de nuvem privada virtual (VPC) que pertencem a diferentes grupos, equipes, projetos ou organizações.

Funções exigidas

Você precisa conceder todos os papéis a seguir a um usuário na sua rede VPC para se conectar a uma instância do AlloyDB.

Papel Descrição
compute.networkAdmin Concede controle total sobre a rede VPC que inicia uma conexão com uma instância do AlloyDB. Se você usar o Private Service Connect para se conectar a uma instância do AlloyDB de várias redes VPC, cada rede terá o próprio administrador.
dns.admin Concede controle total sobre os recursos do Cloud DNS, incluindo zonas e registros DNS.
alloydb.admin Concede controle total sobre uma instância do AlloyDB e sobre o ciclo de vida dela.
alloydb.databaseUser (opcional) Fornece acesso à instância do AlloyDB. Se você se conecta pelo cliente do proxy de autenticação do AlloyDB, é necessário ter o papel de cliente do AlloyDB. Se a conexão for direta, não serão necessários papéis e permissões do Identity and Access Management (IAM).
Custom AlloyDB role (opcional) Se você estiver usando um papel personalizado, além de conceder os papéis compute.networkAdmin e dns.admin, conceda as seguintes permissões:
  • alloydb.clusters.create: fornece acesso para ativar o Private Service Connect em 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.

Criar um endpoint do Private Service Connect

Os endpoints do Private Service Connect são endereços IP internos em uma rede VPC do consumidor, que os clientes dessa rede podem acessar diretamente. Os clientes podem usar esses endpoints para se conectar a instâncias do AlloyDB.

Para que o AlloyDB crie o endpoint do Private Service Connect automaticamente, faça o seguinte:

  • Reutilize uma política de conexão de serviço atual ou crie uma nas suas redes VPC. Com essa política, é possível provisionar endpoints 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 endpoints do Private Service Connect automaticamente.
  • Recupere o endpoint da instância. Isso permite que você use o endpoint para se conectar à instância.
  • (Opcional) Atualize um cluster e uma instância do AlloyDB com o Private Service Connect ativado para gerar endpoints automaticamente.

Também é possível criar o endpoint do Private Service Connect manualmente. Para mais informações, consulte Criar o endpoint manualmente.

Criar o endpoint automaticamente

As próximas seções explicam como configurar sua instância para permitir que o AlloyDB crie o endpoint do Private Service Connect automaticamente.

Criar uma política de conexão de serviço

É possível reutilizar uma política de conexão de serviço ou criar uma usando o console do Google Cloud ou a Google Cloud CLI.

Com uma política de conexão de serviço, você autoriza uma classe de serviço especificada a criar um endpoint do Private Service Connect na sua rede VPC do consumidor. Você pode usar a política de conexão de serviço para permitir que o AlloyDB crie endpoints do Private Service Connect automaticamente.

Console

  1. No console Google Cloud , acesse a página Private Service Connect.

    Acessar a página "Private Service Connect"

  2. Clique na guia Políticas de conexão.

  3. Clique em Criar política de conexão.

  4. Digite um nome para a conexão.

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

    1. Em Source service class, selecione Google services.
    2. No menu Classe de serviço, selecione google-cloud-alloydb porque o AlloyDB é o serviço gerenciado para a política de conexão.
  6. Na seção Escopo de endpoints de destino, selecione uma Rede e uma Região a que essa política se aplica.

  7. Na seção Política, selecione uma ou mais sub-redes no menu Sub-redes. As sub-redes são usadas para alocar endereços IP para endpoints.

  8. Opcional: especifique um Limite de conexão para a política. O limite determina quantos endpoints o AlloyDB pode criar para essa política de conexão. Se você não especificar um limite de conexão, não haverá limite.

  9. Clique em Criar política.

gcloud

Para criar uma política de conexã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:

  • POLICY_NAME: o nome da política de conexão de serviço.
  • NETWORK: a rede em que essa política é aplicada.
  • PROJECT_ID: o ID do projeto ou o número do projeto da rede VPC. Para redes VPC compartilhadas, implante políticas de conexão de serviço no projeto host, porque elas não são compatíveis com projetos de serviço.
  • REGION: a região a que essa política se aplica. A mesma política precisa existir para todas as regiões em que você quer automatizar a conectividade do serviço.
  • SERVICE_CLASS: o identificador de 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 regulares usadas para alocar endereços IP para endpoints do Private Service Connect. Esses endereços IP são alocados automaticamente e retornados ao pool da sub-rede à medida que as instâncias de serviço gerenciado são criadas e excluídas. As sub-redes precisam estar na mesma região que a política de conexão do serviço. Se várias políticas de conexão compartilharem a mesma região, será possível reutilizar a mesma sub-rede nessas políticas. É possível fornecer várias sub-redes em uma lista separada por vírgulas.
  • LIMIT: o número máximo de endpoints que podem ser criados com essa política. Se você não especificar um limite, não haverá nenhum.
  • DESCRIPTION: uma descrição opcional do política de conexão de serviço.
  • PRODUCER_INSTANCE_LOCATION: especifica se a política automatiza as conexões com instâncias do AlloyDB. Você pode definir esse valor de uma das seguintes maneiras:

    • none (padrão): a instância do AlloyDB está no mesmo projeto que a política de conexão de serviço (ou, no caso da VPC compartilhada, em projetos conectados).
    • custom-resource-hierarchy-levels: exige que você defina o caminho do local do Resource Manager para os projetos em que quer automatizar a conectividade usando o parâmetro allowed-google-producers-resource-hierarchy-level.
  • LIST_OF_NODES: defina esse parâmetro se o local da instância do produtor estiver definido como custom-resource-hierarchy-levels. Esse parâmetro é uma lista de projetos, pastas e organizações em que residem as instâncias para as quais você quer automatizar a conectividade. A lista está no formato projects/PROJECT_ID, folders/FOLDER_ID ou organizations/ORGANIZATION_ID.

Por exemplo, o comando a seguir cria uma política de conexão de serviço para a classe de serviço
google-cloud-alloydb que aloca endereços IP da sub-rede managed-services. É possível criar até 10 endpoints do Private Service Connect com esta política. Os endpoints precisam ser criados em projetos que estejam na mesma organização da instância de serviço gerenciado. 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

Criar uma instância do AlloyDB

É possível criar uma instância com o Private Service Connect ativado e configurar a criação automática de endpoints usando o console, CLI gcloud ou o Terraform.

Console

  1. No console Google Cloud , acesse a página Clusters.

    Acessar Clusters

  2. Clique em Criar cluster.

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

  4. Digite uma senha. Anote essa senha porque você a usará neste guia de início rápido.

  5. Mantenha a versão padrão do banco de dados.

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

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

  8. Em Disponibilidade por zona, mantenha Zona única como a opção selecionada. Embora não recomendemos uma instância de zona única para produção, você vai usar uma única zona neste guia de início rápido para minimizar os custos. Para mais informações, consulte Reduzir custos usando instâncias básicas.

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

  10. Manter a conectividade de IP particular.

    1. Selecione Private Service Connect (PSC).
    2. Clique em Adicionar um endpoint.
    3. Selecione o projeto em que você quer criar o endpoint.
    4. Selecione a rede.
    5. Clique em Verificar política para conferir informações sobre a política de conexão de serviço.
  11. Mantenha as configurações padrão em Segurança de rede.

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

  13. Clique em Criar cluster. O AlloyDB pode levar vários minutos para criar o cluster e mostrá-lo na página Visão 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:

  • CLUSTER_ID: o ID do cluster que você está criando. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hífens.

  • PASSWORD: a senha a ser usada para o usuário padrão postgres.

  • REGION_ID: a região em que você quer colocar o cluster.

  • PROJECT_ID: o ID do projeto em que você quer colocar o cluster.

Esse comando inicia uma operação de longa duração, retornando um ID de operação.

Para criar a instância do AlloyDB, seja primária ou um pool de leitura para usar o Private Service Connect, use o comando gcloud alloydb instances create. Inclua o parâmetro --allowed-psc-projects para especificar quais projetos consumidores podem criar endpoints para se conectar a essa 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:

  • INSTANCE_ID: o ID da instância que você está criando. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hifens.
  • CPU_COUNT: o número de vCPUs que você quer para a instância. Os valores válidos incluem:
    • 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 a instância precisa ser de alta disponibilidade (HA), com nós em várias zonas. Valores válidos incluem:
    • REGIONAL: cria uma instância de alta disponibilidade com nós ativos e em espera separados e failover automatizado entre eles. Esse é o valor padrão, adequado para ambientes de produção.
    • ZONAL: cria uma instância básica, contendo apenas um nó e sem failover automático.
  • REGION_ID: a região em que você quer que a instância seja colocada.
  • CLUSTER_ID: o ID do cluster que você criou anteriormente.
  • ALLOWED_PROJECT_LIST: a lista separada por vírgulas de IDs ou números de projetos que você 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 de anexo de rede que você cria para conectividade de saída. Por exemplo: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
  • CONSUMER_NETWORK: o caminho para a rede VPC em que os endpoints do Private Service Connect precisam ser criados. Por exemplo, projects/my-host-project/global/networks/default. Essa opção é válida quando você cria endpoints automaticamente. Verifique se a política de conexão de serviço foi criada. É possível criar a política antes ou depois da instância.
  • CONSUMER_PROJECT: o projeto em que o endpoint do Private Service Connect é criado. Se você estiver usando uma rede VPC compartilhada, pode ser o projeto host ou o projeto de serviço. Todos os projetos especificados nos parâmetros de conexão automática são adicionados automaticamente aos projetos permitidos. Se quiser criar endpoints do Private Service Connect manualmente em algum projeto, adicione esses projetos à sua lista de projetos permitidos.

Um cluster secundário criado para um cluster principal ativado para o Private Service Connect herda automaticamente a configuração do Private Service Connect. Para mais informações, consulte Criar um cluster secundário.

Terraform

Para criar uma instância no cluster de banco 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 Comandos básicos do Terraform.

Recuperar o endpoint

Ao recuperar o endereço IP interno, que é o endpoint do Private Service Connect de uma instância, é possível usar esse endpoint para se conectar à instância.

Para conferir informações sobre uma instância, incluindo o endereço IP que é o endpoint 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, observe o valor que aparece ao lado do campo pscConfig:pscAutoConnections:ipAddress. Esse valor é o endereço IP interno que também é o endpoint do Private Service Connect para a instância.

Atualizar uma instância para criar endpoints automaticamente

Para atualizar uma instância e criar endpoints automaticamente, transmita o parâmetro --psc-auto-connections ao comando gcloud alloydb instances update.

Configurar a conectividade de saída

Se você quiser ativar a conectividade de saída para sua instância do AlloyDB com o Private Service Connect ativado, defina o URI do anexo de rede para a instância. Para mais informações, consulte Configurar a conectividade de saída.

Criar o endpoint manualmente

As próximas seções explicam como criar um endpoint do Private Service Connect manualmente.

Criar uma instância do AlloyDB

É possível criar uma instância com o Private Service Connect ativado e configurar a criação automática de endpoints usando o console, CLI gcloud ou o Terraform.

Console

  1. No console Google Cloud , acesse a página Clusters.

    Acessar Clusters

  2. Clique em Criar cluster.

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

  4. Digite uma senha. Anote essa senha porque você a usará neste guia de início rápido.

  5. Mantenha a versão padrão do banco de dados.

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

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

  8. Em Disponibilidade por zona, mantenha Zona única como a opção selecionada. Embora não recomendemos uma instância de zona única para produção, você vai usar uma única zona neste guia de início rápido para minimizar os custos. Para mais informações, consulte Reduzir custos usando instâncias básicas.

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

  10. Manter a conectividade de IP particular.

    1. Selecione Private Service Connect(PSC).
    2. Clique em Adicionar um endpoint.
    3. Selecione o projeto em que você quer criar o endpoint.
    4. Selecione a rede.
    5. Clique em Verificar política para conferir informações sobre a política de conexão de serviço.
  11. Mantenha as configurações padrão em Segurança de rede.

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

  13. Clique em Criar cluster. O AlloyDB pode levar vários minutos para criar o cluster e mostrá-lo na página Visão 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:

  • CLUSTER_ID: o ID do cluster que você está criando. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hífens.

  • PASSWORD: a senha a ser usada para o usuário padrão postgres.

  • REGION_ID: a região em que você quer colocar o cluster.

  • PROJECT_ID: o ID do projeto em que você quer colocar o cluster.

Esse comando inicia uma operação de longa duração, retornando um ID de 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:

  • INSTANCE_ID: o ID da instância que você está criando. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hifens.
  • CPU_COUNT: o número de vCPUs que você quer para a instância. Os valores válidos incluem:
    • 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 a instância precisa ser de alta disponibilidade (HA), com nós em várias zonas. Valores válidos incluem:
    • REGIONAL: cria uma instância de alta disponibilidade com nós ativos e em espera separados e failover automatizado entre eles. Esse é o valor padrão, adequado para ambientes de produção.
    • ZONAL: cria uma instância básica, contendo apenas um nó e sem failover automático.
  • REGION_ID: a região em que você quer que a instância seja colocada.
  • CLUSTER_ID: o ID do cluster que você criou anteriormente.
  • ALLOWED_PROJECT_LIST: a lista separada por vírgulas de IDs de projetos ou o número do projeto a que você 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 de anexo de rede que você cria para conectividade de saída. Por exemplo: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
  • CONSUMER_NETWORK: o caminho para a rede VPC de onde os endpoints do Private Service Connect precisam ser criados. Por exemplo, projects/my-host-project/global/networks/default. Essa opção é válida quando você cria endpoints automaticamente. Verifique se a política de conexão de serviço foi criada. É possível criar a política antes ou depois da instância.
  • CONSUMER_PROJECT: o projeto em que o endpoint do Private Service Connect é criado. Se você estiver usando uma rede VPC compartilhada, pode ser o projeto host ou o projeto de serviço. Todos os projetos especificados nos parâmetros de conexão automática são adicionados automaticamente aos projetos permitidos. Se quiser criar endpoints do Private Service Connect manualmente em algum projeto, adicione esses projetos à sua lista de projetos permitidos.

Um cluster secundário criado para um cluster principal ativado para o Private Service Connect herda automaticamente a configuração do Private Service Connect. Para mais informações, consulte Criar um cluster secundário.

Terraform

Para criar uma instância no cluster de banco 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 Comandos básicos do Terraform.

Acessar o anexo de serviço

Depois de criar uma instância do AlloyDB com o Private Service Connect ativado, acesse o URL do anexo de serviço e use-o para criar o endpoint 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:

  • INSTANCE_ID: o ID da instância.
  • CLUSTER_ID: o ID do cluster.
  • REGION_ID: a região em que o cluster do AlloyDB é implantado.

Confira a seguir 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.

Criar um endpoint do Private Service Connect

Para criar um endpoint do Private Service Connect, transmita o URL do anexo de serviço junto com um nome de endpoint exclusivo. Para mais informações sobre como criar um endpoint do Private Service Connect, consulte Criar um endpoint.

Também é possível reservar um endereço IP interno para o endpoint do Private Service Connect usando o comando gcloud compute addresses create e usar o endereço IP reservado ao criar o endpoint.

Configurar a conectividade de saída

Para ativar a conectividade de saída, defina o URI de vinculação de rede ao criar ou atualizar uma instância do AlloyDB. Esse URI permite a conectividade segura entre seu projeto e a instância do AlloyDB durante operações de saída, como migrações.

Criar o anexo de rede

É possível criar um anexo de rede que aceite conexões automaticamente(ACCEPT_AUTOMATIC) ou manualmente (ACCEPT_MANUAL). Para mais informações sobre como criar um anexo de rede, consulte Criar e gerenciar anexos de rede.

Se você criar um anexo de rede que aceita conexões automaticamente, não será necessário definir uma lista de projetos aceitos explicitamente. Para aceitar conexões manualmente, adicione o número do projeto de propriedade do serviço em que a instância do AlloyDB está localizada à lista de projetos aceitos.

Para encontrar o número do projeto de propriedade do serviço, execute o seguinte comando:

gcloud alpha alloydb clusters describe CLUSTER_ID --region=REGION_ID

Veja a seguir um exemplo de resposta:

pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012

Depois de identificar o número do projeto de propriedade do serviço, adicione o projeto à lista de projetos aceitos e crie o anexo de rede.

Verifique se a região do anexo de rede é a mesma da instância do AlloyDB. Além disso, a sub-rede usada para criar a vinculação de rede precisa 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.

Atualizar uma instância para conectividade de saída

Para ativar a conectividade de saída de uma instância do AlloyDB com o Private Service Connect ativado, transmita o parâmetro --psc-network-attachment-uri ao comando gcloud alloydb instances update.

Não é possível atualizar as instâncias do AlloyDB criadas antes de 1º de março de 2025 para ativar conexões de saída. Como alternativa, recomendamos usar uma das seguintes opções:


Desativar a conectividade de saída

Para desativar a conectividade de saída de uma instância do AlloyDB, transmita o parâmetro --clear-psc-network-attachment-uri ao comando gcloud alloydb instances update.

Conectar-se a uma instância do AlloyDB

É possível se conectar a uma instância do AlloyDB com o Private Service Connect ativado usando uma das seguintes opções:

Para métodos que usam um registro DNS, crie o registro em uma zona DNS particular na rede VPC correspondente. Depois de criar um registro DNS, você pode usá-lo para se conectar a uma instância ativada para o Private Service Connect.

Configurar uma zona gerenciada de DNS e um registro DNS

Para configurar uma zona gerenciada de DNS e um registro DNS na sua rede, siga estas etapas:

  1. Para ver informações resumidas 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:

    • INSTANCE_ID: o ID da instância.
    • CLUSTER_ID: o ID do cluster.

    Na resposta, verifique se o nome DNS é exibido. O nome DNS tem o padrão INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog..

  2. Para criar uma zona de DNS particular, use o comando gcloud dns managed-zones create. Essa zona está associada à rede VPC usada para se conectar à instância do AlloyDB por meio do endpoint 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:

    • ZONE_NAME: o nome da zona de 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 compartilhada, defina o caminho totalmente qualificado da rede VPC. Por exemplo, projects/cymbal-project/global/networks/shared-vpc-network.
  3. Depois de criar o endpoint do Private Service Connect, use o comando gcloud dns record-sets create para criar um registro DNS na zona:

    gcloud dns record-sets create DNS_NAME \
    --project=PROJECT_ID \
    --type=RRSET_TYPE \
    --rrdatas=RR_DATA \
    --zone=ZONE_NAME

    Substitua:

    • DNS_NAME: o nome de DNS que você recuperou anteriormente neste procedimento.
    • RRSET_TYPE: o tipo de registro de recurso do conjunto de registros DNS (por exemplo, A).
    • RR_DATA: o endereço IP alocado para o endpoint do Private Service Connect (por exemplo, 198.51.100.5). Também é possível inserir vários valores, como rrdata1 rrdata2 rrdata3 (por exemplo, 10.1.2.3 10.2.3.4 10.3.4.5).

Conectar-se diretamente usando um registro DNS

Depois de criar um endpoint do Private Service Connect e um registro DNS, é possível se conectar diretamente usando o registro DNS.

  1. Para recuperar o registro DNS do endpoint do Private Service Connect, use o comando gcloud compute addresses describe:

    gcloud compute addresses describe DNS_RECORD \
    --project=PROJECT_ID \
    --region=REGION_NAME

    Substitua:

    • DNS_RECORD: o registro DNS do endpoint.
    • PROJECT_ID: o ID ou número do projeto do Google Cloud projeto que contém o endpoint.
    • REGION_NAME: o nome da região do endpoint.
  2. Para se conectar à instância do AlloyDB, use o registro DNS.

    psql -U USERNAME -h DNS_RECORD

    Substitua:

    • USERNAME: o nome do usuário que está se conectando à instância.
    • DNS_RECORD: o registro DNS do endpoint.

Conectar usando o proxy de autenticação do AlloyDB

O proxy de autenticação do AlloyDB é um conector que permite fazer conexões autorizadas e criptografadas com bancos de dados do AlloyDB. O proxy de autenticação do AlloyDB funciona com um cliente local em execução no ambiente local. O aplicativo se comunica com o proxy de autenticação do AlloyDB usando o protocolo de banco de dados padrão do seu banco de dados.

Quando você define a flag --psc ao iniciar o cliente do proxy de autenticação, o proxy de autenticação do AlloyDB usa o registro DNS criado para se conectar à instância com o Private Service Connect ativado.

Inicie o cliente do proxy de autenticação transmitindo o URI da instância recuperado com o comando gcloud alloydb instances list e defina a flag --psc.

Para mais informações sobre como se conectar a uma instância usando o proxy de autenticação, consulte Conectar usando o proxy de autenticação.

Conectar usando os conectores do AlloyDB Language

Os conectores de linguagem do AlloyDB são bibliotecas que fornecem mTLS automatizado com TLS 1.3 e autorização do Identity and Access Management (IAM) ao se conectar a uma instância do AlloyDB.

Depois que o conector de linguagem determina que a instância é compatível com o Private Service Connect, ele usa o registro DNS criado para se conectar à instância.

Java

Se você estiver usando o Private Service Connect para se conectar à instância do AlloyDB, inclua o seguinte:

config.addDataSourceProperty("alloydbIpType", "PSC");

Para mais informações sobre como usar o endpoint do Private Service Connect nos conectores de linguagem Java, consulte o repositório do GitHub.

Python (pg8000)

Se você estiver usando o Private Service Connect para se conectar à 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 como usar o endpoint do Private Service Connect nos conectores de linguagem Python, consulte o repositório do GitHub.

Python (asyncpg)

Se você estiver usando o Private Service Connect para se conectar à 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 como usar o endpoint do Private Service Connect nos conectores de linguagem Python, consulte o repositório do GitHub.

Go (pgx)

Se você estiver usando o Private Service Connect para se conectar à instância do AlloyDB, inclua o seguinte:

d.Dial(ctx, instURI, alloydbconn.WithPSC())

Para mais informações sobre como usar o endpoint do Private Service Connect nos conectores da linguagem Go, consulte o repositório do GitHub.

Go (database/sql)

Se você estiver usando o Private Service Connect para se conectar à instância do AlloyDB, inclua o seguinte:

  cleanup, err := pgxv5.RegisterDriver(
    "alloydb",
    alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC())
)

Para mais informações sobre como usar o endpoint do Private Service Connect nos conectores da linguagem Go, consulte o repositório do GitHub.

Conectar diretamente por um endereço IP interno

Depois de criar um endpoint do Private Service Connect, é possível se conectar diretamente a uma instância do AlloyDB usando o endereço IP configurado.

  1. Para recuperar o endereço IP do endpoint do Private Service Connect, use o comando gcloud compute addresses describe:

    gcloud compute addresses describe ADDRESS_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME

    Substitua:

    • ADDRESS_NAME: o nome do endereço IP do endpoint.
    • PROJECT_ID: o ID ou número do projeto do Google Cloud projeto que contém o endpoint.
    • REGION_NAME: o nome da região do endpoint.
  2. Para se conectar à instância do AlloyDB, use o endereço IP interno.

    psql -U USERNAME -h IP_ADDRESS"

    Substitua:

    • USERNAME: o nome do usuário que está se conectando à instância.
    • IP_ADDRESS: o endereço IP do endpoint.

Limitações

  • É possível configurar até 20 endpoints do Private Service Connect que se conectam ao anexo de serviço de uma instância do AlloyDB com o Private Service Connect ativado.
  • Não é possível usar a flag --network ao criar um cluster com o Private Service Connect ativado porque ela está associada ao acesso a serviços privados.
  • Não é possível ativar ou desativar o Private Service Connect em uma instância.
  • Não é possível configurar uma instância com o Private Service Connect ativado para usar o Acesso a serviços privados.