¿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 inicio de sesiónA web navegador tiene ha sido abierto en https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Continúe con el inicio de sesión en el navegador web. Si no hay ningún navegador web disponible o si el navegador web no se abre, utilice el flujo de código de dispositivo con `az login --use-device-code`.[{"cloudName": "AzureCloud","homeTenantId": "897b2d61-f537-4fde-bc07-520be26839d8","id": "2192c0ac-2205-4be3-86bf-619230e53f35","isDefault": verdadero,"managedByTenants": [],"nombre": "240 - SE EMEA","estado": "Activado","tenantId": "897b2d61-f537-4fde-bc07-520be26839d8","usuario": {"nombre": "nishant.bhatia@couchbase.com","tipo": "usuario"}},{"cloudName": "AzureCloud","homeTenantId": "4848c000-7611-4f22-84a4-165f8b43c829","id": "c7416817-fbcc-44bc-aaba-95e733cef88d","isDefault": falso,"managedByTenants": [],"nombre": "240 - Suscripción de prueba SE","estado": "Activado","tenantId": "4848c000-7611-4f22-84a4-165f8b43c829","usuario": {"nombre": "nishant.bhatia@couchbase.com","tipo": "usuario"}}]
- 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 grupo crear --nombre privatelinkazure --ubicación eastus{"id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure","localización": "eastus","managedBy": null,"nombre": "privatelinkazure","propiedades": {"provisioningState": "Triunfó"},"Etiquetas: null,"tipo": "Microsoft.Resources/resourceGroups"}
-
- Comprueba si se ha creado el grupo:
-
az group list --output table
123456789101112131415161718192021222324(base) nishant.bhatia@JGWXHT4VFM ~ % az grupo lista --salida tablaNombre Ubicación Estado----------------------------------------- ------------------ ---------DefaultResourceGroup-SUK uksouth Con éxitoAaronsResources eastus Con éxitoRoisResourceGroup eastus Con éxitoMC_RoisResourceGroup_roiAKSCluster_eastus eastus Con éxitoPythonBenchmark_grupo eastus Con éxitoNetworkWatcherRG eastus Con éxitonube-concha-almacenamiento-eastus eastus Con éxitomiGrupoDeRecursos eastus Con éxitoSe-ceur-sennheiser-1_grupo eastus Con éxitonishantsgroup eastus Con éxitonube-concha-almacenamiento-westus westus Con éxitoGrupo Hirsch germanywestcentral Con éxitoDefaultResourceGroup-DEWC germanywestcentral Con éxitoprivatelinkazure eastus Con éxitoadamclevy suiza norte Con éxitoAIshaqRG uksouth Con éxitoKarthiksrgp uksouth Con éxitoRichardDouglas uksouth Con éxitoAerospikeBioCatch_grupo EUROPA DEL NORTE Con éxitonube-concha-almacenamiento-westeurope westeurope Con éxito
-
- 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 red vnet crear --nombre PLVIRTUALNETWORK --recurso-grupo privatelinkazure --ubicación eastus --dirección-prefijos 10.0.0.0/16 --subred-nombre por defecto --subred-prefijo 10.0.0.0/24{"nuevaVNet": {"direcciónEspacio": {"prefijos de dirección": ["10.0.0.0/16"]},"enableDdosProtection": falso,"etag": "W/\"41972493-3e9e-4dd1-88ac-6bab0fe2e9e6\"","id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK","localización": "eastus","nombre": "PLVIRTUALNETWORK","provisioningState": "Triunfó","resourceGroup": "privatelinkazure","resourceGuid": "89b24aec-cd5a-4ca7-a92e-912b8a9c10f8","subredes": [{"prefijodireccion": "10.0.0.0/24","delegaciones": [],"etag": "W/\"41972493-3e9e-4dd1-88ac-6bab0fe2e9e6\"","id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK/subnets/default","nombre": "por defecto","privateEndpointNetworkPolicies": "Desactivado","privateLinkServiceNetworkPolicies": "Activado","provisioningState": "Triunfó","resourceGroup": "privatelinkazure","tipo": "Microsoft.Network/virtualNetworks/subnets"}],"tipo": "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 red privado-punto final crear -g privatelinkazure -n pl-7330b162-12a1-4695-9317-2ecae322690b --vnet-nombre PLVIRTUALNETWORK --subred por defecto --privado-conexión-recurso-id 'pl-4e207316-42c5-4561-920e-d044dd57f771.e520e4d0-fd92-440e-9a82-eabd3562761c.eastus.azure.privatelinkservice' --conexión-nombre pl-7330b162-12a1-4695-9317-2ecae322690b -l eastus --manual-solicitar verdadero { "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", "ipConfiguraciones": [], "localización": "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", "nombre": "pl-7330b162-12a1-4695-9317-2ecae322690b", "privateLinkServiceConnectionState": { "actionsRequired": "Ninguno", "descripción": "En espera de aprobación", "status": "Pendiente" }, "privateLinkServiceId": "pl-4e207316-42c5-4561-920e-d044dd57f771.e520e4d0-fd92-440e-9a82-eabd3562761c.eastus.azure.privatelinkservice", "provisioningState": "Triunfó", "resourceGroup": "privatelinkazure", "tipo": "Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections" } ], "nombre": "pl-7330b162-12a1-4695-9317-2ecae322690b", "interfaces de red": [ { "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": "Triunfó", "resourceGroup": "privatelinkazure", "subred": { "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK/subnets/default", "resourceGroup": "privatelinkazure" }, "tipo": "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 red privado-dns zona crear -g privatelinkazure -n privado-punto final.wqdxhcxm9lcue9g.nube.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", "localización": "global", "maxNumberOfRecordSets": 25000, "maxNumberOfVirtualNetworkLinks": 1000, "maxNumberOfVirtualNetworkLinksWithRegistration": 100, "nombre": "private-endpoint.wqdxhcxm9lcue9g.cloud.couchbase.com", "numberOfRecordSets": 1, "numberOfVirtualNetworkLinks": 0, "numberOfVirtualNetworkLinksWithRegistration": 0, "provisioningState": "Triunfó", "resourceGroup": "privatelinkazure", "tipo": "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 red privado-dns enlace vnet crear -g privatelinkazure -n dnslink-4e207316-42c5-4561-920e-d044dd57f771 -z privado-punto final.wqdxhcxm9lcue9g.nube.couchbase.com -v PLVIRTUALNETWORK -e Falso { "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", "localización": "global", "nombre": "dnslink-4e207316-42c5-4561-920e-d044dd57f771", "provisioningState": "Triunfó", "registrationEnabled": falso, "resourceGroup": "privatelinkazure", "tipo": "Microsoft.Network/privateDnsZones/virtualNetworkLinks", "redvirtual": { "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK", "resourceGroup": "privatelinkazure" }, "virtualNetworkLinkState": "Completado" } |
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-2ecae322690b
az 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 red privado-punto final Mostrar --nombre pl-7330b162-12a1-4695-9317-2ecae322690b --recurso-grupo 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", "ipConfiguraciones": [], "localización": "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", "nombre": "pl-7330b162-12a1-4695-9317-2ecae322690b", "privateLinkServiceConnectionState": { "actionsRequired": "", "descripción": "", "status": "Aprobado" }, "privateLinkServiceId": "pl-4e207316-42c5-4561-920e-d044dd57f771.e520e4d0-fd92-440e-9a82-eabd3562761c.eastus.azure.privatelinkservice", "provisioningState": "Triunfó", "resourceGroup": "privatelinkazure", "tipo": "Microsoft.Network/privateEndpoints/manualPrivateLinkServiceConnections" } ], "nombre": "pl-7330b162-12a1-4695-9317-2ecae322690b", "interfaces de red": [ { "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": "Triunfó", "resourceGroup": "privatelinkazure", "subred": { "id": "/subscriptions/2192c0ac-2205-4be3-86bf-619230e53f35/resourceGroups/privatelinkazure/providers/Microsoft.Network/virtualNetworks/PLVIRTUALNETWORK/subnets/default", "resourceGroup": "privatelinkazure" }, "tipo": "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