Conéctate a una instancia mediante Private Service Connect

En esta página, se describe cómo usar Private Service Connect para conectarte a una instancia de AlloyDB para PostgreSQL.

Puedes usar Private Service Connect para conectarte a una instancia principal de AlloyDB o a cualquiera de sus réplicas de lectura, o bien a una instancia secundaria de AlloyDB desde varias redes de nube privada virtual (VPC) que pertenezcan a organizaciones, grupos, equipos o proyectos diferentes.

Roles requeridos

Debes otorgar todos los siguientes roles a un usuario de tu red de VPC para que pueda conectarse a una instancia de AlloyDB.

Rol Descripción
compute.networkAdmin Otorga control total sobre la red de VPC que inicia una conexión a una instancia de AlloyDB. Si usas Private Service Connect para conectarte a una instancia de AlloyDB desde varias redes de VPC, cada red tiene su propio administrador.
dns.admin Otorga control total sobre los recursos de Cloud DNS, lo que incluye zonas y registros DNS.
alloydb.admin Proporciona control total de una instancia de AlloyDB y controla la instancia durante su ciclo de vida.
alloydb.databaseUser (opcional) Proporciona acceso a la instancia de AlloyDB. Si te conectas a través del cliente del proxy de autenticación de AlloyDB, debes tener el rol de cliente de AlloyDB. Si te conectas directamente, no necesitas roles ni permisos de Identity and Access Management (IAM).
Custom AlloyDB role (opcional) Si usas un rol personalizado, además de otorgar los roles compute.networkAdmin y dns.admin, otorga los siguientes permisos:
  • alloydb.clusters.create: Proporciona acceso para habilitar Private Service Connect en un clúster.
  • alloydb.instances.create y alloydb.instances.update: Proporcionan acceso para agregar una lista de proyectos permitidos y establecer un URI de adjunto de red para una instancia.

Crear un extremo de Private Service Connect

Los extremos de Private Service Connect son direcciones IP internas en una red de VPC de consumidor a las que pueden acceder directamente los clientes de esa red. Los clientes pueden usar estos extremos para conectarse a instancias de AlloyDB.

Para que AlloyDB cree el extremo de Private Service Connect automáticamente, haz lo siguiente:

También puedes crear el extremo de Private Service Connect de forma manual. Para obtener más información, consulta Crea el extremo de forma manual.

Crea el extremo automáticamente

En las siguientes secciones, se explica cómo configurar tu instancia para permitir que AlloyDB cree el extremo de Private Service Connect automáticamente.

Crea una política de conexión de servicio

Puedes volver a usar una política de conexión de servicio existente o crear una con la consola de Google Cloud o Google Cloud CLI.

Una política de conexión de servicio te permite autorizar una clase de servicio especificada para crear un extremo de Private Service Connect en tu red de VPC del consumidor. Puedes usar la política de conexión de servicio para permitir que AlloyDB cree automáticamente extremos de Private Service Connect.

Console

  1. En la Google Cloud consola, ve a la página Private Service Connect.

    Ir a Private Service Connect

  2. Haz clic en la pestaña Políticas de conexión.

  3. Haz clic en Crear política de conexión.

  4. Ingresa un Nombre para la política de conexión.

  5. Para especificar la clase de servicio, haz lo siguiente:

    1. En Clase de servicio de origen, selecciona Servicios de Google.
    2. En el menú Clase de servicio, selecciona google-cloud-alloydb porque AlloyDB es el servicio administrado para la política de conexión.
  6. En la sección Alcance de los extremos de destino, selecciona una Red y una Región a las que se aplicará esta política.

  7. En la sección Política, selecciona una o más subredes en el menú Subredes. Las subredes se usan para asignar direcciones IP a los extremos.

  8. Especifica un Límite de conexión para la política (opcional). El límite determina cuántos extremos puede crear AlloyDB para esta política de conexión. Si no especificas un límite de conexión, no habrá límite.

  9. Haz clic en Crear política.

gcloud

Para crear una política de conexión de servicio, usa el 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

