¿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 PrivateLinks por el momento.
Parte 1 - Instalación de Azure CLI
-
- Abra un terminal y instalar la CLI de Azure utilizando los comandos en este enlace para Mac y Windows:
brew update && brew install azure-cli # comando para MacOS
- Abra un terminal y instalar la CLI de Azure utilizando los comandos en este enlace para Mac y Windows:
Parte 2 - Creación de un grupo de recursos, una red virtual y una subred en Azure Cloud
-
- Vaya a su Página de inicio de Azure
- Inicie sesión en su cuenta Azure utilizando el código que aparece a continuación a través del terminal:
az login
123456789101112131415161718192021222324252627282930313233(base) nishant.bhatia@JGWXHT4VFM ~ % az loginA web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.[{"cloudName": "AzureCloud","homeTenantId": "897b2d61-f537-4fde-bc07-520be26839d8","id": "2192c0ac-2205-4be3-86bf-619230e53f35","isDefault": true,"managedByTenants": [],"name": "240 - SE EMEA","state": "Enabled","tenantId": "897b2d61-f537-4fde-bc07-520be26839d8","user": {"name": "nishant.bhatia@couchbase.com","type": "user"}},{"cloudName": "AzureCloud","homeTenantId": "4848c000-7611-4f22-84a4-165f8b43c829","id": "c7416817-fbcc-44bc-aaba-95e733cef88d","isDefault": false,"managedByTenants": [],"name": "240 - SE Test Subscription","state": "Enabled","tenantId": "4848c000-7611-4f22-84a4-165f8b43c829","user": {"name": "nishant.bhatia@couchbase.com","type": "user"}}]
- Cree un nuevo grupo de recursos en Azure. Reemplace el nombre privatelinkazure y ubicación eastus como desee.
Nota: Esto podría hacerse a través de Azure UI, sin embargo, es mucho más limpio crear uno con Azure CLI:-
az group create --name privatelinkazure --location eastus
12345678910111213(base) nishant.bhatia@JGWXHT4VFM ~ % az group create --name privatelinkazure --location eastus{"id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure","location": "eastus","managedBy": null,"name": "privatelinkazure","properties": {"provisioningState": "Succeeded"},"tags": null,"type": "Microsoft.Resources/resourceGroups"}
-
- Comprueba si se ha creado el grupo:
-
az group list --output table
123456789101112131415161718192021222324(base) nishant.bhatia@JGWXHT4VFM ~ % az group list --output tableName Location Status----------------------------------------- ------------------ ---------DefaultResourceGroup-SUK uksouth SucceededAaronsResources eastus SucceededRoisResourceGroup eastus SucceededMC_RoisResourceGroup_roiAKSCluster_eastus eastus SucceededPythonBenchmark_group eastus SucceededNetworkWatcherRG eastus Succeededcloud-shell-storage-eastus eastus SucceededmyResourceGroup eastus Succeededse-ceur-sennheiser-1_group eastus Succeedednishantsgroup eastus Succeededcloud-shell-storage-westus westus SucceededHirschGroup germanywestcentral SucceededDefaultResourceGroup-DEWC germanywestcentral Succeededprivatelinkazure eastus Succeededadamclevy switzerlandnorth SucceededAIshaqRG uksouth SucceededKarthiksrgp uksouth SucceededRichardDouglas uksouth SucceededAerospikeBioCatch_group northeurope Succeededcloud-shell-storage-westeurope westeurope Succeeded
-
- El siguiente paso es crear un red virtual y subred en el grupo de recursos que acabamos de crear.
Sustituir PLVIRTUALNETWORK, Por defecto con el nombre que desee. Puede mantener la dirección a 10.0.0.0/16 y 10.0.0.0/24:-
az network vnet create --name PLVIRTUALNETWORK --resource-group privatelinkazure --location eastus --address-prefixes 10.0.0.0/16 --subnet-name default --subnet-prefix 10.0.0.0/24
1234567891011121314151617181920212223242526272829303132333435(base) nishant.bhatia@JGWXHT4VFM ~ % az network vnet create --name PLVIRTUALNETWORK --resource-group privatelinkazure --location eastus --address-prefixes 10.0.0.0/16 --subnet-name default --subnet-prefix 10.0.0.0/24{"newVNet": {"addressSpace": {"addressPrefixes": ["10.0.0.0/16"]},"enableDdosProtection": false,"etag": "W/\"41972493-3e9e-4dd1-88ac-6bab0fe2e9e6\"","id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK","location": "eastus","name": "PLVIRTUALNETWORK","provisioningState": "Succeeded","resourceGroup": "privatelinkazure","resourceGuid": "89b24aec-cd5a-4ca7-a92e-912b8a9c10f8","subnets": [{"addressPrefix": "10.0.0.0/24","delegations": [],"etag": "W/\"41972493-3e9e-4dd1-88ac-6bab0fe2e9e6\"","id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK/subnets/default","name": "default","privateEndpointNetworkPolicies": "Disabled","privateLinkServiceNetworkPolicies": "Enabled","provisioningState": "Succeeded","resourceGroup": "privatelinkazure","type": "Microsoft.Network/virtualNetworks/subnets"}],"type": "Microsoft.Network/virtualNetworks","virtualNetworkPeerings": []}}
-
Parte 3: Configuración de 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 Saludabledespliegue el viaje-muestra cubo:
Parte 4: Activar Private Endpoint
-
- En su base de datos Capella, abra la página Configuración, vaya a Punto final privado y haga clic en Activar 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 puntos finales privados se facturan cada hora para los puntos finales privados de Azure para esta base de datos hasta que desactive esta opción.

