Utilización de una pasarela VPC/VPN para conseguir un acceso seguro y privado local a los recursos de la nube
Esta guía de aprendizaje puede incurrir en costes. Utilice Estimador de costes para generar una estimación del coste basada en el uso previsto.
IBM ofrece una serie de maneras de ampliar de forma segura una red de sistemas locales con recursos en IBM Cloud. Esto le permite aprovechar la elasticidad de suministrar recursos de nube cuando los necesite y eliminarlos cuando ya no sean necesarios. Además, puede conectar de forma fácil y segura sus prestaciones locales a los servicios de IBM Cloud.
Esta guía de aprendizaje proporciona la automatización necesaria para crear recursos que demuestran la conectividad de VPN (Virtual Private Network) entre los servidores locales y los recursos en la nube como IBM Cloud® Virtual Private Cloud Virtual Service Instances (VSI) y los servicios de datos de IBM Cloud. También se configura la resolución de DNS para los recursos de nube. La conocida pasarela VPN de Swan se utiliza para representar la pasarela VPN local.
Objetivos
- Acceder a un entorno de nube privada virtual (VPC) desde un centro de datos local
- Acceda de forma segura a los servicios en la nube mediante pasarelas de punto final privadas
- Utilizar DNS local para acceder a recursos de nube a través de VPN
El diagrama siguiente muestra los recursos creados por esta guía de aprendizaje
Una configuración de Terraform creará los recursos siguientes:
- La infraestructura (VPC, subredes, grupos de seguridad con reglas, Network ACL y VSI).
- Las pasarelas de punto final privadas Object Storage y Databases for PostgreSQL a los servicios de datos.
- Se utiliza el software de pasarela IPsec de código abierto StrongSwan de forma local para establecer la conexión VPN con el entorno de nube.
- Se suministra una pasarela VPC/VPN para permitir la conectividad privada entre los recursos locales y los recursos en la nube.
- El solucionador de DNS local está conectado a la ubicación de solucionador de DNS en la nube para permitir el acceso a los recursos en la nube, incluido el acceso a las pasarelas de punto final privadas virtuales a través de una VPN.
Antes de empezar
Esta guía de aprendizaje requiere:
- CLI de IBM Cloud,
- Plugin IBM Cloud Schematics (
schematics),
- Plugin IBM Cloud Schematics (
jqpara consultar archivos JSON,gitto optionally clone source code repository,Terraform CLIto optionally run Terraform on your desktop instead of the Schematics service.
Encontrará instrucciones para descargar e instalar estas herramientas para su entorno operativo en la guía de Iniciación a las guías de aprendizaje.
El centro de datos local de esta guía de aprendizaje se simulará utilizando una VSI en un VPC.
El mecanismo preferido para conectar VPC es Transit Gateway. La simulación de un entorno local con VPC, VSI y VPN solo se utiliza para fines ilustrativos.
Además:
- Compruebe los permisos de usuario. Asegúrese de que la cuenta de usuario tiene permisos suficientes para crear y gestionar recursos de VPC. Para obtener una lista de los permisos necesarios, consulte Concesión de los permisos necesarios para los recursos de la VPC.
- Necesita una clave SSH para conectarse a los servidores virtuales. Si no tiene una clave SSH, consulte las instrucciones para crear una clave.
Utilice Schematics para crear los recursos
- Inicie sesión en IBM Cloud.
- Navegue hasta Crear Schematics Espacios de trabajo En la sección Especificar plantilla,
verifique:
- El URL de repositorio es
https://github.com/IBM-Cloud/vpc-tutorials/tree/master/vpc-site2site-vpn - La versión de Terraform es terraform_v1.2
- El URL de repositorio es
- En Detalles del espacio de trabajo,
- Proporcione un nombre de espacio de trabajo: vpnsts.
- Elija un
Resource Groupy unaLocation. - PulseSiguiente.
- Verifique los detalles y pulse Crear.
- En la sección Variables, proporcione los valores necesarios (nombre_grupo_recursos, nombre_clave_ssh) pulsando el menú de desbordamiento y seleccionando Editar para cada fila. El valor de la variable maintenance debe establecerse en true.
- Desplácese a la parte superior de la página y pulse Aplicar plan. Compruebe los registros para ver el estado de los servicios creados.
Para explorar los recursos que se han creado, pulse a continuación y seleccione la instancia con el prefijo coincidente. Localice todos los recursos del diagrama anterior.
Verificación de la conectividad
La salida del espacio de trabajo Schematics contiene variables que pueden utilizarse para verificar la conectividad VPN.
-
Obtenga la lista de espacios de trabajo, observe la columna ID y establezca la variable de shell:
ibmcloud schematics workspace list -
Establezca la variable WORKSPACE_ID:
WORKSPACE_ID=YOUR_WORKSPACE_ID -
Obtenga las variables de entorno para los recursos de nube:
ibmcloud schematics output --id $WORKSPACE_ID --output json | jq -r '.[0].output_values[].environment_variables.value' -
La salida será similar a la siguiente. Copie/pegue estos resultados en el shell para establecerlos en el entorno:
IP_FIP_ONPREM=169.48.x.x IP_PRIVATE_ONPREM=10.0.0.4 IP_PRIVATE_CLOUD=10.1.1.4 IP_FIP_BASTION=52.118.x.x IP_PRIVATE_BASTION=10.1.0.4 IP_DNS_SERVER_0=10.1.0.5 IP_DNS_SERVER_1=10.1.1.6 IP_ENDPOINT_GATEWAY_POSTGRESQL=10.1.1.9 IP_ENDPOINT_GATEWAY_COS=10.1.1.5 HOSTNAME_POSTGRESQL=a43ddb63-dcb1-430a-a2e4-5d87a0dd12a6.6131b73286f34215871dfad7254b4f7d.private.databases.appdomain.cloud HOSTNAME_COS=s3.direct.us-south.cloud-object-storage.appdomain.cloud PORT_POSTGRESQL=32525 -
Ahora puede ejecutar ssh en cada una de las instancias siguiendo diferentes vías de acceso, incluido saltando a través de la VPN. El diagrama muestra las vías de comunicación que se utilizan en los pasos.
Si la clave SSH no es la predeterminada para SSH, puede configurar la opción
-I PATH_TO_PRIVATE_KEY_FILEo consultar el manual de referencia de SSH para obtener más ayuda.
- Pruebe el acceso a VSI local:
ssh root@$IP_FIP_ONPREM - Pruebe el acceso al bastión de nube:
ssh root@$IP_FIP_BASTION - Pruebe el acceso a la VSI de nube a través del bastión:
ssh -J root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD - Pruebe el acceso a la VSI de nube a través del entorno local, a través del túnel VPN, a través del bastión:
ssh -J root@$IP_FIP_ONPREM,root@$IP_FIP_BASTION root@$IP_PRIVATE_CLOUD - Pruebe el acceso a VSI local a través del bastión, a través de la VSI de nube, a través del túnel VPN:
ssh -J root@$IP_FIP_BASTION,root@$IP_PRIVATE_CLOUD root@$IP_PRIVATE_ONPREM
Verificar la resolución de DNS
La resolución DNS local se ha configurado para utilizar la ubicación IBM Cloud VPC Ubicación de resolución DNS. Esto permite acceder a los servicios de nube por nombre y resolverlos en las direcciones IP de las pasarelas de punto final privadas.
Pruebe la resolución de DNS en Postgresql y el almacenamiento de objetos a través de la pasarela de punto final virtual. Las dos vías de acceso que se verifican se muestran en el siguiente diagrama:
-
Acceda a la VSI local.
ssh root@$IP_FIP_ONPREM -
Copie y pegue tres (3) de las variables capturadas anteriormente:
HOSTNAME_POSTGRESQL,HOSTNAME_COS,PORT_POSTGRESQL. -
Ejecute un mandato
digpara confirmar la resolución de la instancia de base de datos a través de la pasarela de punto final virtual.dig $HOSTNAME_POSTGRESQL -
Verifique la conectividad con la base de datos emitiendo un mandato
telnet. Debería mostrar "conectado".telnet $HOSTNAME_POSTGRESQL $PORT_POSTGRESQL -
Una vez conectado a la base de datos, emita un
Ctrl+Cpara desconectarse. -
Ejecute un mandato
digpara confirmar la resolución de la instancia de almacenamiento de objetos en la nube a través de la pasarela de punto final virtual.dig $HOSTNAME_COS -
Verifique la conectividad con la instancia de almacenamiento de objetos en la nube emitiendo un mandato
telnet. Debería mostrar "conectado".telnet $HOSTNAME_COS 443 -
Una vez conectado a la instancia de almacenamiento de objetos en la nube, emita un
Ctrl+Cpara desconectarse.
Si hay algún problema, consulte la sección Resolución de problemas en el repositorio github.
Ampliar opcionalmente la guía de aprendizaje
¿Desea añadir o ampliar esta guía de aprendizaje? Estas son algunas de las ideas:
- En el repositorioGitHub hay una aplicación que se puede desplegar que utiliza la base de datos y el almacenamiento de objetos en la nube. Las instrucciones sobre cómo realizar el despliegue están en el README.
- Si ha desplegado la aplicación, añada una zona DNS para la aplicación.
- Ejecute la aplicación en varios Virtual Servers for VPC y añada un equilibrador de carga para distribuir el tráfico de microservicio de entrada.
Eliminación de recursos
- Vaya a los Espacios de trabajo de Schematics y pulse su espacio de trabajo.
- Pulse Acciones... > Destruir recursos
- Pulse Acciones... > Suprimir espacio de trabajo