Reemplaza lo siguiente:

  • POLICY_NAME: el nombre de la política de conexión del servicio.
  • NETWORK: Es la red a la que se aplica esta política.
  • PROJECT_ID: el ID del proyecto o el número del proyecto de la red de VPC. En el caso de las redes de VPC compartida, debes implementar políticas de conexión de servicio en el proyecto host, ya que estas políticas no son compatibles con los proyectos de servicio.
  • REGION: Es la región a la que se aplica esta política. Debe existir la misma política para cada región en la que desees automatizar la conectividad del servicio.
  • SERVICE_CLASS: el identificador de recursos proporcionado por el productor de la clase de servicio. En el caso de AlloyDB, la clase de servicio es google-cloud-alloydb.
  • SUBNETS: una o más subredes de consumidor regulares que se usan para asignar direcciones IP a los extremos de Private Service Connect. Estas direcciones IP se asignan automáticamente y se devuelven al grupo de la subred a medida que se crean y borran las instancias de servicio administrado. Las subredes deben estar en la misma región que la política de conexión de servicio. Si varias políticas de conexión comparten la misma región, puedes volver a usar la misma subred en esas políticas. Puedes ingresar varias subredes en una lista separada por comas.
  • LIMIT: Es la cantidad máxima de extremos que puedes crear con esta política. Si no especificas un límite, no habrá límite.
  • DESCRIPTION: Es una descripción opcional de la política de conexión de servicio.
  • PRODUCER_INSTANCE_LOCATION: Especifica si la política automatiza las conexiones a las instancias de AlloyDB. Puedes establecer este valor de una de las siguientes maneras:

    • none (predeterminado): La instancia de AlloyDB se encuentra en el mismo proyecto que la política de conexión de servicio (o, en el caso de la VPC compartida, en proyectos conectados).
    • custom-resource-hierarchy-levels: Requiere que establezcas la ruta de ubicación de Resource Manager para los proyectos para los que deseas automatizar la conectividad a través del parámetro allowed-google-producers-resource-hierarchy-level.
  • LIST_OF_NODES: Establece este parámetro si la ubicación de tu instancia de productor está establecida en custom-resource-hierarchy-levels. Este parámetro es una lista de proyectos, carpetas y organizaciones en los que residen las instancias para las que deseas automatizar la conectividad. La lista tiene el formato projects/PROJECT_ID, folders/FOLDER_ID o organizations/ORGANIZATION_ID.

Por ejemplo, el siguiente comando crea una política de conexión de servicio para la clase de servicio
google-cloud-alloydb que asigna direcciones IP desde la subred managed-services. Se puede crear un máximo de 10 extremos de Private Service Connect con esta política. Los extremos deben crearse en proyectos que se encuentren en la misma organización que la instancia de servicio administrado. La instancia de AlloyDB se encuentra en el proyecto 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

Crea una instancia de AlloyDB

Puedes crear una instancia con Private Service Connect habilitado para ella y configurarla para que cree extremos automáticamente con la consola, gcloud CLI o Terraform.

Console

  1. En la consola de Google Cloud , ve a la página Clústeres.

    Ir a los clústeres

  2. Haga clic en Crear clúster.

  3. En ID de clúster, ingresa my-cluster.

  4. Ingresa una contraseña. Toma nota de esta contraseña porque la usarás en esta guía de inicio rápido.

  5. Conserva la versión de la base de datos predeterminada.

  6. Selecciona la región us-central1 (Iowa).

  7. Conserva el ID de instancia predeterminado, my-cluster-primary.

  8. En Disponibilidad zonal, conserva Zona única como la opción seleccionada. Si bien no recomendamos una instancia de una sola zona para la producción, en esta guía de inicio rápido se usa una sola zona para minimizar los costos. Para obtener más información, consulta Reduce los costos con instancias básicas.

  9. Selecciona el tipo de máquina 2 vCPU, 16 GB.

  10. Conserva la conectividad de IP privada.

    1. Selecciona Private Service Connect (PSC).
    2. Haz clic en Agregar un extremo.
    3. Selecciona el proyecto en el que deseas crear el extremo.
    4. Selecciona la Red.
    5. Haz clic en Check policy para obtener información sobre la política de conexión de servicio.
  11. Conserva la configuración predeterminada en Seguridad de red.

  12. No realices cambios en Mostrar opciones avanzadas.

  13. Haga clic en Crear clúster. AlloyDB puede tardar varios minutos en crear el clúster y mostrarlo en la página Overview del clúster principal.

gcloud

Para crear el clúster, usa el comando gcloud alloydb clusters create.

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

