Cómo configurar el acceso privado a los servicios

El acceso privado a servicios es una conexión privada entre tu red de VPC y una red de Google o de terceros. Las entidades que ofrecen servicios, como Google o terceros, también se conocen como productores de servicios. La conexión privada habilita las instancias de VM en tu red de VPC y los servicios a los que accedes para comunicarte exclusivamente mediante el uso de direcciones IP internas (RFC 1918). Las instancias de VM no necesitan acceso a Internet o direcciones IP externas para alcanzar los servicios a través del acceso privado a servicios.

El acceso privado a servicios permite acceder a ciertos servicios de Google Cloud. Para obtener información sobre esto y otras opciones de acceso privado, consulta Opciones de acceso privado para servicios.

Para crear una conexión privada, debes asignar un rango de direcciones IP en tu red de VPC y luego crear una conexión privada a un servicio.

Las conexiones privadas constituyen una relación uno a uno entre tu red de VPC y el productor de servicios. Si un solo productor de servicios ofrece varios servicios, solo necesitas una conexión privada para todos los servicios del productor.

Antes de comenzar

Para establecer una conexión privada, completa los siguientes requisitos previos:

  • Verifica que el servicio esté disponible para el acceso privado a servicios.
  • Crea un proyecto de GCP o elige uno existente. Para obtener información acerca de cómo crear un proyecto de GCP, consulta Cómo crear y administrar proyectos.
  • Activa la API de Service Networking en tu proyecto. Cuando lo hagas, se agregará una cuenta de servicio a tu proyecto. Esta permite que Service Networking administre las conexiones privadas en tu nombre.
  • Debes tener una red de VPC existente que usarás para conectarte a la red del productor de servicios. Las instancias de VM deben usar esta red de VPC para conectarse a los servicios mediante una conexión privada.
  • Instala el SDK de Cloud si deseas ejecutar los ejemplos de líneas de comando de gcloud en esta guía.

Permisos

Los propietarios, editores y miembros de IAM de proyectos con la función de Administrador de red pueden crear rangos de direcciones IP asignados y administrar conexiones privadas.

Para obtener más información sobre las funciones, consulta la documentación de funciones de IAM de VPC.

Cómo crear rangos de direcciones IP asignados

Antes de crear una conexión privada, debes asignar un rango de direcciones IP para que la red de VPC del productor de servicios lo use. Esto garantiza que no haya una colisión de direcciones IP entre tu red de VPC y la red del productor de servicios.

Cuando asignas un rango en tu red de VPC, ese rango no es apto para subredes (rangos principales y secundarios) ni los destinos de las rutas estáticas personalizadas.

Creas un rango asignado único para cada productor de servicios. Un solo productor de servicios puede ofrecer varios servicios, por lo que el rango asignado debe ser lo suficientemente grande para admitir todos los servicios que usarás. Para utilizar los servicios de Google, debes crear un rango asignado que tenga el tamaño mínimo de un solo bloque de /20 (4,096 direcciones), pero el tamaño recomendado es de /16 (65,536 direcciones) a fin de asegurarte de que tengas una cantidad suficiente de direcciones IP disponibles para los servicios de Google.

Si un servicio de Google asigna un rango en tu nombre, el servicio usa el siguiente formato para nombrar la asignación: google-managed-services-[your network name]. Si esta asignación existe, los servicios de Google no crearán otra automáticamente. Por lo tanto, si tú mismo creas la asignación, en lugar de Google, puedes usar la misma convención de nombres a fin de indicarles a otros usuarios o servicios de Google que ya existe una asignación para Google.

