瞭解如何將AEMas a Cloud Service與VPN連接,以在與內部服務之間建立安AEM全通信通道。
虛擬專用網(VPN)允許AEMas a Cloud Service客戶連接 環AEM境 Cloud Manager程式中的 支援 VPN。 這允許在客戶網路內的AEMas a Cloud Service和服務之間進行安全和受控的連接。
雲管理器程式只能 單 網路基礎架構類型。 確保虛擬專用網路是 適當類型的網路基礎架構 執行AEM以下命令之前為as a Cloud Service。
請注意,不支援將生成環境從雲管理器連接到VPN。 如果必須從專用儲存庫訪問二進位對象,則必須設定具有公共Internet上可用URL的安全且受密碼保護的儲存庫 此處描述。
設定虛擬專用網路時,需要執行以下操作:
有關詳細資訊,請觀看以下步驟,瞭解如何設定、配置和獲取Cloud Manger API憑據,以及如何使用這些憑據進行Cloud Manager API調用。
本教程使用 curl
來配置Cloud Manager API。 提供的 curl
命令採用Linux/macOS語法。 如果使用Windows命令提示符,請替換 \
換行符 ^
。
從啟用as a Cloud Service上的虛擬專用網路開始AEM。
首先,使用Cloud Manager API確定將在其中設定高級網路的區域 清單區域 的下界。 的 region name
將需要進行後續的Cloud Manager API調用。 通常,使用生產環境所在的區域。
listRegions HTTP請求
$ 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程式啟用虛擬專用網路 建立網路基礎架構 的下界。 使用適當 region
從Cloud Manager API獲取的代碼 listRegions
的下界。
createNetworkInfrastructure HTTP請求
$ 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
並提供捲曲通道 ... -d @./vpn-create.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請求
$ 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響應是否包含 狀態 共 就緒。 如果尚未準備好,請每隔幾分鐘重新檢查一次狀態。
啟用和配置 虛擬專用網路 在每個AEMas a Cloud Service環境上使用Cloud Manager API進行配置 enableEnvironmentAdvancedNetworkingConfiguration 的下界。
enableEnvironmentAdvancedNetworkingConfiguration HTTP請求
$ 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
並提供捲曲通道 ... -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
聲明一組主機,其埠80或443應通過預設共用IP地址範圍而不是專用出口IP路由。 nonProxyHosts
當通過共用IP的流量通過Adobe可以進一步自動優化時,該方法可能有用。
每個 portForwards
映射,高級網路定義以下轉發規則:
代理主機 | 代理埠 | 外部主機 | 外部埠 | |
---|---|---|---|---|
AEM_PROXY_HOST |
portForwards.portOrig |
→ | portForwards.name |
portForwards.portDest |
如AEM果 僅 需要HTTP/HTTPS連接到外部服務,請 portForwards
陣列為空,因為這些規則僅對非HTTP/HTTPS請求是必需的。
對於每個環境,使用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'
可使用Cloud Manager API更新虛擬專用網路代理配置 enableEnvironmentAdvancedNetworkingConfiguration 的下界。 記住 enableEnvironmentAdvancedNetworkingConfiguration
是 PUT
操作,因此必須為此操作的每次調用提供所有規則。
現在,您可以在自定義代碼和配置中使用虛擬專AEM用網出口配置。
啟用虛擬專用網路後,AEM代碼和配置可以使用它們通過VPN對外部服務進行呼叫。 外部呼叫有兩種不同的AEM處理方式:
預設情況下,標準端AEM口(80/443)上的HTTP/HTTPS請求是允許的,不需要額外的配置或注意事項。
從建立到非標準埠(非–80/443)的HTTP/HTTPS連接時AEM,必須通過特殊主機和埠(通過佔位符提供)進行連接。
提AEM供兩組映射到HTTP/HTTPS代理的AEM特殊Java™系統變數。
|變數名稱 |使用 | Java™代碼 | OSGi配置 | Apache Web伺服器mod_proxy配置 | | - | - | - | - | - | | AEM_HTTP_PROXY_HOST
| HTTP連接的代理主機 | System.getenv("AEM_HTTP_PROXY_HOST")
| $[env:AEM_HTTP_PROXY_HOST]
| ${AEM_HTTP_PROXY_HOST}
| | AEM_HTTP_PROXY_PORT
| HTTP連接的代理埠 | System.getenv("AEM_HTTP_PROXY_PORT")
| $[env:AEM_HTTP_PROXY_PORT]
| ${AEM_HTTP_PROXY_PORT}
| | AEM_HTTPS_PROXY_HOST
| HTTPS連接的代理主機 | System.getenv("AEM_HTTPS_PROXY_HOST")
| $[env:AEM_HTTPS_PROXY_HOST]
| ${AEM_HTTPS_PROXY_HOST}
| | AEM_HTTPS_PROXY_PORT
| HTTPS連接的代理埠 | System.getenv("AEM_HTTPS_PROXY_PORT")
| $[env:AEM_HTTPS_PROXY_PORT]
| ${AEM_HTTPS_PROXY_PORT}
|
通過代理主機/埠值配置Java™ HTTP客戶端的代理配置,應請求HTTP/HTTPSAEM外部服務。
在非標準埠上對外部服務進行HTTP/HTTPS調用時,沒有相應的 portForwards
必須使用Cloud Manager API定義 __enableEnvironmentAdvancedNetworkingConfiguration
操作,因為埠轉發「規則」是「在代碼中」定義的。
請參AEM閱as a Cloud Service的虛擬專用網路文檔 全套路由規則。
![]() Java™代碼示例:在非標準HTTP/HTTPS端AEM口上將HTTP/HTTPS從as a Cloud Service連接到外部服務。 |
建立非HTTP/HTTPS連接時(例如 SQL 、 SMTP等),AEM必須通過提供的特殊主機名建立連AEM接。
|變數名稱 |使用 | Java™代碼 | OSGi配置 | | - | - | - | - | | AEM_PROXY_HOST
|非HTTP/HTTPS連接的代理主機 | 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 |
![]() 通過配置JDBC資料源池連接到外部SQL資料AEM庫的Java™代碼示例。 |
![]() Java™代碼示例使用Java™的SQL API連接到外部SQL資料庫。 |
![]() OSGi配置示例AEM,用於連接到外部電子郵件服務。 |
虛擬專用網路配置限制對AEMVPN的as a Cloud Service環境的訪問。
![]() 配置IP允許清單,以便只有VPN通信可以訪問AEM。 |
![]() AEM發佈上的特定路徑需要VPN訪問。 |