Reemplaza lo siguiente:

  • CLUSTER_ID: Es el ID del clúster que creas. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.

  • PASSWORD: Es la contraseña que se usará para el usuario postgres predeterminado.

  • REGION_ID: Es la región en la que deseas colocar el clúster.

  • PROJECT_ID: Es el ID del proyecto en el que deseas colocar el clúster.

Este comando inicia una operación de larga duración y muestra un ID de operación.

Para crear la instancia de AlloyDB, ya sea principal o un grupo de lectura para usar Private Service Connect, usa el comando gcloud alloydb instances create. Asegúrate de incluir el parámetro --allowed-psc-projects para especificar qué proyectos de consumidor pueden crear extremos para conectarse a esta instancia.

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

Reemplaza lo siguiente:

  • INSTANCE_ID: Es el ID de la instancia que estás creando. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.
  • CPU_COUNT: Es la cantidad de CPU virtuales que deseas para la instancia. Los valores válidos incluyen lo siguiente:
    • 2: 2 CPU virtuales, 16 GB de RAM
    • 4: 4 CPUs virtuales y 32 GB de RAM
    • 8: 8 CPU virtuales, 64 GB de RAM
    • 16: 16 CPU virtuales, 128 GB de RAM
    • 32: 32 CPU virtuales y 256 GB de RAM
    • 64: 64 CPU virtuales y 512 GB de RAM
    • 96: 96 CPU virtuales, 768 GB de RAM
    • 128: 128 CPU virtuales y 864 GB de RAM
  • AVAILABILITY: Indica si esta instancia debe tener alta disponibilidad (HA), con nodos en varias zonas. Estos son algunos de los valores válidos:
    • REGIONAL: Crea una instancia de HA con nodos activos y en espera separados, y conmutación por error automatizada entre ellos. Este es el valor predeterminado, adecuado para entornos de producción.
    • ZONAL: Crea una instancia básica que contiene solo un nodo y no tiene conmutación por error automática.
  • REGION_ID: Es la región en la que deseas colocar la instancia.
  • CLUSTER_ID: Es el ID del clúster que creaste antes.
  • ALLOWED_PROJECT_LIST: Es la lista separada por comas de los IDs de proyectos o los números de proyectos a los que deseas permitir el acceso a la instancia, por ejemplo, my-project-1, 12345,my-project-n.
  • NETWORK_ATTACHMENT_URI (opcional): Es el nombre completo del recurso del URI de adjunto de red que creas para la conectividad saliente. Por ejemplo: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
  • CONSUMER_NETWORK: Es la ruta de acceso a la red de VPC en la que se deben crear los extremos de Private Service Connect. Por ejemplo: projects/my-host-project/global/networks/default. Esta opción se aplica cuando creas extremos automáticamente. Asegúrate de que se haya creado la política de conexión de servicio. Puedes crear la política antes o después de crear la instancia.
  • CONSUMER_PROJECT: Es el proyecto en el que se crea el extremo de Private Service Connect. Si usas una red de VPC compartida, puede ser el proyecto host o el proyecto de servicio. Todos los proyectos que especifiques en los parámetros de conexión automática se agregarán automáticamente a tus proyectos permitidos. De manera opcional, para los proyectos en los que desees crear extremos de Private Service Connect de forma manual, puedes agregarlos a tu lista de proyectos permitidos.

Un clúster secundario creado para un clúster principal habilitado para Private Service Connect hereda automáticamente la configuración de Private Service Connect. Para obtener más información, consulta Crea un clúster secundario.

Terraform

Para crear una instancia dentro de tu clúster de bases de datos, usa un recurso de 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 obtener más información sobre cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

Recupera el extremo

Si recuperas la dirección IP interna, que es el extremo de Private Service Connect para una instancia, puedes usar este extremo para conectarte a la instancia.

Para ver información sobre una instancia, incluida la dirección IP que es el extremo de Private Service Connect para la instancia, usa el comando gcloud alloydb instances describe:

gcloud alloydb instances describe INSTANCE_NAME \
--project=PROJECT_ID \
--format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'

Realiza los siguientes reemplazos:

En la respuesta, anota el valor que aparece junto al campo pscConfig:pscAutoConnections:ipAddress. Este valor es la dirección IP interna que también es el extremo de Private Service Connect para la instancia.

