專用出口IP地址

瞭解如何設定和使用專用出口IP地址,該地址允許從專用IPAEM發出出站連接。

什麼是專用出口IP地址?

專用出口IP地址允許AEM來自as a Cloud Service的請求使用專用IP地址,從而允許外部服務按此IP地址過濾傳入的請求。 像 靈活的出口埠,專用出口IP允許您在非標準埠上出口。

雲管理器程式只能 網路基礎架構類型。 確保專用出口IP地址是 適當類型的網路基礎架構 執行AEM以下命令之前為as a Cloud Service。

必備條件

設定專用出口IP地址時,需要執行以下操作:

有關詳細資訊,請觀看以下步驟,瞭解如何設定、配置和獲取Cloud Manger API憑據,以及如何使用這些憑據進行Cloud Manager API調用。

本教程使用 curl 來配置Cloud Manager API。 提供的 curl 命令採用Linux/macOS語法。 如果使用Windows命令提示符,請替換 \ 換行符 ^

在程式上啟用專用出口IP地址

從啟用和配置as a Cloud Service上的專用出口IP地址開始AEM。

  1. 首先,使用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'
    
  2. 使用Cloud Manager API為Cloud Manager程式啟用專用出口IP地址 建立網路基礎架構 的下界。 使用適當 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 '{ "kind": "dedicatedEgressIp", "region": "va7" }'
    

    等待15分鐘,使Cloud Manager計畫配置網路基礎架構。

  3. 檢查環境是否已完成 專用出口IP地址 使用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: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json'
    

    驗證HTTP響應是否包含 狀態就緒。 如果尚未準備好,請每隔幾分鐘重新檢查一次狀態。

按環境配置專用出口IP地址代理

  1. 啟用和配置 專用出口IP地址 在每個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 @./dedicated-egress-ip-address.json
    

    在中定義JSON參數 dedicated-egress-ip-address.json 並提供捲曲通道 ... -d @./dedicated-egress-ip-address.json

下載dedicated-egress-ip-address.json示例

{
    "nonProxyHosts": [
        "example.net",
        "*.example.org",
    ],
    "portForwards": [
        {
            "name": "mysql.example.com",
            "portDest": 3306,
            "portOrig": 30001
        },
        {
            "name": "smtp.sendgrid.net",
            "portDest": 465,
            "portOrig": 30002
        }
    ]
}

專用出口IP地址配置的HTTP簽名僅與 柔性出口埠 因為它還支援可選 nonProxyHosts 配置。

nonProxyHosts 聲明一組主機,其埠80或443應通過預設共用IP地址範圍而不是專用出口IP路由。 nonProxyHosts 當通過共用IP的流量通過Adobe可以進一步自動優化時,該方法可能有用。

每個 portForwards 映射,高級網路定義以下轉發規則:

代理主機 代理埠 外部主機 外部埠
AEM_PROXY_HOST portForwards.portOrig portForwards.name portForwards.portDest
  1. 對於每個環境,使用Cloud Manager API驗證出口規則是否有效 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: <YOUR_TOKEN>' \
        -H 'Content-Type: application/json'
    
  2. 可以使用Cloud Manager API更新專用出口IP地址配置 enableEnvironmentAdvancedNetworkingConfiguration 的下界。 記住 enableEnvironmentAdvancedNetworkingConfigurationPUT 操作,因此必須為此操作的每次調用提供所有規則。

  3. 獲取 專用出口IP地址 使用DNS解析器(如 DNSChecker.org): p{programId}.external.adobeaemcloud.com,或運行 dig 命令行。

    $ dig +short p{programId}.external.adobeaemcloud.com
    

    主機名不能 pinged,因為它是個出口 和入口。

  4. 現在,您可以在自定義代碼和配置中使用AEM專用出口IP地址。 通常,當使用專用出口IP地址時,AEM將as a Cloud Service連接的外部服務配置為僅允許來自此專用IP地址的通信。

通過專用埠出口連接到外部服務

啟用專用出口IP地址後,AEM代碼和配置可以使用專用出口IP來調用外部服務。 外部呼叫有兩種不同的AEM處理方式:

  1. 在非標準埠上對外部服務的HTTP/HTTPS調用
    • 包括對在標準80或443埠以外的埠上運行的服務進行的HTTP/HTTPS調用。
  2. 對外部服務的非HTTP/HTTPS調用
    • 包括任何非HTTP調用,如與Mail伺服器、SQL資料庫或在其他非HTTP/HTTPS協定上運行的服務的連接。

預設情況下,標準端AEM口(80/443)上的HTTP/HTTPS請求是允許的,不需要額外的配置或注意事項。

秘訣

請參AEM閱as a Cloud Service的專用出口IP地址文檔 全套路由規則

非標準埠上的HTTP/HTTPS

從建立到非標準埠(非–80/443)的HTTP/HTTPS連接時AEM,必須通過特殊主機和埠(通過佔位符提供)進行連接。

提AEM供兩組映射到HTTP/HTTPS代理的AEM特殊Java™系統變數。

|變數名稱 |使用 | Java™代碼 | OSGi配置 | | - | - | - | - | | AEM_HTTP_PROXY_HOST | HTTP連接的代理主機 | System.getenv("AEM_HTTP_PROXY_HOST") | $[env:AEM_HTTP_PROXY_HOST] | | AEM_HTTP_PROXY_PORT | HTTP連接的代理埠 | System.getenv("AEM_HTTP_PROXY_PORT") | $[env:AEM_HTTP_PROXY_PORT] | | AEM_HTTPS_PROXY_HOST | HTTPS連接的代理主機 | System.getenv("AEM_HTTPS_PROXY_HOST") | $[env:AEM_HTTPS_PROXY_HOST] | | AEM_HTTPS_PROXY_PORT | HTTPS連接的代理埠 | System.getenv("AEM_HTTPS_PROXY_PORT") | $[env:AEM_HTTPS_PROXY_PORT] |

對HTTP/HTTPS外部服務的請求應通過使用代理主機/埠值配置Java™ HTTP客戶端的代理AEM配置進行。

在非標準埠上對外部服務進行HTTP/HTTPS調用時,沒有相應的 portForwards 必須使用雲管理器API定義 enableEnvironmentAdvancedNetworkingConfiguration 操作,因為埠轉發「規則」是「在代碼中」定義的。

代碼示例

非標準埠上的HTTP/HTTPS

Java™代碼示例:在非標準HTTP/HTTPS端AEM口上將HTTP/HTTPS從as a Cloud Service連接到外部服務。

到外部服務的非HTTP/HTTPS連接

建立非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 DataSourcePool的SQL連接

通過配置JDBC資料源池連接到外部SQL資料AEM庫的Java™代碼示例。

使用Java API的SQL連接

Java™代碼示例使用Java™的SQL API連接到外部SQL資料庫。

虛擬專用網(VPN)

OSGi配置示例AEM,用於連接到外部電子郵件服務。

本頁內容