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 servicios internos.

¿Qué es la red privada virtual?

La red privada virtual (VPN) permite que un cliente as a Cloud Service AEM se conecte los entornos AEM dentro de un programa de Cloud Manager a un existente, admitido VPN. Esto permite conexiones seguras y controladas entre AEM as a Cloud Service y servicios dentro de la red del cliente.

Un programa de Cloud Manager solo puede tener un single tipo de infraestructura de red. Asegúrese de que la red privada virtual sea la más tipo apropiado de infraestructura de red para su AEM as a Cloud Service antes de ejecutar los siguientes comandos.

NOTA

Tenga en cuenta que no se admite la conexión del entorno de compilación de Cloud Manager a una VPN. Si debe acceder a artefactos binarios desde un repositorio privado, debe configurar un repositorio seguro y protegido por contraseña con una URL disponible en la Internet pública tal como se describe aquí.

Requisitos previos

A la hora de configurar la red privada virtual, es necesario lo siguiente:

Para obtener más información, consulte el siguiente tutorial sobre cómo configurar, configurar y obtener credenciales de API de Cloud Manager y cómo utilizarlas para realizar una llamada de API de Cloud Manager.

Este tutorial utiliza curl para realizar las configuraciones de la API de Cloud Manager. El curl asume una sintaxis Linux/macOS. Si utiliza el símbolo del sistema de Windows, reemplace la variable \ carácter de salto de línea con ^.

Habilitar la red privada virtual por programa