Actualiza una instancia para crear extremos automáticamente

Para actualizar una instancia y crear extremos automáticamente, pasa el parámetro --psc-auto-connections al comando gcloud alloydb instances update.

Configura la conectividad saliente

Si deseas habilitar la conectividad saliente para tu instancia de AlloyDB con Private Service Connect habilitado, debes establecer el URI del adjunto de red para la instancia. Para obtener más información, consulta Configura la conectividad saliente.

Crea el extremo de forma manual

En las siguientes secciones, se explica cómo crear un extremo de Private Service Connect de forma manual.

Crea una instancia de AlloyDB

Puedes crear una instancia con Private Service Connect habilitado para ella y configurarla para que cree extremos automáticamente con la consola, gcloud CLI o Terraform.

Console

  1. En la consola de Google Cloud , ve a la página Clústeres.

    Ir a los clústeres

  2. Haga clic en Crear clúster.

  3. En ID de clúster, ingresa my-cluster.

  4. Ingresa una contraseña. Toma nota de esta contraseña porque la usarás en esta guía de inicio rápido.

  5. Conserva la versión de la base de datos predeterminada.

  6. Selecciona la región us-central1 (Iowa).

  7. Conserva el ID de instancia predeterminado, my-cluster-primary.

  8. En Disponibilidad zonal, conserva Zona única como la opción seleccionada. Si bien no recomendamos una instancia de una sola zona para la producción, en esta guía de inicio rápido se usa una sola zona para minimizar los costos. Para obtener más información, consulta Reduce los costos con instancias básicas.

  9. Selecciona el tipo de máquina 2 vCPU, 16 GB.

  10. Conserva la conectividad de IP privada.

    1. Selecciona Private Service Connect(PSC).
    2. Haz clic en Agregar un extremo.
    3. Selecciona el proyecto en el que deseas crear el extremo.
    4. Selecciona la Red.
    5. Haz clic en Check policy para obtener información sobre la política de conexión de servicio.
  11. Conserva la configuración predeterminada en Seguridad de red.

  12. No realices cambios en Mostrar opciones avanzadas.

  13. Haga clic en Crear clúster. AlloyDB puede tardar varios minutos en crear el clúster y mostrarlo en la página Overview del clúster principal.

gcloud

Para crear el clúster, usa el comando gcloud alloydb clusters create.

gcloud alloydb clusters create CLUSTER_ID \
  --password=PASSWORD \
  --region=REGION_ID \
  --project=PROJECT_ID \
  --enable-private-service-connect

Reemplaza lo siguiente:

  • CLUSTER_ID: Es el ID del clúster que creas. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.

  • PASSWORD: Es la contraseña que se usará para el usuario postgres predeterminado.

  • REGION_ID: Es la región en la que deseas colocar el clúster.

  • PROJECT_ID: Es el ID del proyecto en el que deseas colocar el clúster.

Este comando inicia una operación de larga duración y muestra un ID de operación.

Para crear la instancia principal, usa el 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 \

