¿Qué son los PrivateLinks?
PrivateLinks es un servicio de red que permite la conexión privada entre un servicio en nube y su red virtual. Esta conexión se realiza sin exponer sus datos a la Internet pública, mejorando la seguridad al mantener el tráfico de red dentro de la red del proveedor de la nube. Al utilizar PrivateLinks, puede garantizar un acceso más seguro y fiable a los recursos de la nube, minimizando el riesgo de amenazas externas y reduciendo la latencia al mantener el tráfico interno en la red del proveedor de la nube.
Los PrivateLinks facilitan la comunicación unidireccional, mejorando la seguridad de las conexiones de red al garantizar que el tráfico sólo puede fluir en una dirección. Este diseño ayuda a evitar el acceso no autorizado y la filtración de datos, lo que refuerza aún más las ventajas de PrivateLinks para la seguridad de las redes en la nube.
Nota: XDCR no es compatible con Private Links por el momento.
1. Inicie sesión en la consola de administración de AWS
-
- Conéctese a su AWS Consola de gestión
- Debería llegar a la siguiente página:

- Conéctese a su AWS Consola de gestión
2. Crear una VPC en AWS
-
- En la barra de búsqueda, introduzca VPC:

- Debería llegar a la siguiente página:

- Esto debería abrir el Panel VPC:
- Elige tu región en la App Bar negra. En este ejemplo, estamos utilizando: EE.UU. Este (N. Virginia) - us-east-1

- Haga clic en Crear VPC. Se abrirá una página con la configuración de su VPC.
- Recursos para crear: Seleccione VPC y mucho más.

- Generación automática de etiquetas de identificación: Nombre su VPC.

Nota: Se recomienda utilizar un nombre significativo para poder identificar fácilmente qué VPC es la suya más adelante en el laboratorio. En este ejemplo, utilizamos privatelinkaws pero le recomendamos que utilice un nombre más personalizado para sus pruebas. - Bloque CIDR IPV4: Aceptar por defecto.

- Bloque CIDR IPV6: Ninguna.

- Arrendamiento: Por defecto

- Número de AZ: 1

- Número de subredes públicas: 1

- Número de subredes privadas: 0

- Pasarelas NAT: 0

- Puntos finales de la VPC: Pasarela S3

- Opciones DNS
- Recursos para crear: Seleccione VPC y mucho más.
- Compruebe la vista previa en la parte derecha de la página. Una vez que esté satisfecho, haga clic en Crear VPC.

- En la barra de búsqueda, introduzca VPC:
3. Crear instancia AWS EC2
-
- En la barra de búsqueda, introduzca EC2.

- Deberías aterrizar en el Panel EC2.

- Asegúrese de que que estás en la región correcta, como aquella en la que creaste tu VPC.

- Haga clic en Instancia de lanzamiento.

- Esto abrirá una página con la configuración de tu EC2.
- Nombre: Elija un nombre (ej. Privatelink-tester). Igual que antes, por favor, elija un nombre más significativo.

- Aplicación e imagen del sistema operativo: Amazon Linux

- Tipo de instancia: t2.micro (gratis)

- Inicio de sesión del par de clavesHaga clic en Crear un nuevo par de claves.
- Configuración de la red
- Haga clic en Editar

- VPC: elegir la misma VPC que la que ha creado anteriormente. Puede filtrar utilizando el nombre de su VPC o utilizando el ID de la VPC.

- SubredSeleccione la subred que creó anteriormente. Debería seleccionarse automáticamente, ya que solo ha creado 1 subred para esta VPC.

- Autoasignación de IP pública: Activar

- Grupo de seguridad del cortafuegos: Crear grupo de seguridad debe seleccionarse

- Reglas de grupos de seguridad de entrada: en Tipo de fuente, seleccione MI IP. Esto añadirá automáticamente tu IP.

- Haga clic en Editar
- Configurar el almacenamiento: por defecto.

- Aplicación e imagen del sistema operativo: Amazon Linux
- Nombre: Elija un nombre (ej. Privatelink-tester). Igual que antes, por favor, elija un nombre más significativo.
- Compruebe el resumen y haga clic en Iniciar instancia.

- Tras unos segundos, debería ver que la instancia se ha lanzado correctamente. Observe el ID de la instancia EC2. En este ejemplo: i-0d78dab1f00d85746. Haga clic en el ID de la instancia EC2.