Comience habilitando la Red privada virtual en AEM as a Cloud Service.

  1. En primer lugar, determine la región en la que se necesitan las redes avanzadas mediante la API de Cloud Manager listRegion operación. La variable region name es necesario para realizar llamadas posteriores a la API de Cloud Manager. Normalmente, se utiliza la región en la que reside el entorno de producción.

    petición HTTP listRegion

    $ 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'
    
  2. Habilitar la red privada virtual para un programa de Cloud Manager mediante las API de Cloud Manager createNetworkInfrastructure operación. Utilice el region código obtenido de la API de Cloud Manager listRegions operación.

    solicitud HTTP createNetworkInfrastructure

    $ 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 una vpn-create.json y se proporcionan para curl a través de ... -d @./vpn-create.json.

    Descargue el ejemplo vpn-create.json. Este archivo solo es un ejemplo. Configure el archivo según sea necesario en función de los campos opcionales/obligatorios documentados en enableEnvironmentAdvancedNetworkingConfiguration.

    {
        "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 proporcione la infraestructura de red.

  3. Comprobar que el entorno ha finalizado Red privada virtual configuración mediante la API de Cloud Manager getNetworkInfrastructure mediante la función id devuelto desde la solicitud HTTP createNetworkInfrastructure en el paso anterior.

    petición HTTP getNetworkInfrastructure

    $ 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 status de ready. Si aún no está listo, vuelva a comprobar el estado cada pocos minutos.

Configuración de proxies de red privada virtual por entorno

  1. Habilitar y configurar el Red privada virtual configuración en cada entorno as a Cloud Service AEM mediante la API de Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operación.

    solicitud HTTP enableEnvironmentAdvancedNetworkingConfiguration

    $ 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 una vpn-configure.json y se proporcionan para curl a través de ... -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 predeterminados de direcciones IP compartidas en lugar de la dirección IP de salida dedicada. nonProxyHosts puede resultar útil, ya que la salida de tráfico a través de direcciones IP compartidas puede optimizarse aún más automáticamente mediante Adobe.

Para cada portForwards , la red avanzada define la siguiente regla de reenvío:

Host proxy Puerto proxy Host externo Puerto externo
AEM_PROXY_HOST portForwards.portOrig portForwards.name portForwards.portDest

Si su implementación AEM only requiere conexiones HTTP/HTTPS al servicio externo, deje el portForwards matriz vacía, ya que estas reglas solo son necesarias para solicitudes que no sean HTTP/HTTPS.

  1. Para cada entorno, valide las reglas de enrutamiento vpn que están en vigor utilizando la API de Cloud Manager getEnvironmentAdvancedNetworkingConfiguration operación.

    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'
    
  2. Las configuraciones de proxy de red privada virtual se pueden actualizar mediante la API de Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operación. Recordar enableEnvironmentAdvancedNetworkingConfiguration es PUT , por lo que todas las reglas deben proporcionarse con cada invocación de esta operación.

  3. Ahora puede utilizar la configuración de salida de red privada virtual en su código de AEM y configuración personalizados.

Conexión a servicios externos a través de la red privada virtual

Con la red privada virtual habilitada, AEM código y configuración pueden utilizarlos para realizar llamadas a servicios externos a través de la VPN. Hay dos tipos de llamadas externas que AEM tratan de forma diferente:

  1. Llamadas HTTP/HTTPS a servicios externos
    • Incluye llamadas HTTP/HTTPS realizadas a servicios que se ejecutan en puertos distintos de los puertos estándar 80 o 443.
  2. llamadas no HTTP/HTTPS a servicios externos
    • Incluye llamadas que no sean HTTP, como conexiones con servidores de correo, bases de datos SQL o servicios que se ejecutan en otros protocolos que no sean HTTP/HTTPS.

Las solicitudes HTTP/HTTPS de AEM en puertos estándar (80/443) están permitidas de forma predeterminada, pero no utilizarán la conexión VPN si no están configuradas adecuadamente como se describe a continuación.

HTTP/HTTPS

Al crear conexiones HTTP/HTTPS desde AEM, al utilizar VPN, las conexiones HTTP/HTTPS se procesan automáticamente como proxy fuera de AEM. No se requiere código o configuración adicional para admitir conexiones HTTP/HTTPS.

SUGERENCIA

Consulte la documentación de red privada virtual de AEM as a Cloud Service para el conjunto completo de reglas de enrutamiento.

Ejemplos de código

HTTP/HTTPS

Ejemplo de código Java™ que establece la conexión HTTP/HTTPS de AEM as a Cloud Service a un servicio externo mediante el protocolo HTTP/HTTPS.

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.

| Nombre de variable | Uso | Código Java™ | Configuración de OSGi | | - | - | - | - | | AEM_PROXY_HOST | Host proxy para conexiones no HTTP/HTTPS | System.getenv("AEM_PROXY_HOST") | $[env:AEM_PROXY_HOST] |

A continuación, se llama a las conexiones a servicios externos a través de la función AEM_PROXY_HOST y el puerto asignado (portForwards.portOrig), que luego AEM enruta al nombre de host externo asignado (portForwards.name) y puerto (portForwards.portDest).

Host proxy Puerto proxy Host externo Puerto externo
AEM_PROXY_HOST portForwards.portOrig portForwards.name portForwards.portDest

Ejemplos de código

Conexión SQL utilizando JDBC DataSourcePool

Ejemplo de código Java™ conectándose a bases de datos SQL externas configurando AEM grupo de fuentes de datos JDBC.

Conexión SQL mediante API de Java

Ejemplo de código de Java™ que se conecta a bases de datos SQL externas mediante las API SQL de Java™.

Red privada virtual (VPN)

Ejemplo de configuración de OSGi utilizando AEM para conectarse a servicios de correo electrónico externos.

Limitar el acceso a AEM as a Cloud Service a través de VPN

La configuración de la Red privada virtual limita el acceso a AEM entornos as a Cloud Service a una VPN.

Ejemplos de configuración

Aplicación de una lista de permitidos IP

Configure una lista de permitidos IP de modo que solo el tráfico VPN pueda acceder a AEM.

Restricciones de acceso VPN basadas en rutas a AEM Publish

Requiere acceso VPN para rutas específicas en AEM Publish.

En esta página