Reemplaza lo siguiente:

  • INSTANCE_ID: Es el ID de la instancia que estás creando. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.
  • CPU_COUNT: Es la cantidad de CPU virtuales que deseas para la instancia. Los valores válidos incluyen lo siguiente:
    • 2: 2 CPU virtuales, 16 GB de RAM
    • 4: 4 CPUs virtuales y 32 GB de RAM
    • 8: 8 CPU virtuales, 64 GB de RAM
    • 16: 16 CPU virtuales, 128 GB de RAM
    • 32: 32 CPU virtuales y 256 GB de RAM
    • 64: 64 CPU virtuales y 512 GB de RAM
    • 96: 96 CPU virtuales, 768 GB de RAM
    • 128: 128 CPU virtuales y 864 GB de RAM
  • AVAILABILITY: Indica si esta instancia debe tener alta disponibilidad (HA), con nodos en varias zonas. Estos son algunos de los valores válidos:
    • REGIONAL: Crea una instancia de HA con nodos activos y en espera separados, y conmutación por error automatizada entre ellos. Este es el valor predeterminado, adecuado para entornos de producción.
    • ZONAL: Crea una instancia básica que contiene solo un nodo y no tiene conmutación por error automática.
  • REGION_ID: Es la región en la que deseas colocar la instancia.
  • CLUSTER_ID: Es el ID del clúster que creaste antes.
  • ALLOWED_PROJECT_LIST: Es la lista separada por comas de los IDs de proyectos o el número de proyecto al que deseas permitir el acceso a la instancia, por ejemplo, my-project-1, 12345,my-project-n.
  • NETWORK_ATTACHMENT_URI (opcional): Es el nombre completo del recurso del URI de adjunto de red que creas para la conectividad saliente. Por ejemplo: projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
  • CONSUMER_NETWORK: Es la ruta de acceso a la red de VPC desde la que se deben crear los extremos de Private Service Connect. Por ejemplo: projects/my-host-project/global/networks/default. Esta opción se aplica cuando creas extremos automáticamente. Asegúrate de que se haya creado la política de conexión de servicio. Puedes crear la política antes o después de crear la instancia.
  • CONSUMER_PROJECT: Es el proyecto en el que se crea el extremo de Private Service Connect. Si usas una red de VPC compartida, puede ser el proyecto host o el proyecto de servicio. Todos los proyectos que especifiques en los parámetros de conexión automática se agregarán automáticamente a tus proyectos permitidos. De manera opcional, para los proyectos en los que desees crear extremos de Private Service Connect de forma manual, puedes agregarlos a tu lista de proyectos permitidos.

Un clúster secundario creado para un clúster principal habilitado para Private Service Connect hereda automáticamente la configuración de Private Service Connect. Para obtener más información, consulta Crea un clúster secundario.

Terraform

Para crear una instancia dentro de tu clúster de bases de datos, usa un recurso de 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 obtener más información sobre cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

Obtén el adjunto del servicio

Después de crear una instancia de AlloyDB con Private Service Connect habilitado, obtén la URL del adjunto de servicio y úsala para crear el extremo de Private Service Connect.

Usa el comando gcloud alloydb instances describe para ver los detalles de una instancia.

gcloud alloydb instances describe INSTANCE_ID \
 --cluster=CLUSTER_ID \
 --region=REGION_ID

Reemplaza lo siguiente:

  • INSTANCE_ID: el ID de la instancia
  • CLUSTER_ID: Es el ID del clúster.
  • REGION_ID: Es la región en la que se implementa el clúster de AlloyDB.

A continuación, se muestra una respuesta de muestra para el 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."
          }

El parámetro serviceAttachmentLink contiene el valor de la URL del adjunto de servicio.

Crear un extremo de Private Service Connect

Para crear un extremo de Private Service Connect, pasa la URL del adjunto de servicio junto con un nombre de extremo único. Para obtener más información sobre cómo crear un extremo de Private Service Connect, consulta Crea un extremo.

También puedes reservar una dirección IP interna para el extremo de Private Service Connect con el comando gcloud compute addresses create y, luego, usar la dirección IP reservada cuando crees el extremo.

Configura la conectividad saliente

Para habilitar la conectividad saliente, establece el URI de la vinculación de red cuando crees o actualices una instancia de AlloyDB. Este URI permite la conectividad segura entre tu proyecto y la instancia de AlloyDB durante las operaciones salientes, como las migraciones.

Crea el adjunto de red

Puedes crear un adjunto de red que acepte conexiones de forma automática(ACCEPT_AUTOMATIC) o manual (ACCEPT_MANUAL). Para obtener más información sobre cómo crear un adjunto de red, consulta Crea y administra adjuntos de red.

Si eliges crear un adjunto de red que acepte conexiones automáticamente, no es necesario que establezcas una lista de proyectos aceptados de forma explícita. Para aceptar conexiones de forma manual, debes agregar el número de proyecto propiedad del servicio del proyecto en el que se encuentra tu instancia de AlloyDB a la lista de proyectos aceptados.

Para encontrar el número de proyecto propiedad del servicio, ejecuta el siguiente comando:

gcloud alpha alloydb clusters describe CLUSTER_ID --region=REGION_ID

A continuación, se muestra una respuesta de ejemplo:

pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012

Después de identificar el número del proyecto propiedad del servicio, agrégalo a la lista de proyectos aceptados y, luego, crea el adjunto de red.

Asegúrate de que la región del adjunto de red sea la misma que la de la instancia de AlloyDB. Además, la subred que se usa para crear la conexión de red debe pertenecer a los rangos de IP de RFC 1918, que son 10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16.