- Haga clic en Añadir punto final privado. Añada el nombre del grupo de recursos y el nombre de la subred que hemos creado anteriormente. En este caso el grupo de recursos será privatelinkazureLa red virtual será PLVIRTUALNETWORK y el nombre de la subred será por defecto. Consulte la Parte 2 anterior.


- Descarga el script y ábrelo en Notepad++ o Sublime Text.


- Abre de nuevo el Terminal Azure donde creamos el grupo de recursos, la red virtual y la subred.
- Desde shell script que hemos descargado, ejecute los tres primeros comandos a partir de:
- Crear punto final privado:
az network private-endpoint create -g privatelinkazure -n pl-7330b162-12a1-4695-9317-2ecae322690b --vnet-name PLVIRTUALNETWORK --subnet default --private-connection-resource-id 'pl-4e207316-42c5-4561-920e-d044dd57f771.e520e4d0-fd92-440e-9a82-eabd3562761c.eastus.azure.privatelinkservice' --connection-name pl-7330b162-12a1-4695-9317-2ecae322690b -l eastus --manual-request true
- Crear punto final privado:
- En su base de datos Capella, abra la página Configuración, vaya a Punto final privado y haga clic en Activar punto final privado.
|
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@JGWXHT4VFM ~ % az network private-endpoint create -g privatelinkazure -n pl-7330b162-12a1-4695-9317-2ecae322690b --vnet-name PLVIRTUALNETWORK --subnet default --private-connection-resource-id 'pl-4e207316-42c5-4561-920e-d044dd57f771.e520e4d0-fd92-440e-9a82-eabd3562761c.eastus.azure.privatelinkservice' --connection-name pl-7330b162-12a1-4695-9317-2ecae322690b -l eastus --manual-request true { "customDnsConfigs": [], "customNetworkInterfaceName": "", "etag": "W/\"465e5e06-5340-4aa9-a5c6-c3fa51c4a51a\"", "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/privateEndpoints/pl-7330b162-12a1-4695-9317-2ecae322690b", "ipConfigurations": [], "location": "eastus", "manualPrivateLinkServiceConnections": [ { "etag": "W/\"465e5e06-5340-4aa9-a5c6-c3fa51c4a51a\"", "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/privateEndpoints/pl-7330b162-12a1-4695-9317-2ecae322690b/manualPrivateLinkServiceConnections/pl-7330b162-12a1-4695-9317-2ecae322690b", "name": "pl-7330b162-12a1-4695-9317-2ecae322690b", "privateLinkServiceConnectionState": { "actionsRequired": "None", "description": "Awaiting Approval", "status": "Pending" }, "privateLinkServiceId": "pl-4e207316-42c5-4561-920e-d044dd57f771.e520e4d0-fd92-440e-9a82-eabd3562761c.eastus.azure.privatelinkservice", "provisioningState": "Succeeded", "resourceGroup": "privatelinkazure", "type": "Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections" } ], "name": "pl-7330b162-12a1-4695-9317-2ecae322690b", "networkInterfaces": [ { "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/networkInterfaces/pl-7330b162-12a1-4695-9317-2ecae322690b.nic.9cdf1d1d-ad92-4a2a-8391-1396c4f4701a", "resourceGroup": "privatelinkazure" } ], "privateLinkServiceConnections": [], "provisioningState": "Succeeded", "resourceGroup": "privatelinkazure", "subnet": { "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK/subnets/default", "resourceGroup": "privatelinkazure" }, "type": "Microsoft.Network/privateEndpoints" } |
-
- Crear zona DNS:
az network private-dns zone create -g privatelinkazure -n private-endpoint.wqdxhcxm9lcue9g.cloud.couchbase.com
- Crear zona DNS:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
(base) nishant.bhatia@JGWXHT4VFM ~ % az network private-dns zone create -g privatelinkazure -n private-endpoint.wqdxhcxm9lcue9g.cloud.couchbase.com { "etag": "8af683b0-e5a6-4abe-a6bf-94ee0261c33b", "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/privateDnsZones/private-endpoint.wqdxhcxm9lcue9g.cloud.couchbase.com", "location": "global", "maxNumberOfRecordSets": 25000, "maxNumberOfVirtualNetworkLinks": 1000, "maxNumberOfVirtualNetworkLinksWithRegistration": 100, "name": "private-endpoint.wqdxhcxm9lcue9g.cloud.couchbase.com", "numberOfRecordSets": 1, "numberOfVirtualNetworkLinks": 0, "numberOfVirtualNetworkLinksWithRegistration": 0, "provisioningState": "Succeeded", "resourceGroup": "privatelinkazure", "type": "Microsoft.Network/privateDnsZones" } |
-
- Enlazar zona DNS:
az network private-dns link vnet create -g privatelinkazure -n dnslink-4e207316-42c5-4561-920e-d044dd57f771 -z private-endpoint.wqdxhcxm9lcue9g.cloud.couchbase.com -v PLVIRTUALNETWORK -e False
- Enlazar zona DNS:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
(base) nishant.bhatia@JGWXHT4VFM ~ % az network private-dns link vnet create -g privatelinkazure -n dnslink-4e207316-42c5-4561-920e-d044dd57f771 -z private-endpoint.wqdxhcxm9lcue9g.cloud.couchbase.com -v PLVIRTUALNETWORK -e False { "etag": "\"540b14b1-0000-0100-0000-65983fc10000\"", "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/privateDnsZones/private-endpoint.wqdxhcxm9lcue9g.cloud.couchbase.com/virtualNetworkLinks/dnslink-4e207316-42c5-4561-920e-d044dd57f771", "location": "global", "name": "dnslink-4e207316-42c5-4561-920e-d044dd57f771", "provisioningState": "Succeeded", "registrationEnabled": false, "resourceGroup": "privatelinkazure", "type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks", "virtualNetwork": { "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK", "resourceGroup": "privatelinkazure" }, "virtualNetworkLinkState": "Completed" } |
Parte 4: Aceptar la conexión pendiente y verificar el endpoint
-
- Dirígete de nuevo a la interfaz de usuario de Capella y acepta la conexión pendiente. Una vez establecida la conexión, verá un icono Enlace estado.


