En esta página se describe cómo usar Private Service Connect para conectarse 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 diferentes grupos, equipos, proyectos u organizaciones.
Roles obligatorios
Debes asignar todos los roles siguientes 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 VPC, cada red tendrá su propio administrador. |
dns.admin |
Otorga control total sobre los recursos de Cloud DNS, incluidas las zonas y los registros DNS. |
alloydb.admin |
Proporciona un 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 AlloyDB Auth Proxy, debes tener el rol de cliente de AlloyDB. Si te conectas directamente, no necesitas ningún rol ni permiso de gestión de identidades y accesos (IAM). |
Custom AlloyDB role (opcional) |
Si usas un rol personalizado, además de conceder los roles compute.networkAdmin y dns.admin , concede los siguientes permisos:
|
Crear un endpoint de Private Service Connect
Los endpoints de Private Service Connect son direcciones IP internas de una red de VPC de consumidor a las que pueden acceder directamente los clientes de esa red. Los clientes pueden usar estos endpoints para conectarse a instancias de AlloyDB.
Para que AlloyDB cree el endpoint de Private Service Connect automáticamente, haz lo siguiente:
- Reutiliza una política de conexión de servicio que ya tengas o crea una en tus redes de VPC. Con esta política, puedes aprovisionar endpoints de Private Service Connect automáticamente.
- Crea un clúster y una instancia de AlloyDB con Private Service Connect habilitado en la instancia y configura la instancia para que cree endpoints de Private Service Connect automáticamente.
- Recupera el endpoint de la instancia. De esta forma, puedes usar el endpoint para conectarte a la instancia.
- Opcional: actualiza un clúster y una instancia de AlloyDB con Private Service Connect habilitado para generar endpoints automáticamente.
También puedes crear el endpoint de Private Service Connect manualmente. Para obtener más información, consulta Crear el endpoint manualmente.
Crear el endpoint automáticamente
En las siguientes secciones se explica cómo configurar la instancia para que AlloyDB cree el endpoint de Private Service Connect automáticamente.
Crear una política de conexión de servicio
Puedes reutilizar una política de conexión de servicio que ya tengas o crear una con la Google Cloud consola o la CLI de Google Cloud.
Una política de conexión de servicio te permite autorizar una clase de servicio específica para que cree un punto final de Private Service Connect en tu red de VPC de consumidor. Puedes usar la política de conexión de servicio para permitir que AlloyDB cree automáticamente endpoints de Private Service Connect.
Consola
En la Google Cloud consola, ve a la página Private Service Connect.
Haga clic en la pestaña Políticas de conexión.
Haz clic en Crear política de conexión.
Introduce un Nombre para la política de conexión.
Para especificar la clase de servicio, haz lo siguiente:
- En Clase de servicio de origen, selecciona Servicios de Google.
- En el menú Clase de servicio, selecciona
google-cloud-alloydb
, ya que AlloyDB es el servicio gestionado de la política de conexión.
En la sección Ámbito de los endpoints de destino, selecciona una red y una región a las que se aplique esta política.
En la sección Política, seleccione una o varias subredes en el menú Subredes. Las subredes se usan para asignar direcciones IP a los endpoints.
Opcional: Especifica un límite de conexión para la política. El límite determina cuántos endpoints puede crear AlloyDB para esta política de conexión. Si no especificas un límite de conexiones, no habrá ninguno.
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
Haz los cambios siguientes:
POLICY_NAME
: el nombre de tu política de conexión de servicio.NETWORK
: la red a la que se aplica esta política.PROJECT_ID
: el ID o el número del proyecto de la red 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 se admiten en los proyectos de servicio.REGION
: la región a la que se aplica esta política. Debe haber una política igual en todas las regiones en las que quiera automatizar la conectividad de los servicios.SERVICE_CLASS
: identificador de recurso de la clase de servicio proporcionado por el productor. En el caso de AlloyDB, la clase de servicio esgoogle-cloud-alloydb
.SUBNETS
: una o varias subredes de consumidor normales que se usan para asignar direcciones IP a los puntos finales 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 se eliminan instancias de servicio gestionado. 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 reutilizar la misma subred en estas políticas. Puede introducir varias subredes en una lista separada por comas.LIMIT
: número máximo de endpoints que puede crear con esta política. Si no especificas ningún límite, no habrá ninguno.DESCRIPTION
: una descripción opcional de la política de conexión de servicios.PRODUCER_INSTANCE_LOCATION
: especifica si la política automatiza las conexiones a las instancias de AlloyDB. Puede definir este valor de una de las siguientes formas:none
(predeterminado): la instancia de AlloyDB está en el mismo proyecto que la política de conexión de servicio (o, en el caso de la VPC compartida, en los proyectos conectados).custom-resource-hierarchy-levels
: requiere que definas la ruta de ubicación de Resource Manager de los proyectos para los que quieras automatizar la conectividad mediante el parámetroallowed-google-producers-resource-hierarchy-level
.
LIST_OF_NODES
: defina este parámetro si la ubicación de su instancia de productor escustom-resource-hierarchy-levels
. Este parámetro es una lista de proyectos, carpetas y organizaciones en los que residen las instancias para las que quieres automatizar la conectividad. La lista tiene el formatoprojects/PROJECT_ID
,folders/FOLDER_ID
oorganizations/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 de la subred managed-services
. Se pueden crear un máximo de 10 endpoints de Private Service Connect con esta política. Los endpoints deben crearse en proyectos que estén en la misma organización que la instancia de servicio gestionado. 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
Crear una instancia de AlloyDB
Puedes crear una instancia con Private Service Connect habilitado y configurarla para que cree endpoints automáticamente mediante la consola, la CLI de gcloud o Terraform.
Consola
En la Google Cloud consola, ve a la página Clusters.
Haz clic en Crear clúster.
En ID de clúster, introduzca
my-cluster
.Introduce una contraseña. Anota esta contraseña, ya que la usarás en esta guía de inicio rápido.
Conserva la versión predeterminada de la base de datos.
Selecciona la región
us-central1 (Iowa)
.Conserva el ID de instancia predeterminado,
my-cluster-primary
.En Disponibilidad zonal, mantén Una sola zona como opción seleccionada. Aunque no recomendamos usar una instancia de una sola zona en producción, en este inicio rápido se utiliza una sola zona para minimizar los costes. Para obtener más información, consulta Reducir costes con instancias básicas.
Selecciona el tipo de máquina
2 vCPU, 16 GB
.Mantener la conectividad de IP privada.
- Selecciona Private Service Connect (PSC).
- Haz clic en Añadir un endpoint.
- Selecciona el proyecto en el que quieras crear el endpoint.
- Selecciona la red.
- Haz clic en Comprobar política para ver información sobre la política de conexión de servicios.
Mantenga los ajustes predeterminados en Seguridad de red.
No hagas cambios en Mostrar opciones avanzadas.
Haz clic en Crear clúster. AlloyDB puede tardar varios minutos en crear el clúster y mostrarlo en la página Resumen 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
Haz los cambios siguientes:
CLUSTER_ID
: el ID del clúster que vas a crear. Debe empezar por una letra minúscula y puede contener letras minúsculas, números y guiones.PASSWORD
: la contraseña que se usará para el usuariopostgres
predeterminado.REGION_ID
: la región en la que quieras colocar el clúster.PROJECT_ID
: el ID del proyecto en el que quieres colocar el clúster.
Este comando inicia una operación de larga duración y devuelve un ID de operación.
Para crear la instancia de AlloyDB, ya sea la 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 endpoints 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
Haz los cambios siguientes:
INSTANCE_ID
: el ID de la instancia que vas a crear. Debe empezar por una letra minúscula y puede contener letras minúsculas, números y guiones.CPU_COUNT
: el número de vCPUs que quieres asignar a la instancia. Estos son algunos de los valores válidos:2
: 2 vCPUs, 16 GB de RAM4
: 4 vCPUs, 32 GB de RAM8
: 8 vCPUs, 64 GB de RAM16
: 16 vCPUs y 128 GB de RAM32
: 32 vCPUs, 256 GB de RAM64
: 64 vCPUs, 512 GB de RAM96
: 96 vCPUs, 768 GB de RAM128
: 128 vCPUs, 864 GB de RAM
AVAILABILITY
: indica si esta instancia debe tener alta disponibilidad (HA) con nodos en varias zonas. Los valores válidos son los siguientes:REGIONAL
: crea una instancia de alta disponibilidad con nodos activos y en espera independientes, así como una 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
: la región en la que quieres que se coloque la instancia.CLUSTER_ID
: el ID del clúster que has creado anteriormente.ALLOWED_PROJECT_LIST
: lista de IDs de proyecto separados por comas o números de proyecto a los que quieres permitir el acceso a la instancia (por ejemplo,my-project-1
,12345
,my-project-n
).NETWORK_ATTACHMENT_URI
(Opcional): el nombre completo del recurso del URI de adjunto de red que crees para la conectividad saliente. Por ejemplo:projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID
.CONSUMER_NETWORK
: la ruta a la red de VPC en la que se deben crear los endpoints de Private Service Connect. Por ejemplo:projects/my-host-project/global/networks/default
. Esta opción se aplica cuando creas endpoints 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
: proyecto en el que se crea el endpoint de Private Service Connect. Si utilizas una red de VPC compartida, puede ser el proyecto del host o el proyecto de servicio. Los proyectos que especifiques en los parámetros de conexión automática se añadirán automáticamente a tus proyectos permitidos. Si quieres crear manualmente puntos finales de Private Service Connect en algún proyecto, puedes añadirlo a tu lista de proyectos permitidos.
Un clúster secundario creado para un clúster principal con Private Service Connect habilitado hereda automáticamente la configuración de Private Service Connect. Para obtener más información, consulta Crear un clúster secundario.
Terraform
Para crear una instancia en tu clúster de base 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 saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Recuperar el endpoint
Si obtienes la dirección IP interna, que es el endpoint de Private Service Connect de una instancia, puedes usar este endpoint para conectarte a la instancia.
Para ver información sobre una instancia, incluida la dirección IP que es el punto final de Private Service Connect de la instancia, usa el comando gcloud alloydb instances describe
:
gcloud alloydb instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --format='json(settings.ipConfiguration.pscConfig.pscAutoConnections)'
Haz las siguientes sustituciones:
- INSTANCE_NAME: el nombre de la instancia de AlloyDB. Si esta instancia tiene habilitado Private Service Connect, los puntos finales de Private Service Connect de las redes de VPC pueden conectarse a ella.
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia.
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 endpoint de Private Service Connect de la instancia.
Actualizar una instancia para crear endpoints automáticamente
Para actualizar una instancia y crear endpoints automáticamente, pasa el parámetro --psc-auto-connections
al comando gcloud alloydb instances update.
Configurar la conectividad saliente
Si quieres habilitar la conectividad saliente de tu instancia de AlloyDB con Private Service Connect habilitado, debes definir el URI de vinculación de red de la instancia. Para obtener más información, consulta Configurar la conectividad saliente.
Crear el endpoint manualmente
En las siguientes secciones se explica cómo crear un punto final de Private Service Connect manualmente.
Crear una instancia de AlloyDB
Puedes crear una instancia con Private Service Connect habilitado y configurarla para que cree endpoints automáticamente mediante la consola, la CLI de gcloud o Terraform.
Consola
En la Google Cloud consola, ve a la página Clusters.
Haz clic en Crear clúster.
En ID de clúster, introduzca
my-cluster
.Introduce una contraseña. Anota esta contraseña, ya que la usarás en esta guía de inicio rápido.
Conserva la versión predeterminada de la base de datos.
Selecciona la región
us-central1 (Iowa)
.Conserva el ID de instancia predeterminado,
my-cluster-primary
.En Disponibilidad zonal, mantén Una sola zona como opción seleccionada. Aunque no recomendamos usar una instancia de una sola zona en producción, en este inicio rápido se utiliza una sola zona para minimizar los costes. Para obtener más información, consulta Reducir costes con instancias básicas.
Selecciona el tipo de máquina
2 vCPU, 16 GB
.Mantener la conectividad de IP privada.
- Selecciona Private Service Connect(PSC).
- Haz clic en Añadir un endpoint.
- Selecciona el proyecto en el que quieras crear el endpoint.
- Selecciona la red.
- Haz clic en Comprobar política para ver información sobre la política de conexión de servicios.
Mantenga los ajustes predeterminados en Seguridad de red.
No hagas cambios en Mostrar opciones avanzadas.
Haz clic en Crear clúster. AlloyDB puede tardar varios minutos en crear el clúster y mostrarlo en la página Resumen 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
Haz los cambios siguientes:
CLUSTER_ID
: el ID del clúster que vas a crear. Debe empezar por una letra minúscula y puede contener letras minúsculas, números y guiones.PASSWORD
: la contraseña que se usará para el usuariopostgres
predeterminado.REGION_ID
: la región en la que quieras colocar el clúster.PROJECT_ID
: el ID del proyecto en el que quieres colocar el clúster.
Este comando inicia una operación de larga duración y devuelve 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 \
Haz los cambios siguientes:
INSTANCE_ID
: el ID de la instancia que vas a crear. Debe empezar por una letra minúscula y puede contener letras minúsculas, números y guiones.CPU_COUNT
: el número de vCPUs que quieres asignar a la instancia. Estos son algunos de los valores válidos:2
: 2 vCPUs, 16 GB de RAM4
: 4 vCPUs, 32 GB de RAM8
: 8 vCPUs, 64 GB de RAM16
: 16 vCPUs y 128 GB de RAM32
: 32 vCPUs, 256 GB de RAM64
: 64 vCPUs, 512 GB de RAM96
: 96 vCPUs, 768 GB de RAM128
: 128 vCPUs, 864 GB de RAM
AVAILABILITY
: indica si esta instancia debe tener alta disponibilidad (HA) con nodos en varias zonas. Los valores válidos son los siguientes:REGIONAL
: crea una instancia de alta disponibilidad con nodos activos y en espera independientes, así como una 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
: la región en la que quieres que se coloque la instancia.CLUSTER_ID
: el ID del clúster que has creado anteriormente.ALLOWED_PROJECT_LIST
: la lista de IDs de proyecto o números de proyecto separados por comas a los que quieres permitir el acceso a la instancia. Por ejemplo,my-project-1
,12345
,my-project-n
.NETWORK_ATTACHMENT_URI
(Opcional): el nombre completo del recurso del URI de adjunto de red que crees para la conectividad saliente. Por ejemplo:projects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID
.CONSUMER_NETWORK
: la ruta a la red de VPC desde la que se deben crear los puntos finales de Private Service Connect. Por ejemplo:projects/my-host-project/global/networks/default
. Esta opción se aplica cuando creas endpoints 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
: proyecto en el que se crea el endpoint de Private Service Connect. Si utilizas una red de VPC compartida, puede ser el proyecto del host o el proyecto de servicio. Los proyectos que especifiques en los parámetros de conexión automática se añadirán automáticamente a tus proyectos permitidos. Si quieres crear manualmente puntos finales de Private Service Connect en algún proyecto, puedes añadirlo a tu lista de proyectos permitidos.
Un clúster secundario creado para un clúster principal con Private Service Connect habilitado hereda automáticamente la configuración de Private Service Connect. Para obtener más información, consulta Crear un clúster secundario.
Terraform
Para crear una instancia en tu clúster de base 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 saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.
Obtener el adjunto de servicio
Después de crear una instancia de AlloyDB con Private Service Connect habilitado, obtén la URL de vinculación de servicio y úsala para crear el endpoint 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
Haz los cambios siguientes:
INSTANCE_ID
: el ID de la instancia.CLUSTER_ID
: el ID del clúster.REGION_ID
: la región en la que se despliega el clúster de AlloyDB.
A continuación se muestra un ejemplo de respuesta al 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 endpoint de Private Service Connect
Para crear un endpoint de Private Service Connect, proporciona la URL de la vinculación de servicio junto con un nombre de endpoint único. Para obtener más información sobre cómo crear un endpoint de Private Service Connect, consulta Crear un endpoint.
También puedes reservar una dirección IP interna para el endpoint de Private Service Connect con el comando gcloud compute addresses create
y, a continuación, usar la dirección IP reservada al crear el endpoint.
Configurar la conectividad saliente
Para habilitar la conectividad saliente, define el URI de la conexión de red al crear o actualizar una instancia de AlloyDB. Este URI permite una conectividad segura entre tu proyecto y la instancia de AlloyDB durante las operaciones salientes, como las migraciones.
Crear el archivo adjunto de red
Puedes crear un adjunto de red que acepte conexiones automáticamente(ACCEPT_AUTOMATIC
) o manualmente (ACCEPT_MANUAL
). Para obtener más información sobre cómo crear un adjunto de red, consulta Crear y gestionar adjuntos de red.
Si creas un adjunto de red que acepte conexiones automáticamente, no tendrás que definir una lista de proyectos aceptados de forma explícita. Para aceptar conexiones manualmente, debes añadir el número del proyecto propiedad del servicio en el que se encuentra tu instancia de AlloyDB a la lista de proyectos aceptados.
Para encontrar el número del proyecto propiedad del servicio, ejecuta el siguiente comando:
gcloud alpha alloydb clusters describe CLUSTER_ID --region=REGION_ID
A continuación se muestra un ejemplo de respuesta:
pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012
Una vez que hayas identificado el número del proyecto propiedad del servicio, añade el proyecto a la lista de proyectos aceptados y, a continuación, 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 utilizada para crear la conexión de red debe pertenecer a los intervalos de IP RFC 1918, que son 10.0.0.0/8
, 172.16.0.0/12
y 192.168.0.0/16
.
Actualizar una instancia para la conectividad saliente
Para habilitar la conectividad saliente de una instancia de AlloyDB 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 del 2025 no se pueden actualizar para habilitar las conexiones salientes. Como alternativa, te recomendamos que uses una de las siguientes opciones:
- Crea una réplica regional de réplica entre regiones (CRR) de tu instancia principal con la conectividad saliente habilitada. A continuación, realiza un cambio para designar la instancia de réplica como la nueva instancia principal.
- Crea una copia de seguridad de tu clúster de AlloyDB y de tu instancia principal. A continuación, crea un clúster de AlloyDB y una instancia principal con la conectividad saliente habilitada. Por último, restaura la copia de seguridad que has creado en el nuevo clúster.
Desactivar la conectividad saliente
Para desactivar la conectividad saliente de una instancia de AlloyDB, pasa el parámetro --clear-psc-network-attachment-uri
al comando gcloud alloydb instances update
.
Conectarse a una instancia de AlloyDB
Puedes conectarte a una instancia de AlloyDB con Private Service Connect habilitado mediante una de las siguientes opciones:
- Conectarse directamente mediante un registro DNS
- Usar el proxy de autenticación de AlloyDB con un registro DNS
- Usar conectores de lenguaje de AlloyDB con un registro DNS
- Conectarse directamente mediante una dirección IP interna
En el caso de los métodos que usan un registro DNS, debes crear el registro en una zona DNS privada de la red de VPC correspondiente. Después de crear un registro DNS, puedes usarlo para conectarte a una instancia habilitada para Private Service Connect.
Configurar una zona gestionada de DNS y un registro de DNS
Para configurar una zona gestionada de DNS y un registro de DNS en tu red, sigue estos pasos:
Para ver información de resumen sobre una instancia de AlloyDB, incluido el nombre DNS de la instancia, usa el comando
gcloud alloydb instances describe
:gcloud alloydb instances describe INSTANCE_ID \ --cluster=CLUSTER_ID --region=REGION_ID
Haz los cambios siguientes:
INSTANCE_ID
: el ID de la instancia.CLUSTER_ID
: el ID del clúster.
En la respuesta, comprueba que aparezca el nombre DNS. El nombre de DNS tiene el patrón
INSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog.
.Para crear una zona de DNS privada, usa el comando
gcloud dns managed-zones create
. Esta zona está asociada a la red de VPC que se usa para conectarse a la instancia de AlloyDB a través del endpoint 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
Haz los cambios siguientes:
ZONE_NAME
: el nombre de la zona DNS.PROJECT_ID
: el ID o el número del Google Cloud proyecto que contiene la zona.DESCRIPTION
: una descripción de la zona (por ejemplo, una zona DNS de la instancia de AlloyDB).DNS_NAME
: el nombre de DNS de la zona, comoINSTANCE_UID.PROJECT_UID.REGION_NAME.alloydb-psc.goog.
.NETWORK_NAME
: nombre de la red de VPC. En el caso de una red de VPC compartida, se debe definir la ruta completa de la red de VPC. Por ejemplo,projects/cymbal-project/global/networks/shared-vpc-network
.
Después de crear el endpoint 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
Haz los cambios siguientes:
DNS_NAME
: el nombre de DNS que has obtenido anteriormente en este procedimiento.RRSET_TYPE
: el tipo de registro de recursos del conjunto de registros DNS (por ejemplo, A).RR_DATA
: la dirección IP asignada al endpoint de Private Service Connect (por ejemplo, 198.51.100.5). También puede introducir varios valores, como rrdata1 rrdata2 rrdata3 (por ejemplo, 10.1.2.3 10.2.3.4 10.3.4.5).
Conectarse directamente mediante un registro DNS
Después de crear un endpoint de Private Service Connect y un registro DNS, puedes conectarte directamente mediante el registro DNS.
Para obtener el registro DNS del punto final de Private Service Connect, usa el comando
gcloud compute addresses describe
:gcloud compute addresses describe DNS_RECORD \ --project=PROJECT_ID \ --region=REGION_NAME
Haz los cambios siguientes:
DNS_RECORD
: el registro DNS del endpoint.PROJECT_ID
: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint.REGION_NAME
: nombre de la región del endpoint.
Para conectarte a la instancia de AlloyDB, usa el registro DNS.
psql -U USERNAME -h DNS_RECORD
Haz los cambios siguientes:
USERNAME
: el nombre del usuario que se conecta a la instancia.DNS_RECORD
: el registro DNS del endpoint.
Conectarse mediante el proxy de autenticación de AlloyDB
El proxy de autenticación de AlloyDB es un conector que te permite establecer conexiones cifradas y autorizadas con 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 mediante el protocolo de base de datos estándar que usa tu base de datos.
Cuando defines la marca --psc
al iniciar el cliente de Auth Proxy, AlloyDB Auth Proxy usa el registro DNS que has creado para conectarse a la instancia en la que Private Service Connect está habilitado.
Asegúrate de iniciar el cliente Auth Proxy pasando el URI de instancia que obtienes con el comando gcloud alloydb instances list
y define la marca --psc
.
Para obtener más información sobre cómo conectarse a una instancia mediante el proxy de autenticación, consulta Conectarse mediante el proxy de autenticación.
Conectarse mediante AlloyDB Language Connectors
Los conectores de lenguaje de AlloyDB son bibliotecas que proporcionan mTLS automatizado con TLS 1.3 y autorización de gestión de identidades y accesos (IAM) al conectarse a una instancia de AlloyDB.
Una vez que Language Connector determina que la instancia admite Private Service Connect, usa el registro DNS que has creado 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 cómo usar el endpoint de Private Service Connect en conectores de lenguaje 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 cómo usar el endpoint de Private Service Connect en conectores de lenguaje 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 cómo usar el endpoint de Private Service Connect en conectores de lenguaje 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 cómo usar el punto final de Private Service Connect en conectores de 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 cómo usar el punto final de Private Service Connect en conectores de lenguaje Go, consulta el repositorio de GitHub.
Conectarse directamente a través de una dirección IP interna
Después de crear un endpoint de Private Service Connect, puedes conectarte directamente a una instancia de AlloyDB mediante la dirección IP que hayas configurado.
Para obtener la dirección IP del punto final de Private Service Connect, usa el comando
gcloud compute addresses describe
:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAME
Haz los cambios siguientes:
ADDRESS_NAME
: el nombre de la dirección IP del endpoint.PROJECT_ID
: el ID o el número de proyecto del Google Cloud proyecto que contiene el endpoint.REGION_NAME
: nombre de la región del endpoint.
Para conectarte a la instancia de AlloyDB, usa la dirección IP interna.
psql -U USERNAME -h IP_ADDRESS"
Haz los cambios siguientes:
USERNAME
: el nombre del usuario que se conecta a la instancia.IP_ADDRESS
: la dirección IP del endpoint.
Limitaciones
- Puedes configurar hasta 20 endpoints de Private Service Connect que se conecten a la vinculación de servicio de una instancia de AlloyDB con Private Service Connect habilitado.
- No puedes usar la marca
--network
al crear un clúster habilitado para Private Service Connect porque está asociada al acceso a servicios privados. - No puedes activar ni desactivar Private Service Connect en una instancia que ya tengas.
- No puedes configurar una instancia que tenga habilitado Private Service Connect para que use el acceso privado a servicios.