Actualiza una instancia para la conectividad saliente

Para habilitar la conectividad saliente de una instancia de AlloyDB existente con Private Service Connect habilitado, pasa el parámetro --psc-network-attachment-uri al comando gcloud alloydb instances update.

Las instancias de AlloyDB creadas antes del 1 de marzo de 2025 no se pueden actualizar para habilitar las conexiones salientes. Como alternativa, te recomendamos que uses cualquiera de las siguientes opciones:


Desactiva la conectividad saliente

Para desactivar la conectividad saliente de una instancia de AlloyDB existente, pasa el parámetro --clear-psc-network-attachment-uri al comando gcloud alloydb instances update.

Conéctate a una instancia de AlloyDB

Puedes conectarte a una instancia de AlloyDB con Private Service Connect habilitado con una de las siguientes opciones:

Debes configurar un registro DNS para que los conectores de idiomas usen Private Service Connect.

En el caso de los métodos que usan un registro DNS, debes crear el registro en una zona del DNS privado en la red de VPC correspondiente. Después de crear un registro DNS, puedes usarlo para conectarte a una instancia habilitada para Private Service Connect.

Configura una zona administrada de DNS y un registro DNS

Para configurar una zona administrada de DNS y un registro DNS en tu red, sigue estos pasos:

  1. Para ver información resumida sobre una instancia de AlloyDB, incluido el nombre de DNS de la instancia, usa el comando gcloud alloydb instances describe:

    gcloud alloydb instances describe INSTANCE_ID \
    --cluster=CLUSTER_ID --region=REGION_ID

    Reemplaza lo siguiente:

    • INSTANCE_ID: El ID de la instancia.
    • CLUSTER_ID: ID del clúster.

    En la respuesta, verifica que aparezca el nombre de DNS. El nombre de DNS tiene el patrón INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog..

  2. Para crear una zona del DNS privada, usa el comando gcloud dns managed-zones create. Esta zona está asociada con la red de VPC que se usa para conectarse a la instancia de AlloyDB a través del extremo de Private Service Connect.

    gcloud dns managed-zones create ZONE_NAME \
    --project=PROJECT_ID \
    --description=DESCRIPTION \
    --dns-name=DNS_NAME \
    --networks=NETWORK_NAME \
    --visibility=private

    Reemplaza lo siguiente:

    • ZONE_NAME: Es el nombre de la zona de DNS.
    • PROJECT_ID: Es el ID o el número del proyecto de Google Cloud que contiene la zona.
    • DESCRIPTION: Una descripción de la zona (por ejemplo, una zona de DNS para la instancia de AlloyDB)
    • DNS_NAME: el nombre de DNS de la zona, como INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog.
    • NETWORK_NAME: Es el nombre de la red de VPC. En el caso de una red de VPC compartida, se debe establecer en la ruta de acceso completamente calificada de la red de VPC, por ejemplo, projects/cymbal-project/global/networks/shared-vpc-network.
  3. Después de crear el extremo de Private Service Connect, para crear un registro DNS en la zona, usa el 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

    Reemplaza lo siguiente:

    • DNS_NAME: el nombre de DNS que recuperaste antes en este procedimiento.
    • RRSET_TYPE: El tipo de registro de recursos del conjunto de registros DNS (por ejemplo, A).
    • RR_DATA: Es la dirección IP asignada para el extremo de Private Service Connect (por ejemplo, 198.51.100.5). También puedes ingresar varios valores, como rrdata1 rrdata2 rrdata3 (por ejemplo, 10.1.2.3 10.2.3.4 10.3.4.5).

Conéctate directamente con un registro DNS

Después de crear un extremo de Private Service Connect y un registro DNS, puedes conectarte directamente con el registro DNS.

  1. Para recuperar el registro DNS del extremo de Private Service Connect, usa el comando gcloud compute addresses describe:

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

    Reemplaza lo siguiente:

    • DNS_RECORD: Es el registro DNS del extremo.
    • PROJECT_ID: Es el ID o el número del proyecto Google Cloud que contiene el extremo.
    • REGION_NAME: es el nombre de la región para el extremo.
  2. Para conectarte a la instancia de AlloyDB, usa el registro DNS.

    psql -U USERNAME -h DNS_RECORD

    Reemplaza lo siguiente:

    • USERNAME: El nombre del usuario que se conecta a la instancia.
    • DNS_RECORD: Es el registro DNS del extremo.