- Copie y pegue el punto final de la interfaz de Capella UI en un bloc de notas. En este caso:
pl-7330b162-12a1-4695-9317-2ecae322690b.ef04ba0b-7b81-4404-8db2-01b3f116dfa3 - En el código siguiente, sustituya el punto final de la interfaz por su punto final hasta el punto "." En este caso:
pl-7330b162-12a1-4695-9317-2ecae322690baz network private-endpoint show --name pl-7330b162-12a1-4695-9317-2ecae322690b --resource-group privatelinkazure
- Dirígete de nuevo a la interfaz de usuario de Capella y acepta la conexión pendiente. Una vez establecida la conexión, verá un icono Enlace estado.
|
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 |
(base) nishant.bhatia@JGWXHT4VFM ~ % az network private-endpoint show --name pl-7330b162-12a1-4695-9317-2ecae322690b --resource-group privatelinkazure { "customDnsConfigs": [], "customNetworkInterfaceName": "", "etag": "W/\"0b317ee7-e04e-4255-aa0c-b58ccd8fc5ff\"", "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/privateEndpoints/pl-7330b162-12a1-4695-9317-2ecae322690b", "ipConfigurations": [], "location": "eastus", "manualPrivateLinkServiceConnections": [ { "etag": "W/\"0b317ee7-e04e-4255-aa0c-b58ccd8fc5ff\"", "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/privateEndpoints/pl-7330b162-12a1-4695-9317-2ecae322690b/manualPrivateLinkServiceConnections/pl-7330b162-12a1-4695-9317-2ecae322690b", "name": "pl-7330b162-12a1-4695-9317-2ecae322690b", "privateLinkServiceConnectionState": { "actionsRequired": "", "description": "", "status": "Approved" }, "privateLinkServiceId": "pl-4e207316-42c5-4561-920e-d044dd57f771.e520e4d0-fd92-440e-9a82-eabd3562761c.eastus.azure.privatelinkservice", "provisioningState": "Succeeded", "resourceGroup": "privatelinkazure", "type": "Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections" } ], "name": "pl-7330b162-12a1-4695-9317-2ecae322690b", "networkInterfaces": [ { "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/networkInterfaces/pl-7330b162-12a1-4695-9317-2ecae322690b.nic.9cdf1d1d-ad92-4a2a-8391-1396c4f4701a", "resourceGroup": "privatelinkazure" } ], "privateLinkServiceConnections": [], "provisioningState": "Succeeded", "resourceGroup": "privatelinkazure", "subnet": { "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK/subnets/default", "resourceGroup": "privatelinkazure" }, "type": "Microsoft.Network/privateEndpoints" } |
¡Ahora has establecido una conexión privada entre tu Azure VPC y Couchbase Capella usando un Private Link!
Conclusión
Azure Private Link ofrece un método seguro y eficiente para conectarse a Couchbase Capella, asegurando que tus datos permanezcan protegidos de amenazas externas manteniendo el tráfico dentro de la red privada de Microsoft. Esta configuración elimina la exposición a la Internet pública, reduciendo así significativamente la superficie de ataque. Azure Private Link sólo proporciona comunicación unidireccional, asegurando que los datos fluyen de forma segura desde tus recursos a Couchbase Capella sin ninguna ruta inversa. Además, Azure Private Link proporciona un rendimiento de red consistente, aprovechando la red troncal global de Microsoft para ofrecer una conectividad fiable y de baja latencia. Esto hace de Azure Private Link un componente esencial para operaciones de bases de datos seguras y de alto rendimiento en la nube.
Documentación






