Red privada virtual (VPN)
Aprenda a conectar AEM as a Cloud Service con su VPN para crear canales de comunicación seguros entre AEM y los servicios internos.
¿Qué es una red privada virtual?
La red privada virtual (VPN) permite que un cliente de AEM as a Cloud Service conecte los entornos de AEM dentro de un programa de Cloud Manager a una VPN existente admitida. La VPN permite conexiones seguras y controladas entre AEM as a Cloud Service y los servicios dentro de la red del cliente.
Un programa Cloud Manager solo puede tener un tipo de infraestructura de red single. Asegúrese de que Virtual Private Network sea el tipo de infraestructura de red más apropiado para su AEM as a Cloud Service antes de ejecutar los siguientes comandos.
Requisitos previos
Se requiere lo siguiente al configurar una red privada virtual mediante las API de Cloud Manager:
-
Cuenta de Adobe con permisos de propietario de Cloud Manager Business
-
Acceso a credenciales de autenticación de la API de Cloud Manager
- ID de organización (también conocido como ID de organización de IMS)
- ID del cliente (también conocido como clave API)
- Token de acceso (también conocido como Token de portador)
-
El ID del programa Cloud Manager
-
Los ID de entorno de Cloud Manager
-
Una red privada virtual basada en rutas, con acceso a todos los parámetros de conexión necesarios.
Para obtener más información revise cómo configurar y obtener las credenciales de la API de Cloud Manager para utilizarlas en una llamada de la API de Cloud Manager.
curl
para realizar las configuraciones de la API de Cloud Manager—si prefiere un enfoque programático. Los comandos curl
proporcionados suponen una sintaxis de Linux® o macOS. Si usa el símbolo del sistema de Windows, reemplace el carácter de salto de línea \
por ^
.Habilitar red privada virtual por programa
Comience habilitando la red privada virtual en AEM as a Cloud Service.
La salida de puerto flexible se puede activar mediante Cloud Manager. Los siguientes pasos describen cómo habilitar la salida de puerto flexible en AEM as a Cloud Service mediante Cloud Manager.
-
Inicie sesión en Adobe Experience Manager Cloud Manager como propietario de Cloud Manager Business.
-
Vaya al programa deseado.
-
En el menú de la izquierda, vaya a Servicios > Infraestructura de red.
-
Seleccione el botón Agregar infraestructura de red.
-
En el cuadro de diálogo Agregar infraestructura de red, seleccione la opción Red privada virtual. Rellene los campos y seleccione Continuar. Póngase en contacto con el administrador de red de su organización para obtener los valores correctos.
-
Cree al menos una conexión VPN. Asigne un nombre significativo a la conexión y seleccione el botón Agregar conexión.
-
Configure la conexión VPN. Póngase en contacto con el administrador de red de su organización para obtener los valores correctos. Seleccione Guardar para confirmar la adición de la conexión.
-
Si se requieren varias conexiones VPN, agregue más conexiones según sea necesario. Cuando se agreguen todas las conexiones VPN, seleccione Continuar.
-
Seleccione Guardar para confirmar la adición de la VPN y todas las conexiones configuradas.
-
Espere a que se cree la infraestructura de red y se marque como Listo. Este proceso puede tardar hasta 1 hora.
Con la VPN creada, ahora puede configurarla mediante las API de Cloud Manager como se describe a continuación.
La red privada virtual se puede habilitar mediante las API de Cloud Manager. Los siguientes pasos describen cómo habilitar una VPN en AEM as a Cloud Service mediante la API de Cloud Manager.
-
En primer lugar, determine la región en la que se necesita la conexión avanzada mediante la operación listRegions de la API de Cloud Manager. Se requiere
region name
para realizar llamadas subsiguientes a la API de Cloud Manager. Normalmente, se utiliza la región en la que reside el entorno de producción.Busque la región de su entorno de AEM as a Cloud Service en Cloud Manager en los detalles del entorno. El nombre de región mostrado en Cloud Manager se puede asignar al código de región utilizado en la API de Cloud Manager.
solicitud HTTP listRegions
code language-shell $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/regions \ -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \ -H 'x-api-key: <CLIENT_ID>' \ -H 'Authorization: Bearer <ACCESS_TOKEN>' \ -H 'Content-Type: application/json'
-
Habilite la red privada virtual para un programa de Cloud Manager mediante la operación de las API de Cloud Manager createNetworkInfrastructure. Utilice el código
region
apropiado obtenido de la operación de la API de Cloud ManagerlistRegions
.solicitud HTTP createNetworkInfrastructure
code language-shell $ curl -X POST https://cloudmanager.adobe.io/api/program/{programId}/networkInfrastructures \ -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \ -H 'x-api-key: <CLIENT_ID>' \ -H 'Authorization: Bearer <ACCESS_TOKEN>' \ -H 'Content-Type: application/json' -d @./vpn-create.json
Defina los parámetros JSON en un
vpn-create.json
y proporcione para ondularse mediante... -d @./vpn-create.json
.Descargue el ejemplo vpn-create.json. Este archivo es solo un ejemplo. Configure el archivo según sea necesario en función de los campos opcionales/obligatorios documentados en enableEnvironmentAdvancedNetworkingConfiguration.
code language-json { "kind": "vpn", "region": "va7", "addressSpace": [ "10.104.182.64/26" ], "dns": { "resolvers": [ "10.151.201.22", "10.151.202.22", "10.154.155.22" ], "domains": [ "wknd.site", "wknd.com" ] }, "connections": [{ "name": "connection-1", "gateway": { "address": "195.231.212.78", "addressSpace": [ "10.151.0.0/16", "10.152.0.0/16", "10.153.0.0/16", "10.154.0.0/16", "10.142.0.0/16", "10.143.0.0/16", "10.124.128.0/17" ] }, "sharedKey": "<secret_shared_key>", "ipsecPolicy": { "dhGroup": "ECP256", "ikeEncryption": "AES256", "ikeIntegrity": "SHA256", "ipsecEncryption": "AES256", "ipsecIntegrity": "SHA256", "pfsGroup": "ECP256", "saDatasize": 102400000, "saLifetime": 3600 } }] }
Espere entre 45 y 60 minutos para que el programa Cloud Manager aprovisione la infraestructura de red.
-
Compruebe que el entorno haya finalizado la configuración de la red privada virtual mediante la operación getNetworkInfrastructure de la API de Cloud Manager, utilizando la
id
devuelta desde la solicitud HTTPcreateNetworkInfrastructure
del paso anterior.petición HTTP getNetworkInfrastructure
code language-shell $ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/networkInfrastructure/{networkInfrastructureId} \ -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \ -H 'x-api-key: <CLIENT_ID>' \ -H 'Authorization: <YOUR_BEARER_TOKEN>' \ -H 'Content-Type: application/json'
Compruebe que la respuesta HTTP contiene un estado de listo. Si aún no está listo, vuelva a comprobar el estado cada pocos minutos.
Con la VPN creada, ahora puede configurarla mediante las API de Cloud Manager como se describe a continuación.
Configuración de proxies de red privada virtual por entorno
-
Habilite y configure la configuración de Red privada virtual en cada entorno de AEM as a Cloud Service mediante la operación enableEnvironmentAdvancedNetworkingConfiguration de la API de Cloud Manager.
petición HTTP enableEnvironmentAdvancedNetworkingConfiguration
code language-shell $ curl -X PUT https://cloudmanager.adobe.io/api/program/{programId}/environment/{environmentId}/advancedNetworking \ -H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \ -H 'x-api-key: <CLIENT_ID>' \ -H 'Authorization: Bearer <ACCESS_TOKEN>' \ -H 'Content-Type: application/json' \ -d @./vpn-configure.json
Defina los parámetros JSON en un
vpn-configure.json
y proporcione para ondularse mediante... -d @./vpn-configure.json
.
Descargue el ejemplo vpn-configure.json
{
"nonProxyHosts": [
"example.net",
"*.example.org"
],
"portForwards": [
{
"name": "mysql.example.com",
"portDest": 3306,
"portOrig": 30001
},
{
"name": "smtp.sendgrid.com",
"portDest": 465,
"portOrig": 30002
}
]
}
nonProxyHosts
declara un conjunto de hosts para los que el puerto 80 o 443 debe enrutarse a través de los intervalos de direcciones IP compartidos predeterminados en lugar de la IP de salida dedicada. nonProxyHosts
puede resultar útil ya que la salida de tráfico a través de direcciones IP compartidas se optimiza automáticamente con Adobe.
Para cada asignación portForwards
, la red avanzada define la siguiente regla de reenvío:
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest
Si su implementación de AEM only requiere conexiones HTTP/HTTPS con un servicio externo, deje vacía la matriz portForwards
, ya que estas reglas solo son necesarias para solicitudes que no sean HTTP/HTTPS.
2. Para cada entorno, valide que las reglas de enrutamiento VPN estén en vigor mediante la operación getEnvironmentAdvancedNetworkingConfiguration de la API de Cloud Manager.
petición HTTP getEnvironmentAdvancedNetworkingConfiguration
$ curl -X GET https://cloudmanager.adobe.io/api/program/{programId}/environment/{environmentId}/advancedNetworking \
-H 'x-gw-ims-org-id: <ORGANIZATION_ID>' \
-H 'x-api-key: <CLIENT_ID>' \
-H 'Authorization: Bearer <ACCESS_TOKEN>' \
-H 'Content-Type: application/json'
3. Las configuraciones de proxy de red privada virtual se pueden actualizar mediante la operación enableEnvironmentAdvancedNetworkingConfiguration de la API de Cloud Manager. Recuerde que enableEnvironmentAdvancedNetworkingConfiguration
es una operación de PUT
, por lo que todas las reglas deben proporcionarse con cada invocación de esta operación.
4. Ahora puede utilizar la configuración de salida de red privada virtual en su código y configuración personalizados de AEM.
Conexión a servicios externos a través de la red privada virtual
Con la red privada virtual habilitada, el código y la configuración de AEM pueden utilizarlos para realizar llamadas a servicios externos a través de la VPN. Hay dos tipos de llamadas externas que AEM trata de manera diferente:
- Llamadas HTTP/HTTPS a servicios externos
- Estos servicios externos incluyen llamadas HTTP/HTTPS realizadas a servicios que se ejecutan en puertos que no son los puertos estándar 80 o 443.
- Llamadas no HTTP/HTTPS a servicios externos
- Estos servicios externos incluyen cualquier llamada que no sea HTTP, como conexiones a servidores de correo, bases de datos SQL o servicios que utilizan protocolos distintos de HTTP/HTTPS.
Las solicitudes HTTP/HTTPS de AEM en puertos estándar (80/443) están permitidas de forma predeterminada, pero no utilizan la conexión VPN si no se configura correctamente como se describe a continuación.
HTTP/HTTPS
Al crear conexiones HTTP/HTTPS desde AEM, al utilizar una VPN, las conexiones HTTP/HTTPS se procesan como proxy automáticamente fuera de AEM. No se requiere código ni configuración adicional para admitir conexiones HTTP/HTTPS.
Ejemplos de código
Ejemplos de código de conexiones no HTTP/HTTPS
Al crear conexiones no HTTP/HTTPS (por ejemplo, SQL, SMTP, etc.) de AEM, la conexión debe realizarse mediante un nombre de host especial proporcionado por AEM.
AEM_PROXY_HOST
System.getenv("AEM_PROXY_HOST")
$[env:AEM_PROXY_HOST]
A continuación, se llama a las conexiones a servicios externos a través de AEM_PROXY_HOST
y del puerto asignado (portForwards.portOrig
), que AEM enruta al nombre de host externo asignado (portForwards.name
) y al puerto (portForwards.portDest
).
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest
Ejemplos de código
Limitar el acceso a AEM as a Cloud Service a través de la VPN
La configuración de Red privada virtual limita el acceso a los entornos de AEM as a Cloud Service a una VPN.