Antes de asignar un rango de direcciones IP, considera las siguientes restricciones:

  • Selecciona un rango que no se superponga con rangos asignados existentes, subredes o rutas estáticas personalizadas. No se pueden superponer dos rangos.
  • Si usas una red de VPC de modo automático, no puedes crear un rango asignado que coincida o se superponga con 10.128.0.0/9. Este rango es para subredes creadas automáticamente.
  • Selecciona un bloque CIDR que sea lo suficientemente grande para satisfacer tus necesidades actuales y futuras. Si luego descubres que el rango no tiene el tamaño suficiente, expándelo de ser posible. Aunque puedes designar varias asignaciones a un solo productor de servicios, Google aplica una cuota en la cantidad de rangos de direcciones IP que puedes asignar, pero no en el tamaño (máscara de red) de cada rango.
  • No vuelvas a utilizar el mismo rango asignado para varios productores de servicios. Aunque es posible, hacerlo puede superponer las direcciones IP. Cada productor de servicios puede visualizar solo su red y no puede saber qué direcciones IP usan otros productores de servicios.
  • Solo puedes asignar un bloque CIDR a un rango asignado cuando creas la asignación. Si necesitas expandir el rango de direcciones IP, no puedes agregar más bloques a una asignación. En cambio, puedes crear otra asignación o volver a crear una existente mediante el uso de un bloque más grande que abarque los rangos nuevos y existentes.

Console

  1. Ve a la página Redes de VPC en Google Cloud Platform Console.
    Ir a la página Redes de VPC
  2. Selecciona la red de VPC que se conectará a un productor de servicios.
  3. Selecciona la pestaña Conexión privada a servicios.
  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Rangos de IP asignados para servicios.
  5. Haz clic en Rango de IP asignado.
  6. Ingresa un Nombre y una Descripción para el rango asignado.
  7. Especifica un Rango de IP para la asignación:

    • Para especificar un rango de direcciones IP, selecciona Personalizar y luego ingresa un bloque CIDR, como 192.168.0.0/16.
    • Para especificar la longitud de un prefijo y permitir que Google seleccione un rango disponible, selecciona Automático y luego ingresa la longitud de un prefijo, como 16.
  8. Haz clic en Asignar para crear un rango asignado.

gcloud

Crea un rango asignado en tu red de VPC.

  • Para especificar un rango de direcciones y una longitud de prefijo (máscara de subred), usa los marcadores addresses y prefix-length. Por ejemplo, a fin de asignar el bloque CIDR 192.168.0.0/16, especifica 192.168.0.0 para la dirección y 16 en la longitud de prefijo.

    gcloud compute addresses create [RESERVED_RANGE_NAME] \
        --global \
        --purpose=VPC_PEERING \
        --addresses=192.168.0.0 \
        --prefix-length=16 \
        --description=[DESCRIPTION] \
        --network=[VPC_NETWORK]
    
  • Para especificar solo una longitud de prefijo (máscara de subred), solo usa el marcador prefix-length. Cuando omitas el rango de direcciones, GCP selecciona automáticamente un rango de direcciones sin usar en tu red de VPC. En el siguiente ejemplo, se selecciona un rango de direcciones IP sin usar con una longitud de prefijo de 16 bits.

    gcloud compute addresses create [RESERVED_RANGE_NAME] \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=16 \
        --description=[DESCRIPTION] \
        --network=[VPC_NETWORK]
    

Reemplaza los siguientes marcadores de posición por valores relevantes:

  • [RESERVED_RANGE_NAME] es un nombre para el rango asignado, como my-allocated-range.
  • [DESCRIPTION] es una descripción del rango, como allocated for my-service.
  • [VPC_NETWORK] es el nombre de tu red de VPC, como my-vpc-network.

En el siguiente ejemplo, se crea una conexión privada con Google a fin de que las instancias de VM en la red de VPC my-network puedan usar el acceso privado a servicios para alcanzar los servicios de Google que lo admiten.

gcloud compute addresses create google-managed-services-my-network \
    --global \
    --purpose=VPC_PEERING \
    --prefix-length=16 \
    --description="peering range for Google" \
    --network=my-network \
    --project=my-project

Cómo crear una conexión privada

Después de crear un rango asignado, puedes crear una conexión privada a un productor de servicios. La conexión privada establece una conexión de intercambio de tráfico de red de VPC entre tu red de VPC y la red del productor de servicios. Debido a esta implementación, se aplican cuotas y límites al intercambio de tráfico de red de VPC.

