專用輸出 IP 位址

瞭解如何設定及使用專用輸出IP位址,此位址允許來自AEM的輸出連線源自於專用IP。

什麼是專用輸出IP位址?

專用輸出IP位址允許來自AEMas a Cloud Service的請求使用專用IP位址,允許外部服務根據此IP位址篩選傳入請求。 按讚 彈性的輸出埠,專用輸出IP可讓您從非標準連線埠輸出。

Cloud Manager計畫只能有 單一 網路基礎架構型別。 確保專用輸出IP位址為最多 適當型別的網路基礎結構 ,然後才可執行AEMas a Cloud Service的命令。

先決條件

使用Cloud Manager API設定專用輸出IP位址時,需要以下專案:

如需更多詳細資訊,請觀看以下逐步解說,瞭解如何設定、設定和取得Cloud Manager API認證,以及如何使用這些認證進行Cloud Manager API呼叫。

本教學課程使用 curl 以進行Cloud Manager API設定。 提供的 curl 命令採用Linux/macOS語法。 如果使用Windows命令提示字元,請將 \ 換行字元 ^.

在程式上啟用專用輸出IP位址

首先,在AEMas a Cloud Service上啟用並設定專用輸出IP位址。

Cloud Manager

專用輸出IP地址可以使用Cloud Manager啟用。 下列步驟概述如何使用Cloud Manager在AEMas a Cloud Service上啟用專用輸出IP位址。

  1. 登入 Adobe Experience Manager Cloud Manager 作為Cloud Manager企業所有者。

  2. 導覽至所需的計畫。

  3. 在左側功能表中,導覽至 服務>網路基礎結構.

  4. 選取 新增網路基礎結構 按鈕。

    新增網路基礎結構

  5. 新增網路基礎結構 對話方塊中,選取 專用輸出IP位址 選項,然後選取 地區 以建立專用輸出IP位址。

    新增專用輸出IP位址

  6. 選取 儲存 以確認新增專用輸出IP位址。

    確認建立專用輸出IP位址

  7. 等待網路基礎架構建立並標示為 就緒. 此程式最多可能需要1小時。

    專用輸出IP位址建立狀態

在建立專用輸出IP位址後,您現在可以使用Cloud Manager API進行設定,如下所述。

Cloud Manager API

專用輸出IP地址可以使用Cloud Manager API啟用。 下列步驟概述如何使用Cloud Manager API在AEMas a Cloud Service上啟用專用輸出IP位址。

  1. 首先,使用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'
    
  2. 使用Cloud Manager API為Cloud Manager計畫啟用專用輸出IP地址 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 '{ "kind": "dedicatedEgressIp", "region": "va7" }'
    

    等待15分鐘,讓Cloud Manager計畫布建網路基礎結構。

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

    確認HTTP回應包含 狀態就緒. 如果尚未準備就緒,請每隔幾分鐘重新檢查一次狀態。

在建立專用輸出IP位址後,您現在可以使用Cloud Manager API進行設定,如下所述。