- En la barra de búsqueda, introduzca EC2.
4. Instalar la herramienta CLI de AWS
-
- Para utilizar la herramienta CLI de AWS, siga estos pasos la documentación.
- Deberías obtener credenciales temporales.
-
- Para configurar la herramienta CLI de AWS, simplemente copia la Opción 1, Credenciales a corto plazo para establecer las variables de entorno de AWS y pégalo en tu terminal. (El siguiente es un ejemplo - por favor, pegue sus propias credenciales).
|
1 2 3 |
$ exportar AWS_ACCESS_KEY_ID="XXXXXXXXXXXXXXXXXXXXX" $ exportar AWS_SECRET_ACCESS_KEY="XXXXXXXXXXXXXXXXXXXXXX" $ exportar AWS_SESSION_TOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXX" |
5. Crear una base de datos Capella
-
- Iniciar sesión en Capella con su correo electrónico corporativo y sus credenciales.
- Dentro de su proyecto, cree una base de datos con la siguiente configuración:
-
- Una vez que la base de datos Saludabledesplegar viaje-muestra cubo:
B. Staje 1
En esta sección, aprenderás a:
|
1. Activar punto final privado
-
- En la base de datos de Capella, abra el menú Ajustes navegue hasta Punto final privado y haga clic en Habilitar punto final privado.

- Esta acción suele tardar unos 10 minutos en habilitar Private Endpoint.

- Cuando esté listo, debería ver que el DNS de Private Endpoint está ahora disponible en la UI de Capella. Observe también que los Private Endpoints se facturan cada hora para AWS Private Endpoints para esta base de datos hasta que deshabilite esta opción.