Para cada red de VPC, crea una conexión privada a cada productor de servicios. Cuando lo hagas, usa una asignación única para cada productor de servicios. Esta práctica te ayuda a administrar la configuración de tu red, como rutas y reglas de firewall, para cada productor de servicios.

Si usas VPC compartida, especifica el proyecto host adecuado y la red de VPC compartida en el proyecto host. Las instancias de VM en los proyectos de servicios que usan la red de VPC compartida pueden utilizar la conexión privada para alcanzar el servicio del productor de servicios.

Console

  1. Ve a la página Redes de VPC en Google Cloud Platform Console.
    Ir a la página Redes de VPC
  2. Selecciona la red de VPC que se conectará a un productor de servicios.
  3. Selecciona la pestaña Conexión privada a servicios.
  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Conexiones privadas a los servicios.
  5. Haz clic en Crear una conexión para crear una conexión privada entre tu red y un productor de servicios.
  6. Para la Asignación designada, selecciona uno o más rangos asignados existentes que no estén siendo usados por otros productores de servicios.

    No puedes modificar las asignaciones designadas después de que se crea la conexión. Para quitar o agregar rangos asignados, debes volver a crear la conexión y especificar las asignaciones designadas nuevas.

  7. Haz clic en Conectar para crear la conexión.

gcloud

  1. Crea una conexión privada.

    gcloud beta services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=[RESERVED_RANGE_NAME] \
        --network=[VPC_NETWORK] \
        --project=[PROJECT_ID]
    
    • [RESERVED_RANGE_NAME] es el nombre de uno o más rangos asignados.
    • [VPC_NETWORK] es el nombre de tu red de VPC.
    • [PROJECT_ID] es el ID del proyecto que contiene tu red de VPC.

    El comando inicia una operación de larga duración, y luego muestra un nombre de operación.

  2. Verifica si la operación se realizó correctamente.

    gcloud beta services vpc-peerings operations describe \
        --name=[OPERATION_NAME]
    

    Reemplaza [OPERATION_NAME] por el nombre de la operación que se mostró en el paso anterior.

Puedes especificar más de un rango asignado cuando creas una conexión privada. Sin embargo, no puedes modificar las asignaciones designadas después de que se crea la conexión. En cambio, debes volver a crear la conexión. Por ejemplo, si se agotó un rango, puedes volver a crear la conexión y especificar los rangos asignados adicionales. El servicio usará direcciones IP de todos los rangos proporcionados en el orden que especificaste.

Cómo generar una lista de las conexiones privadas

Después de crear una conexión privada, puedes colocarla en una lista para verificar que existe. La lista también muestra los rangos asignados asociados a cada conexión. Por ejemplo, si no recuerdas qué rango asignado designaste a una conexión, consulta la lista para saberlo.

Console

  1. Ve a la página Redes de VPC en Google Cloud Platform Console.
    Ir a la página Redes de VPC
  2. Selecciona la red de VPC que contiene las conexiones.
  3. Selecciona la pestaña Conexión privada a servicios.
  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Conexiones privadas a los servicios para ver todas las conexiones privadas de la red.

gcloud

Genera una lista de las conexiones privadas de tu red de VPC.

gcloud beta services vpc-peerings list \
    --network=[VPC_NETWORK] \
    --project=[PROJECT_ID]

Reemplaza [VPC_NETWORK] y [PROJECT_ID] por el nombre de tu red de VPC y el ID del proyecto.

Cómo quitar conexiones privadas

Cuando borras la sesión de intercambio de tráfico de la red de VPC, tu red de VPC se desconecta de la red de VPC del productor de servicios. Los recursos existentes en ambas redes permanecen, pero se pierde el acceso privado a servicios. Puedes restablecer la conectividad volviendo a crear una conexión privada.

Console

  1. Ve a la página Redes de VPC en Google Cloud Platform Console.
    Ir a la página Redes de VPC
  2. Selecciona la red de VPC que contiene las conexiones para borrar.
  3. Selecciona la pestaña Conexión privada a servicios.
  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Conexión privada a los servicios.
  5. Selecciona la conexión privada para borrar.
  6. Haz clic en Borrar para eliminarla.
  7. Vuelve a hacer clic en Borrar para confirmar la eliminación.