為每個環境設定專用輸出IP位址代理

  1. 設定 專用輸出IP位址 使用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 @./dedicated-egress-ip-address.json
    

    在中定義JSON引數 dedicated-egress-ip-address.json 並提供給curl,透過 ... -d @./dedicated-egress-ip-address.json.

    下載範例dedicated-egress-ip-address.json. 這個檔案只是範例。 根據以下網址記錄的選用/必要欄位,依需求設定您的檔案: enableEnvironmentAdvancedNetworkingConfiguration.

    code language-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 宣告應透過預設共用IP位址範圍而不是專用輸出IP路由連線埠80或443的一組主機。 nonProxyHosts 當Adobe會自動最佳化從共用IP傳出的流量時,這項功能可能會相當實用。

    針對每個 portForwards 對應,進階網路會定義下列轉送規則:

    table 0-row-5 1-row-5
    Proxy主機 Proxy連線埠 外部主機 外部連線埠
    AEM_PROXY_HOST portForwards.portOrig portForwards.name portForwards.portDest
  2. 對於每個環境,使用Cloud Manager API驗證輸出規則是否有效 getEnvironmentAdvancedNetworkingConfiguration 作業。

    getEnvironmentAdvancedNetworkingConfiguration HTTP要求

    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: <YOUR_TOKEN>' \
        -H 'Content-Type: application/json'
    
  3. 專用輸出IP地址配置可以使用Cloud Manager API更新 enableEnvironmentAdvancedNetworkingConfiguration 作業。 記住 enableEnvironmentAdvancedNetworkingConfigurationPUT 作業,因此每次呼叫此作業時,都必須提供所有規則。

  4. 取得 專用輸出IP位址 藉由使用DNS解析程式(例如 DNSChecker.org): p{programId}.external.adobeaemcloud.com,或透過執行 dig 命令列中的。

    code language-shell
    $ dig +short p{programId}.external.adobeaemcloud.com
    

    主機名稱不可以是 pinged,因為是輸出和 和入口。

    請注意,專用輸出IP位址由計畫中的所有AEMas a Cloud Service環境共用。

  5. 現在,您可以在自訂AEM程式碼和設定中使用專用輸出IP位址。 通常在使用專用輸出IP位址時,AEMas a Cloud Service連線的外部服務會設定為只允許來自此專用IP位址的流量。

透過專用輸出IP位址連線到外部服務

在啟用專用輸出IP位址的情況下,AEM程式碼和設定可以使用專用輸出IP來呼叫外部服務。 AEM處理外部呼叫的方式有兩種:

  1. 對外部服務的HTTP/HTTPS呼叫
    • 包括對標準80或443連線埠以外的連線埠上執行的服務發出的HTTP/HTTPS呼叫。
  2. 對外部服務的非HTTP/HTTPS呼叫
    • 包括任何非HTTP呼叫,例如與郵件伺服器、SQL資料庫或服務之間的連線,這些服務會在其他非HTTP/HTTPS通訊協定上執行。

預設允許來自標準連線埠(80/443)上AEM的HTTP/HTTPS請求,但如果未依照以下所述正確設定,則這些請求不會使用專用輸出IP位址。

TIP
請參閱AEMas a Cloud Service的專用輸出IP位址檔案,以瞭解 完整的路由規則集.

HTTP/HTTPS

從AEM建立HTTP/HTTPS連線時,若使用專用輸出IP位址,HTTP/HTTPS連線會自動使用專用輸出IP位址代理出AEM。 不需要其他程式碼或設定即可支援HTTP/HTTPS連線。

程式碼範例

HTTP/HTTPS

HTTP/HTTPS

Java™程式碼範例使用HTTP/HTTPS通訊協定,使從AEM的HTTP/HTTPS連線as a Cloud Service到外部服務。

與外部服務的非HTTP/HTTPS連線

建立非HTTP/HTTPS連線時(例如 AEM SQL、SMTP等),必須透過AEM提供的特殊主機名稱進行連線。

變數名稱
使用
Java™程式碼
OSGi設定
AEM_PROXY_HOST
非HTTP/HTTPS連線的Proxy主機
System.getenv("AEM_PROXY_HOST")
$[env:AEM_PROXY_HOST]

然後,會透過呼叫外部服務的連線。 AEM_PROXY_HOST 和對應的連線埠(portForwards.portOrig),則AEM會路由至對應的外部主機名稱(portForwards.name)和連線埠(portForwards.portDest)。

Proxy主機
Proxy連線埠
外部主機
外部連線埠
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest

程式碼範例

使用JDBC DataSourcePool的SQL連線

使用JDBC DataSourcePool的SQL連線

Java™程式碼範例透過設定AEM JDBC資料來源集區來連線到外部SQL資料庫。

使用Java API的SQL連線

使用Java™ API的SQL連線

Java™程式碼範例使用Java™的SQL API連線至外部SQL資料庫。

虛擬私人網路 (VPN)

電子郵件服務

使用AEM連線至外部電子郵件服務的OSGi設定範例。

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