- En la base de datos de Capella, abra el menú Ajustes navegue hasta Punto final privado y haga clic en Habilitar punto final privado.
2. Añadir punto final privado
3. Crear VPC Endpoint en AWS desde CLI
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
(base) nishant.bhatia@macbook ~ % aws ec2 crear-vpc-punto final --vpc-id vpc-076a939ba49ce9ab6 --región us-este-1 --servicio-nombre com.amazonaws.vpce.us-este-1.vpce-svc-0b4d23fccabd9ea08 --vpc-punto final-tipo Interfaz --subred-ids subred-08245a74b701954ca { "VpcEndpoint": { "VpcEndpointId": "<strong>vpce-01dfcbabe2bef175e<\/strong>", "VpcEndpointType": "Interfaz, "VpcId": "vpc-076a939ba49ce9ab6", "NombreServicio": "com.amazonaws.vpce.us-east-1.vpce-svc-0b4d23fccabd9ea08", "Estado": "pendienteAceptación", "RouteTableIds": [], "SubnetIds": [ "subnet-08245a74b701954ca" ], "Grupos": [ { "GroupId": "sg-0231c72bc71c7753c", "NombreGrupo": "por defecto" } ], "IpAddressType": "ipv4", "DnsOptions": { "DnsRecordIpType": "ipv4" }, "PrivateDnsEnabled": falso, "RequesterManaged": falso, "NetworkInterfaceIds": [ "eni-0cdc0c23ab3760c13" ], "DnsEntries": [ { "DnsName": "vpce-01dfcbabe1bef165e-vq1r3b0l.vpce-svc-0b5d22fccabd9ea08.us-east-1.vpce.amazonaws.com", "HostedZoneId": "Z7HUB22XULQXV" }, { "DnsName": "vpce-01dfcbabe1aef175e-vq1r3b0l-us-east-1a.vpce-svc-0b5d23fccaad9ea08.us-east-1.vpce.amazonaws.com", "HostedZoneId": "Z7HUB22UULQYV" } ], "CreationTimestamp": "2024-01-04T16:29:47.138Z", "OwnerId": "306776352488" } } |
4. Conexión completa
C. Fase 2
En esta sección, aprenderás a:
|
1. Habilitar DNS privado en AWS
-
- Vaya al panel de control de la VPC y haga clic en Puntos finales en el menú de la izquierda y en el nombre de su VPC. Verá al menos 2 puntos finales:
- El endpoint S3 creado por AWS
- Un Endpoint sin nombre, creado por el comando CLI

- Abra el Endpoint sin nombre (en este caso vpce-01dfcbabe1bef175e) y del Acciones desplegable, con el mismo ID que el proporcionado en la lista Capella Private Endpoint Interface Endpoint. Seleccione Modificar el nombre DNS privado.

- Consulte Activar para este punto final y haga clic en Guardar cambios.

- Vaya al panel de control de la VPC y haga clic en Puntos finales en el menú de la izquierda y en el nombre de su VPC. Verá al menos 2 puntos finales:
2. Editar reglas de entrada para Private Endpoint en AWS
-
- Obtengamos primero el bloque CIDR de su VPC.
- Haga clic en Sus VPC en el panel de control de la VPC
- Filtre el nombre de su VPC.

- En el panel principal inferior, tenga en cuenta el CIDR IPV4. Debe ser 10.0.0.0/16

- Obtengamos ahora el Grupo de Seguridad de Endpoint
- Haga clic en Puntos finales en el panel de control de la VPC
- Filtre por el nombre de su VPC. Verá al menos 2:
- Seleccione el punto final sin nombre
- En la parte inferior del panel, vaya a la pestaña Grupos de seguridad

- Haga clic en el botón ID de grupo Enlazar y localizar Regla de entrada. Habrá una Regla de Entrada que se elegirá por defecto. Haga clic en Editar reglas de entrada.

- Haga clic en Añadir regla
- Obtengamos primero el bloque CIDR de su VPC.
3. Editar ACL de red para Private Endpoint en AWS
D. Probar Endpoint Privado con una Aplicacion
En esta sección, aprenderás a:
|
1. Añadir requisitos previos de Capella Security
-
- En su base de datos Capella, cree Credenciales de base de datos. Ejemplo: privatelinkcapella/Couchbase123$
- En Capella, copie el Endpoint privado. En este ejemplo, es o3bak2eyqhmw2tq.pl.cloud.couchbase.com

- En la Capella Ajustes de su base de datos, abra la página Certificado de seguridad y descargue el certificado.

- Deberías recibir un privatelinkdev-root-certificate.txt o similar en función del nombre de su base de datos.

2. Instale Python en su instancia AWS EC2
-
- Ahora vamos a SSH en EC2 Instancia.
- Conectémonos ahora a la instancia desde nuestro portátil.
- Haga clic en Cliente SSH Tab y sigue las instrucciones para asegurarte de que tu clave privada es accesible desde tu terminal y no visible públicamente.
- Haga clic en Cliente SSH Tab y sigue las instrucciones para asegurarte de que tu clave privada es accesible desde tu terminal y no visible públicamente.
|
1 |
chmod 400 NishantNVirginia.pem |
-
-
- Localice el ssh Ejemplo en la parte inferior y ejecútalo en tu terminal.
-
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ ssh -i "NishantNVirginia.pem" ec2-usuario@ec2-18-212-116-71.computar-1.amazonaws.es nishant.bhatia@JGWXHT4VFM descargas % ssh -i "NishantNVirginia.pem" ec2-usuario@ec2-18-212-126-71.computar-1.amazonaws.es En autenticidad de host 'ec2-18-212-126-71.compute-1.amazonaws.com (18.212.126.71)' puede't establecerse. La huella digital de la clave ED25519 es SHA256:RJorms+Tb2vpQxACTE7gcafmFpeP6xQSm3/Ny0WZYJg. Esta tecla no se conoce por ningún otro nombre ¿Está seguro de que desea seguir conectándose (sí/no/[huella digital])? sí Advertencia: Añadido permanentemente 'ec2-18-212-116-71.computar-1.amazonaws.es(ED25519) a la lista de hosts conocidos. , #_ ~\_ ####_ Amazon Linux 2023 ~~ \_#####\ ~~ \####| ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023 ~~ V~' '-> ~~~ / ~~._. _/ _/ _/ _/m/' |
-
- Ahora vamos a instalar el SDK de Python en la instancia. Nota: la siguiente instalación se compone de 3 comandos. Asegúrese de ejecutar cada uno de esos comandos por separado en su terminal. Cada comando también pedirá interactivamente la confirmación de la instalación del paquete.
|
1 2 3 4 5 |
sudo yum actualización sudo yum instale gcc gcc-c++ git pitón3-devel pitón3-pip openssl-devel sudo yum instale openssl-devel sudo yum instale openssl pitón3 -m pip instale couchbase |
-
- Para la lib, también puede ejecutar el siguiente comando.
|
1 2 3 |
sudo yum instale openssl11 #it's bien si esto no se ejecuta como la lib se añaden en openssl-devel |
3. Probar una aplicación python que se conecte al Capella Private Endpoint
-
- Salga de ssh para volver a su portátil local o puede abrir una nueva ventana shell
|
1 |
salida |
-
- Cambie el nombre del certificado Capella Security .txt que descargó anteriormente por privatelink-cert.pem. Sustituya el nombre del certificado raíz por el suyo propio.
-
-
1mv Descargas/privatelinkdev-raíz-certificado.txt enlace privado-cert.pem
- Copiemos privatelink-cert.pem en su instancia EC2. En el siguiente comando:
- Sustituya el nombre de su certificado por el suyo propio.
- Sustituya el archivo del par de claves por el que utilizó para crear su VPC.
- Sustituya el nombre ec2 por el suyo propio (reutilice el mismo que el proporcionado en el ejemplo de cliente SSH).
- Ejecuta el comando.
Tenga en cuenta que el siguiente comando scp es un solo mando.
-
|
1 2 3 |
cd descargas chmod 400 "NishantNVirginia.pem" scp -i "NishantNVirginia.pem" enlace privado-cert.pem ec2-usuario@ec2-18-212-126-71.computar-1.amazonaws.es:/Inicio/ec2-usuario |
-
- Copie el siguiente código python simple en su IDE preferido.
- Sustituye el endpoint privado por el que creaste anteriormente
- Sustituya las credenciales por las credenciales de la base de datos de Capella que creó anteriormente
- Sustituye privatelink-cert.pem por el nombre de tu certificado.
- Guarde el archivo como ejemplo.py.
- Copie el siguiente código python simple en su IDE preferido.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
importar sys de couchbase.grupo importar Grupo de couchbase.opciones importar ClusterOptions de couchbase.auth importar PasswordAuthenticator grupo = Grupo('couchbases://o3zak2eyqhmw2tq.pl.cloud.couchbase.com', ClusterOptions(PasswordAuthenticator("privatelinkcapella","Couchbase123$",ruta_certificado="/home/ec2-user/privatelink-cert.pem"))) cubo = grupo.cubo(muestra-viaje) colección = cubo.alcance(Inventario).colección(aerolínea) pruebe: resultado = colección.consiga(aerolínea_10) imprimir(resultado.contenido_como[dic]) excepto: imprimir("excepción:", sys.exc_info()[0]) |
-
- Copie el ejemplo.py en su instancia ec2. Igual que antes, sustituya el certificado por el suyo propio, así como el nombre ec2 por el suyo propio.
|
1 |
scp -i "NishantNVirginia.pem" ejemplo.py ec2-usuario@ec2-18-212-126-71.computar-1.amazonaws.es:/Inicio/ec2-usuario |
-
- SSH en su instancia EC2 de nuevo.
-
1ssh -i "NishantNVirginia.pem" ec2-usuario@ec2-18-212-126-71.computar-1.amazonaws.es
- Comprueba que tanto tu acme-cert.pem como tu archivo example.py están ahí.
|
1 2 |
[ec2-usuario@ip-10-0-12-174 ~]$ ls ejemplo.py enlace privado-cert.pem |
-
- Ejecute su script Python. Deberías obtener el documento JSON airline_10.
|
1 2 3 |
[ec2-usuario@ip-10-0-12-174 ~]$ pitón3 ejemplo.py {id: 10, tipo: aerolínea, nombre: Aire de 40 millas, iata: 'Q5', icao: MLA, Indicativo: MILE-AIR, país: Estados Unidos} |
4. Comandos curl de prueba que se conectan al Capella Private Endpoint
-
- Todavía en la instancia EC2, intente una consulta SQL++ utilizando las API REST del servidor. Sustituye el endpoint privado por el tuyo.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[ec2-usuario@ip-10-0-12-173 ~]$ rizo -u enlace privadocapella:Couchbase123$ --datos-urlencode "statement=select * from `viajes-muestra`.inventario.aerolinea limit 1;" https://o3zak3eyqhmw2tq.pl.cloud.couchbase.com:18093/query/service --insecure { "requestID": "9c201945-9252-4a14-806a-6ed948faa3e4", "firma": {"*":"*"}, "resultados": [ {"aerolínea":{"id":10,"tipo":"aerolínea","nombre":"40-Mile Air","iata":"Q5","icao":"MLA","Indicativo":"MILE-AIR","país":"Estados Unidos"}} ], "status": "éxito", "métricas": {"tiempo transcurrido": "7.410508ms","executionTime": "7.367052ms","resultCount": 1,"resultSize": 132,"serviceLoad": 6,"memoriautilizada": 127}, "perfil": {"phaseTimes": {"autorizar":"1.134491ms","buscar":"1.662602ms","instanciar":"758.586µs","analizar":"321.378µs","plan":"147.303µs","primaryScan":"3.249994ms","proyecto":"2.5µs","correr":"6.129593ms","arroyo":"6.55µs"},"phaseCounts": {"buscar":1,"primaryScan":1},"phaseOperators": {"autorizar":1,"buscar":1,"primaryScan":1,"proyecto":1,"arroyo":1},"requestTime": "2024-01-04T17:48:45.956Z","servicingHost": "svc-dqis-node-002.o3zak2eyqhmw2tq.cloud.couchbase.com:8091","executionTimings": {"#operator":"Autorizar","#stats":{"#phaseSwitches":4,"execTime":"3.122µs","servTime":"1.131369ms"},"privilegios":{"Lista":[{"Objetivo":"default:muestra-viaje.inventario.aerolinea","Priv":7,"Atrezzo":0}]},"~niño":{"#operator":"Secuencia","#stats":{"#phaseSwitches":1,"execTime":"8.805µs"},"~niños":[{"#operator":"PrimaryScan3","#stats":{"#itemsOut":1,"#phaseSwitches":7,"execTime":"16.575µs","kernTime":"3.142µs","servTime":"3.233419ms"},"cubo":"viaje-muestra","índice":"def_inventory_airline_primary","proyección_índice":{"clave_primaria":verdadero},"espacio clave":"aerolínea","límite":"1","espacio de nombres":"por defecto","ámbito":"inventario","usando":"gsi"},{"#operator":"Fetch","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":10,"execTime":"17.868µs","kernTime":"3.264724ms","servTime":"1.644734ms","memoriautilizada":127},"cubo":"viaje-muestra","espacio clave":"aerolínea","espacio de nombres":"por defecto","ámbito":"inventario"},{"#operator":"ProyectoInicial","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":8,"execTime":"132.805µs","kernTime":"4.943451ms","estado":"corriendo"},"descart_original":verdadero,"result_terms":[{"expr":"yo","estrella":verdadero}]},{"#operator":"Límite","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":4,"execTime":"2.823µs","kernTime":"1.265µs","memoriautilizada":127},"expr":"1"},{"#operator":"Corriente","#stats":{"#itemsIn":1,"#itemsOut":1,"#phaseSwitches":6,"execTime":"6.55µs","kernTime":"4.956921ms"}}]},"~versiones":["7.2.3-N1QL","7.2.3-6705-enterprise"]}}, "controles": {"scan_consistency": "ilimitado","use_cbo": "true","n1ql_feat_ctrl": "76","stmtType": "SELECCIONAR"} } |
-
- Todavía en la instancia EC2, intente un Consulta analítica mediante las API REST del servidor.
|
¡Ahora has establecido una conexión privada entre tu AWS VPC y Couchbase Capella usando un Private Link!
Conclusión
Implementar AWS Private Link para Couchbase Capella es crucial para mejorar la seguridad y fiabilidad de la comunicación de sus datos. Al establecer una conexión privada entre su VPC y Couchbase Capella, aísla eficazmente el tráfico de la Internet pública, lo que reduce el riesgo de exposición a posibles amenazas. Este enfoque garantiza que los datos permanezcan dentro de los límites seguros de su red, utilizando la sólida infraestructura de AWS para mantener una baja latencia y un alto rendimiento. AWS Private Link solo proporciona comunicación unidireccional, garantizando que los datos fluyan de forma segura desde sus recursos a Couchbase Capella sin ninguna ruta inversa. Esto convierte a AWS Private Link en una solución altamente segura y eficiente para la conectividad de bases de datos de nivel empresarial.




