gcloud

Borra la conexión de intercambio de tráfico de la red de VPC de la conexión privada.

gcloud compute networks peerings delete [CONNECTION_NAME] \
    --network [VPC_NETWORK]

Reemplaza [CONNECTION_NAME] y [VPC_NETWORK] por el nombre de tu conexión privada y la red de VPC.

Cómo borrar una asignación

Antes de borrar un rango de direcciones IP asignado, verifica que hayas quitado todas las conexiones privadas que lo usan. Si no lo haces, los productores de servicios conectados no podrán aprovisionar recursos nuevos si necesitan subredes adicionales.

Console

  1. Ve a la página Redes de VPC en Google Cloud Platform Console.
    Ir a la página Redes de VPC
  2. Selecciona la red de VPC que contiene las asignaciones para borrar.
  3. Selecciona la pestaña Conexión privada a servicios.
  4. En la pestaña Conexión privada a servicios, selecciona la pestaña Rangos de IP asignados para servicios.
  5. Selecciona la asignación para borrar.
  6. Haz clic en Liberar para mostrar el rango de direcciones IP asignado al conjunto de direcciones IP internas disponibles de la red.

    Si el rango de direcciones IP sigue asignado a una conexión existente, debes ingresar una confirmación adicional antes de poder liberar la asignación.

  7. Vuelve a hacer clic en Liberar para confirmar la eliminación.

gcloud

Borra la asignación especificando el nombre de tu asignación.

gcloud compute addresses delete [NAME] \
    --global

Solución de problemas

¿Qué cantidad de mi asignación se utiliza?

Cuando creas una conexión privada con un productor de servicios, le asignas un rango de direcciones IP para que use. Si usas servicios múltiples de un productor de servicios, cada uno reservará un fragmento de direcciones IP de ese rango asignado. Puedes revisar qué direcciones IP usan los servicios para que, por ejemplo, puedas ver qué servicios usan grandes bloques de direcciones IP y evitar su agotamiento.

Cómo ver qué servicio usa un rango de direcciones IP en particular:

  1. Genera una lista de tus conexiones privadas.
  2. Busca el nombre de la conexión de intercambio de tráfico que te conecta al productor de servicios relevante.
  3. Genera una lista con las rutas para tu red de VPC.
  4. Encuentra las rutas con un salto siguiente que coinciden con el nombre de la conexión de intercambio de tráfico. El rango de destino de las rutas indica las direcciones IP que usa cada servicio.

Eliminación o agotamiento del rango de direcciones IP

En el caso de una conexión privada determinada, si agotas el espacio asignado para direcciones IP, puedes expandir la asignación existente. La asignación expandida debe ser un rango de direcciones IP contiguo que incluya el rango existente.

Cómo expandir una asignación existente:

  1. Genera una lista de las conexiones privadas y registra el nombre del rango asignado que necesitas expandir.
  2. Borra el rango asignado existente.
  3. Crea un rango asignado nuevo con el mismo nombre que el rango borrado. Especifica un rango de direcciones IP que incluya el rango de direcciones IP borrado. De esa manera, los recursos de intercambio de tráfico existentes que usan el rango asignado anterior pueden seguir usando las mismas direcciones IP sin entrar en conflicto con los recursos de tu red de VPC. Por ejemplo, si el rango asignado anterior era 192.168.0.0/24, crea un nuevo rango asignado para 192.168.0.0/16.

Si no puedes expandir tu asignación existente, puedes agregar un nuevo rango asignado a la conexión privada. Este método requiere que vuelvas a crear la conexión para cada red de VPC y causa interrupciones en la conectividad con el servicio.

Cómo agregar rangos asignados a una conexión privada existente:

  1. Genera una lista de tus conexiones privadas y registra los nombres de los rangos asignados a la conexión privada.
  2. Crea un nuevo rango asignado. Este rango no tiene que ser contiguo a los rangos asignados existentes.
  3. Quita la conexión privada existente.
  4. Crea una conexión nueva, especificando los rangos registrados y los asignados recientemente.
¿Te sirvió esta página? Envíanos tu opinión: