虚拟专用网络 (VPN)
了解如何将AEMas a Cloud Service与您的VPN连接起来,以便在AEM和内部服务之间创建安全的通信渠道。
什么是虚拟专用网络?
虚拟专用网络(VPN)允许AEMas a Cloud Service客户连接 AEM环境 Cloud Manager项目到现有, 支持 VPN。 VPN允许在AEMas a Cloud Service与客户网络内的服务之间安全且受控的连接。
Cloud Manager项目只能具有 单身 网络基础架构类型。 确保虚拟专用网络最大 适当类型的网络基础架构 的AEMas a Cloud Service。
先决条件
使用Cloud Manager API设置虚拟专用网络时,需要满足以下条件:
-
Adobe帐户 Cloud Manager业务负责人权限
-
- 组织ID (又称IMS组织ID)
- 客户端ID(又称API密钥)
- 访问令牌(又称持有者令牌)
-
Cloud Manager项目ID
-
Cloud Manager环境ID
-
A 基于路由 虚拟专用网络,可访问所有必要的连接参数。
有关更多详细信息,请观看以下演练,了解如何设置、配置和获取Cloud Manager API凭据,以及如何使用它们进行Cloud Manager API调用。
本教程使用 curl
以进行Cloud Manager API配置。 提供的 curl
命令采用Linux/macOS语法。 如果使用Windows命令提示符,请将 \
换行符 ^
.
为每个项目启用虚拟专用网络
首先在AEMas a Cloud Service上启用“虚拟专用网络”。
可以使用Cloud Manager启用灵活端口出口。 以下步骤概述了如何使用Cloud Manager在AEMas a Cloud Service上启用灵活端口出口。
-
登录到 Adobe Experience Manager Cloud Manager 作为Cloud Manager业务负责人。
-
导航到所需的项目。
-
在左侧菜单中,导航到 服务>网络基础架构.
-
选择 添加网络基础架构 按钮。
-
在 添加网络基础架构 对话框,选择 虚拟专用网络 选项。 填写字段并选择 继续. 请与贵组织的网络管理员合作以获取正确的值。
-
创建至少一个VPN连接。 为连接提供一个有意义的名称,然后选择 添加连接 按钮。
-
配置VPN连接。 请与贵组织的网络管理员合作以获取正确的值。 选择 保存 以确认添加连接。
-
如果需要多个VPN连接,请根据需要使用更多连接。 添加所有VPN连接后,选择 继续.
-
选择 保存 确认添加VPN和所有已配置的连接。
-
等待网络基础架构创建并标记为 就绪. 此过程最多可能需要1小时。
创建VPN后,您现在可以使用Cloud Manager API对其进行配置,如下所述。
可使用Cloud Manager API启用虚拟专用网络。 以下步骤概述了如何使用Cloud Manager API在AEMas a Cloud Service上启用VPN。
-
首先,使用Cloud Manager API确定需要高级联网的区域 listRegions 操作。 此
region name
进行后续Cloud Manager API调用时需要使用。 通常,会使用生产环境所在的区域。在以下位置查找您的AEMas a Cloud Service环境所在的地区: Cloud Manager 在 环境详细信息. Cloud Manager中显示的区域名称可以是 映射到区域代码 在Cloud Manager API中使用。
listRegions HTTP请求
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'
-
使用Cloud Manager API为Cloud Manager项目启用虚拟专用网络 createNetworkInfrastructure 操作。 使用适当的
region
从Cloud Manager API获得的代码listRegions
操作。createNetworkInfrastructure HTTP请求
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
在中定义JSON参数
vpn-create.json
提供给curl的... -d @./vpn-create.json
.下载示例vpn-create.json. 此文件只是一个示例。 根据中介绍的可选/必填字段,根据需要配置文件。 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 } }] }
等待45-60分钟,让Cloud Manager项目配置网络基础架构。
-
检查环境是否已完成 虚拟专用网络 使用Cloud Manager API进行配置 getNetworkInfrastructure 操作,使用
id
返回自createNetworkInfrastructure
HTTP请求。getNetworkInfrastructure HTTP请求
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'
验证HTTP响应中是否包含 状态 之 就绪. 如果尚未准备就绪,请每隔几分钟重新检查一次状态。
创建VPN后,您现在可以使用Cloud Manager API对其进行配置,如下所述。
为每个环境配置虚拟专用网络代理
-
启用并配置 虚拟专用网络 使用Cloud Manager API在每个AEMas a Cloud Service环境中进行配置 enableEnvironmentAdvancedNetworkingConfiguration 操作。
enableEnvironmentAdvancedNetworkingConfiguration HTTP请求
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
在中定义JSON参数
vpn-configure.json
提供给curl的... -d @./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
声明了一组主机,应通过默认共享IP地址范围而不是专用出口IP为其路由端口80或443。 nonProxyHosts
可能很有用,因为Adobe会自动优化通过共享IP传出的流量。
对于每个 portForwards
映射,高级联网定义以下转发规则:
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest
如果您的AEM部署 仅限 需要外部服务的HTTP/HTTPS连接,请保留 portForwards
数组为空,因为只有非HTTP/HTTPS请求才需要这些规则。
2. 对于每个环境,使用Cloud Manager API的,验证VPN路由规则的有效性 getEnvironmentAdvancedNetworkingConfiguration 操作。
getEnvironmentAdvancedNetworkingConfiguration HTTP请求
$ 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. 可使用Cloud Manager API的 enableEnvironmentAdvancedNetworkingConfiguration 操作。 记住 enableEnvironmentAdvancedNetworkingConfiguration
是 PUT
因此,所有规则都必须随此操作的每次调用一起提供。
4. 现在,您可以在自定义AEM代码和配置中使用虚拟专用网络出口配置。
通过虚拟专用网络连接到外部服务
启用虚拟专用网络后,AEM代码和配置可以使用它们通过VPN调用外部服务。 AEM对两种外部调用的处理方式有所不同:
- 对外部服务的HTTP/HTTPS调用
- 包括对在标准80或443端口以外的端口上运行的服务发出的HTTP/HTTPS调用。
- 对外部服务的非HTTP/HTTPS调用
- 包括任何非HTTP调用,例如与Mail服务器、SQL数据库或在其他非HTTP/HTTPS协议上运行的服务的连接。
默认情况下,允许标准端口(80/443)上来自AEM的HTTP/HTTPS请求,但如果配置不正确,请勿使用VPN连接,如下所述。
HTTP/HTTPS
从AEM创建HTTP/HTTPS连接时,如果使用VPN,则会自动从AEM中代理HTTP/HTTPS连接。 无需其他代码或配置即可支持HTTP/HTTPS连接。
代码示例
非HTTP/HTTPS连接代码示例
创建非HTTP/HTTPS连接时(例如 AEM SQL、SMTP等),必须通过AEM提供的特殊主机名建立连接。
AEM_PROXY_HOST
System.getenv("AEM_PROXY_HOST")
$[env:AEM_PROXY_HOST]
然后,通过调用与外部服务的连接 AEM_PROXY_HOST
和映射的端口(portForwards.portOrig
),则AEM会路由到映射的外部主机名(portForwards.name
)和端口(portForwards.portDest
)。
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest
代码示例
限制通过VPN访问AEMas a Cloud Service
虚拟专用网络配置限制对AEMas a Cloud Service环境的VPN访问。