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. Le VPN 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.
Conditions préalables
Les éléments suivants sont requis lors de la configuration d’un réseau privé virtuel à l’aide des API Cloud Manager :
-
Compte Adobe avec autorisations de la personne propriétaire d’entreprise Cloud Manager.
-
Accès aux informations d’authentification de l’API Cloud Manager.
- ID d’organisation (ou ID d’organisation IMS)
- ID client (ou clé API)
- Jeton d’accès (ou jeton porteur)
-
ID de programme Cloud Manager
-
ID d’environnement de Cloud Manager
-
Réseau privé virtuel basé sur des itinéraires, avec accès à tous les paramètres de connexion nécessaires.
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.
Vous pouvez activer la sortie de port flexible à l’aide de Cloud Manager. Les étapes suivantes décrivent comment activer la sortie de port flexible sur AEM as a Cloud Service à l’aide de Cloud Manager.
-
Connectez-vous à Adobe Experience Manager Cloud Manager en tant que personne propriétaire d’entreprise Cloud Manager.
-
Accédez au programme souhaité.
-
Dans le menu de gauche, accédez à Services > Infrastructure de réseau.
-
Sélectionnez le bouton Ajouter une infrastructure de réseau.
-
Dans la boîte de dialogue Ajouter une infrastructure de réseau, sélectionnez Réseau privé virtuel. Renseignez les champs et sélectionnez Continuer. Contactez l’administrateur ou l’administratrice réseau de votre entreprise pour connaître les bonnes valeurs.
-
Créez au moins une connexion VPN. Attribuez un nom significatif à la connexion et sélectionnez le bouton Ajouter une connexion.
-
Configurez la connexion VPN. Contactez l’administrateur ou l’administratrice réseau de votre entreprise pour connaître les bonnes valeurs. Sélectionnez Enregistrer pour confirmer l’ajout de la connexion.
-
Si plusieurs VPN sont requis, plusieurs connexions sont nécessaires. Lorsque toutes les connexions VPN sont ajoutées, sélectionnez Continuer.
-
Sélectionnez Enregistrer pour confirmer l’ajout du VPN et de toutes les connexions configurées.
-
Attendez que l’infrastructure de réseau soit créée et marquée comme Prête. Ce processus peut prendre jusqu’à 1 heure.
Une fois le VPN créé, vous pouvez le configurer à l’aide des API Cloud Manager, comme décrit ci-dessous.
Il est possible d’activer le réseau privé virtuel à l’aide des API Cloud Manager. Les étapes suivantes indiquent comment activer le VPN sur AEM as a Cloud Service à l’aide de l’API Cloud Manager.
-
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'
-
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érationlistRegions
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.
-
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 HTTPcreateNetworkInfrastructure
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 contient un statut prêt. Si elle n’est pas encore prête, revérifiez le statut quelques minutes plus tard.
Une fois le VPN créé, vous pouvez le configurer à l’aide des API Cloud Manager, comme décrit ci-dessous.
Configurer les proxys de réseau privé virtuel par environnement
-
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 est optimisé automatiquement par Adobe.
Pour chaque mappage portForwards
, la mise en réseau avancée définit la règle de transfert suivante :
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.
2. 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
$ 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. 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.
4. 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 :
- 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.
- 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.
Exemples de code
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.
AEM_PROXY_HOST
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
).
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest
Exemples de code
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.