Réseau privé virtuel (VPN)

Découvrez comment connecter AEM as a Cloud Service à votre VPN pour créer des canaux de communication sécurisés entre AEM et les services internes.

Qu’est-ce que le réseau privé virtuel ?

Le réseau privé virtuel (VPN) permet à un client ou une cliente AEM as a Cloud Service de connecter les environnements AEM d’un programme Cloud Manager à un VPN existant et pris en charge. Cela permet des connexions sécurisées et contrôlées entre AEM as a Cloud Service et les services au sein du réseau du client ou de la cliente.

Un programme Cloud Manager ne peut avoir qu’un seul type d’infrastructure réseau. Assurez-vous que le réseau privé virtuel est le type le plus approprié d’infrastructure réseau pour votre instance AEM as a Cloud Service avant d’exécuter les commandes suivantes.

NOTE
Veuillez noter que la connexion de l’environnement de création de Cloud Manager à un VPN n’est pas prise en charge. Si vous devez accéder aux artefacts binaires d’un référentiel privé, vous devez configurer un référentiel sécurisé et protégé par mot de passe avec une URL disponible sur l’Internet public tel que décrit ici.

Conditions préalables

Les éléments suivants sont requis lors de la configuration du réseau privé virtuel :

Pour plus d’informations, regardez la présentation suivante pour découvrir comment installer, configurer et obtenir les informations d’identification de l’API Cloud Manager, et comment les utiliser pour effectuer un appel d’API Cloud Manager.

Ce tutoriel utilise curl pour créer les configurations de l’API Cloud Manager. Les commandes curl fournies reposent sur la syntaxe Linux/macOS. Si vous utilisez l’invite de commande Windows, remplacez le caractère de saut de ligne \ par ^.

Activer le réseau privé virtuel par programme

Commencez par activer le réseau privé virtuel sur AEM as a Cloud Service.

  1. Tout d’abord, déterminez la région dans laquelle le réseau avancé est nécessaire à l’aide de l’opération listRegion de l’API Cloud Manager. Le region name est nécessaire pour effectuer les appels d’API Cloud Manager ultérieurs. En règle générale, la région dans laquelle l’environnement de production réside est utilisée.

    Recherchez la région de votre environnement AEM as a Cloud Service AEM dans Cloud Manager sous les détails de l’environnement. Le nom de région affiché dans Cloud Manager peut être mappé au code de région utilisé dans l’API Cloud Manager.

    Requête 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'
    
  2. Activez le réseau privé virtuel pour un programme Cloud Manager à l’aide de l’opération createNetworkInfrastructure de l’API Cloud Manager. Utilisez le code region approprié obtenu de l’opération listRegions de l’API Cloud Manager.

    Requête 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
    

    Définissez les paramètres JSON d’un objet vpn-create.json fourni à cURL via l’objet ... -d @./vpn-create.json.

    Téléchargez l’exemple vpn-create.json. Ce fichier n’est qu’un exemple. Configurez votre fichier selon les besoins en fonction des champs facultatifs/obligatoires documentés dans 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
            }
        }]
    }
    

    Patientez 45-60 minutes pendant que le programme Cloud Manager approvisionne l’infrastructure réseau.

  3. Vérifiez que l’environnement a terminé la configuration du réseau privé virtuel à l’aide de l’opération getNetworkInfrastructure de l’API Cloud Manager, en utilisant l’id renvoyé par la requête HTTP createNetworkInfrastructure de l’étape précédente.

    Requête 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'
    

    Vérifiez que la réponse HTTP renvoie le statut prêt. Le cas échéant, vérifiez le statut après quelques minutes.

Configurer les proxys de réseau privé virtuel par environnement

  1. Activez et configurez la configuration du réseau privé virtuel sur chaque environnement AEM as a Cloud Service à l’aide de l’opération enableEnvironmentAdvancedNetworkingConfiguration de l’API Cloud Manager.

    Requête 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
    

    Définissez les paramètres JSON d’un objet vpn-configure.json fourni à cURL via l’objet ... -d @./vpn-configure.json.

Télécharger l’exemple 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 déclare un ensemble d’hôtes pour lesquels le port 80 ou 443 doit être acheminé par les plages d’adresses IP partagées par défaut plutôt que par l’adresse IP de sortie dédiée. nonProxyHosts peut s’avérer utile, car le trafic sortant par les adresses IP partagées peut être optimisé automatiquement par Adobe.

Pour chaque mappage portForwards, la mise en réseau avancée définit la règle de transfert suivante :

Hôte du proxy
Port du proxy
Hôte externe
Port externe
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest

Si votre déploiement AEM nécessite uniquement des connexions HTTP/HTTPS vers un service externe, laissez le tableau portForwards vide, car ces règles ne s’appliquent qu’aux requêtes autres que HTTP/HTTPS.

  1. Pour chaque environnement, validez les règles de routage VPN en vigueur à l’aide de l’opération getEnvironmentAdvancedNetworkingConfiguration de l’API Cloud Manager.

    Requête HTTP getEnvironmentAdvancedNetworkingConfiguration

    code language-shell
    $ 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. Les configurations de réseau privé virtuel peuvent être mises à jour à l’aide de l’opération enableEnvironmentAdvancedNetworkingConfiguration de l’API Cloud Manager. N’oubliez pas que enableEnvironmentAdvancedNetworkingConfiguration est une opération PUT, et que toutes les règles doivent par conséquent être fournies à chaque appel de cette opération.

  3. Vous pouvez désormais utiliser la configuration de réseau privé virtuel dans votre code AEM personnalisé et dans votre configuration.

Se connecter à des services externes via un réseau privé virtuel

Lorsque le réseau privé virtuel est activé, le code et la configuration AEM peuvent les utiliser pour effectuer des appels vers des services externes via le VPN. Il existe deux types d’appels externes qu’AEM traite différemment :

  1. Appels HTTP/HTTPS vers des services externes
    • Cela inclut les appels HTTP/HTTPS effectués aux services s’exécutant sur des ports autres que les ports 80 ou 443 standard.
  2. Appels non HTTP/HTTPS aux services externes
    • Cela inclut tous les appels non HTTP, tels que les connexions aux serveurs de messagerie, aux bases de données SQL ou aux services qui s’exécutent sur d’autres protocoles non HTTP/HTTPS.

Les requêtes HTTP/HTTPS provenant d’AEM sur les ports standard (80/443) sont autorisées par défaut, mais elles n’utilisent pas la connexion au VPN si elles ne sont pas correctement configurées comme décrit ci-dessous.

HTTP/HTTPS

Lors de la création de connexions HTTP/HTTPS à partir d’AEM, lors de l’utilisation de VPN, les connexions HTTP/HTTPS sont automatiquement traitées par proxy hors d’AEM. La prise en charge des connexions HTTP/HTTPS ne nécessite pas de code ou de configuration supplémentaire.

TIP
Consultez la documentation sur le réseau privé virtuel d’AEM as a Cloud Service pour connaître l’ensemble des règles de routage.

Exemples de code

HTTP/HTTPS

HTTP/HTTPS

Exemple de code Java™ permettant d’établir une connexion HTTP/HTTPS depuis AEM as a Cloud Service vers un service externe à l’aide du protocole HTTP/HTTPS.

Exemples de code de connexions non HTTP/HTTPS

Lors de la création de connexions non HTTP/HTTPS (par exemple, SQL, SMTP, etc.) depuis AEM, la connexion doit être établie par un nom d’hôte spécial fourni par AEM.

Nom de variable
Utilisez
Code Java™
Configuration OSGi
AEM_PROXY_HOST
Hôte proxy pour les connexions non HTTP/HTTPS
System.getenv("AEM_PROXY_HOST")
$[env:AEM_PROXY_HOST]

Les connexions à des services externes sont ensuite appelées par l’intermédiaire de AEM_PROXY_HOST et du port mappé (portForwards.portOrig), qu’AEM achemine ensuite vers le nom d’hôte externe mappé (portForwards.name) et le port (portForwards.portDest).

Hôte du proxy
Port du proxy
Hôte externe
Port externe
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest

Exemples de code

Connexion SQL à l’aide de JDBC DataSourcePool

Connexion SQL à l’aide de JDBC DataSourcePool

Exemple de code Java™ se connectant à des bases de données SQL externes en configurant le pool de la source de données JDBC d’AEM.

Connexion SQL à l’aide des API Java

Connexion SQL à l’aide des API Java™

Exemple de code Java™ se connectant à des bases de données SQL externes à l’aide des API SQL de Java™.

Réseau privé virtuel (VPN)

Service e-mail

Exemple de configuration OSGi utilisant AEM pour se connecter à des services de messagerie externes.

Limiter l’accès à AEM as a Cloud Service via VPN

La configuration du réseau privé virtuel limite l’accès aux environnements AEM as a Cloud Service à un VPN.

Exemples de configurations

Appliquer une liste d’adresses IP autorisées

Appliquer une liste d’adresses IP autorisées

Configurez une liste d’adresses IP autorisées de sorte que seul le trafic VPN puisse accéder à AEM.

Restrictions d’accès VPN basées sur un chemin d’accès au service de publication AEM

Restrictions d’accès VPN basées sur un chemin d’accès au service de publication AEM

Exigez un accès VPN pour des chemins d’accès spécifiques au service de publication AEM.

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69