Conéctate con el proxy de autenticación de AlloyDB

El proxy de autenticación de AlloyDB es un conector que te permite establecer conexiones autorizadas y encriptadas a bases de datos de AlloyDB. El proxy de autenticación de AlloyDB funciona con un cliente local que se ejecuta en el entorno local. Tu aplicación se comunica con el proxy de autenticación de AlloyDB a través del protocolo de base de datos estándar que usa tu base de datos.

Cuando configuras la marca --psc mientras inicias el cliente del proxy de autenticación, el proxy de autenticación de AlloyDB usa el registro DNS que creaste para conectarse a la instancia habilitada para Private Service Connect.

Asegúrate de iniciar el cliente del proxy de autenticación pasando el URI de la instancia que recuperas con el comando gcloud alloydb instances list y establece la marca --psc.

Para obtener más información sobre cómo conectarte a una instancia con el proxy de autenticación, consulta Conéctate con el proxy de autenticación.

Conéctate con los conectores de lenguaje de AlloyDB

Los conectores de lenguaje de AlloyDB son bibliotecas que proporcionan mTLS automatizada con TLS 1.3 y autorización de Identity and Access Management (IAM) cuando se conectan a una instancia de AlloyDB.

Después de que el conector de idiomas determina que la instancia admite Private Service Connect, usa el registro DNS que creaste para conectarse a la instancia.

Java

Si usas Private Service Connect para conectarte a tu instancia de AlloyDB, incluye lo siguiente:

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

Para obtener más información sobre el uso del extremo de Private Service Connect en los conectores de lenguaje de Java, consulta el repositorio de GitHub.

Python (pg8000)

Si usas Private Service Connect para conectarte a tu instancia de AlloyDB, incluye lo siguiente:

  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 obtener más información sobre el uso del extremo de Private Service Connect en los conectores de lenguaje de Python, consulta el repositorio de GitHub.

Python (asyncpg)

Si usas Private Service Connect para conectarte a tu instancia de AlloyDB, incluye lo siguiente:

  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 obtener más información sobre el uso del extremo de Private Service Connect en los conectores de lenguaje de Python, consulta el repositorio de GitHub.

Go (pgx)

Si usas Private Service Connect para conectarte a tu instancia de AlloyDB, incluye lo siguiente:

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

Para obtener más información sobre el uso del extremo de Private Service Connect en los conectores del lenguaje Go, consulta el repositorio de GitHub.

Go (database/sql)

Si usas Private Service Connect para conectarte a tu instancia de AlloyDB, incluye lo siguiente:

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

Para obtener más información sobre el uso del extremo de Private Service Connect en los conectores del lenguaje Go, consulta el repositorio de GitHub.

Conéctate directamente a través de una dirección IP interna

Después de crear un extremo de Private Service Connect, puedes conectarte directamente a una instancia de AlloyDB con la dirección IP que configuraste.

  1. Para recuperar la dirección IP del extremo de Private Service Connect, usa el comando gcloud compute addresses describe:

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

    Reemplaza lo siguiente:

    • ADDRESS_NAME: Es el nombre de la dirección IP del extremo.
    • PROJECT_ID: Es el ID o el número del proyecto Google Cloud que contiene el extremo.
    • REGION_NAME: es el nombre de la región para el extremo.
  2. Para conectarte a la instancia de AlloyDB, usa la dirección IP interna.

    psql -U USERNAME -h IP_ADDRESS"

    Reemplaza lo siguiente:

    • USERNAME: El nombre del usuario que se conecta a la instancia.
    • IP_ADDRESS: Es la dirección IP del extremo.

Limitaciones

  • Puedes configurar hasta 20 extremos de Private Service Connect que se conecten al adjunto de servicio de una instancia de AlloyDB con Private Service Connect habilitado.
  • No puedes usar la marca --network cuando creas un clúster habilitado para Private Service Connect porque está asociada con el acceso privado a servicios.
  • No puedes activar ni desactivar Private Service Connect en una instancia existente.
  • No puedes configurar una instancia que tenga Private Service Connect habilitado para usar el acceso privado a servicios.