Dedikerad IP-adress för utgångar
Lär dig hur du konfigurerar och använder en dedikerad IP-adress för utgående anslutningar från AEM som kan komma från en dedikerad IP-adress.
Vad är en dedikerad IP-adress för egress?
Med en dedikerad IP-adress för utgångar kan förfrågningar från AEM as a Cloud Service använda en dedikerad IP-adress, vilket gör att externa tjänster kan filtrera inkommande förfrågningar efter den här IP-adressen. Precis som med flexibla utgångsportar kan du med dedikerad IP-adress gå ut på portar som inte är standard.
Ett Cloud Manager-program kan bara ha en enskild nätverksinfrastrukturtyp. Kontrollera att den dedikerade IP-adressen för utgångar är den lämpligaste typen av nätverksinfrastruktur för din AEM as a Cloud Service innan du kör följande kommandon.
Förutsättningar
Följande krävs när du konfigurerar en dedikerad IP-adress för utgångar med Cloud Manager API
-
Cloud Manager API med Cloud Manager Business Owner-behörigheter
-
Åtkomst till autentiseringsuppgifter för Cloud Manager API
- Organisations-ID (även IMS Org-ID)
- Klient-ID (även API-nyckel)
- Åtkomsttoken (även Bearer Token)
-
Cloud Manager program-ID
-
Cloud Manager miljö-ID:n
Mer information finns i Konfigurera och hämta API-autentiseringsuppgifter för Cloud Manager så att du kan använda dem för att göra ett Cloud Manager API-anrop.
I den här självstudien används curl
för att skapa Cloud Manager API-konfigurationer. De curl
-kommandon som tillhandahålls förutsätter en Linux/macOS-syntax. Om du använder kommandotolken i Windows ersätter du radbrytningstecknet \
med ^
.
Aktivera dedikerad IP-adress för egress i programmet
Börja med att aktivera och konfigurera den dedikerade IP-adressen för utgångar på AEM as a Cloud Service.
Dedikerad IP-adress för utgångar kan aktiveras med Cloud Manager. I följande steg beskrivs hur du aktiverar dedikerad IP-adress för utgångar på AEM as a Cloud Service med Cloud Manager.
-
Logga in på Adobe Experience Manager Cloud Manager som Cloud Manager Business Owner.
-
Navigera till önskat program.
-
Navigera till Tjänster > Nätverksinfrastrukturer på den vänstra menyn.
-
Välj knappen Lägg till nätverksinfrastruktur.
-
I dialogrutan Lägg till nätverksinfrastruktur markerar du alternativet Dedikerad IP-adress för utgångar och väljer Region för att skapa den dedikerade IP-adressen för utgångar.
-
Välj Spara för att bekräfta att den dedikerade IP-adressen för utgångar har lagts till.
-
Vänta tills nätverksinfrastrukturen har skapats och markerats som Ready. Den här processen kan ta upp till 1 timme.
När den dedikerade IP-adressen för utgångar har skapats kan du nu konfigurera den med Cloud Manager API:er enligt beskrivningen nedan.
Dedikerad IP-adress för utgångar kan aktiveras med Cloud Manager API:er. I följande steg beskrivs hur du aktiverar dedikerad IP-adress för utgångar på AEM as a Cloud Service med Cloud Manager API.
-
Ta först reda på i vilken region det avancerade nätverket behövs genom att använda Cloud Manager API-åtgärden listRegions.
region name
krävs för efterföljande Cloud Manager API-anrop. Normalt används regionen där produktionsmiljön finns.Hitta AEM as a Cloud Service-miljöns region i Cloud Manager under miljöns information. Regionnamnet som visas i Cloud Manager kan mappas till regionkoden som används i Cloud Manager API.
listRegions HTTP request
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'
-
Aktivera dedikerad IP-adress för utgångar för ett Cloud Manager-program med Cloud Manager API-åtgärden createNetworkInfrastructure. Använd rätt
region
-kod som hämtats från Cloud Manager APIlistRegions
-åtgärden.createNetworkInfrastructure HTTP-begäran
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" }'
Vänta i 15 minuter tills Cloud Manager-programmet tillhandahåller nätverksinfrastrukturen.
-
Kontrollera att programmet har slutfört konfigurationen av dedikerad IP-adress med Cloud Manager API getNetworkInfrastructure med hjälp av
id
som returnerades från HTTP-begärancreateNetworkInfrastructure
i föregående steg.getNetworkInfrastructure HTTP-begäran
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'
Kontrollera att HTTP-svaret innehåller status av ready. Om du inte är klar ännu kontrollerar du statusen var några minut.
När den dedikerade IP-adressen för utgångar har skapats kan du nu konfigurera den med Cloud Manager API:er enligt beskrivningen nedan.
Konfigurera IP-adressproxy för dedikerad egress per miljö
-
Konfigurera IP-adresskonfigurationen för den dedikerade IP-adressen i varje AEM as a Cloud Service-miljö med Cloud Manager API-åtgärden enableEnvironmentAdvancedNetworkingConfiguration .
enableEnvironmentAdvancedNetworkingConfiguration HTTP-begäran
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
Definiera JSON-parametrarna i en
dedicated-egress-ip-address.json
och tillhandahåll för att rulla via... -d @./dedicated-egress-ip-address.json
.Hämta exemplet dedikerad-egress-ip-address.json. Filen är bara ett exempel. Konfigurera filen efter behov baserat på de valfria/obligatoriska fälten som beskrivs i 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 } ] }
Den dedikerade IP-adresskonfigurationens HTTP-signatur skiljer sig bara från flexibel utgångsport på så sätt att den även stöder den valfria
nonProxyHosts
-konfigurationen.nonProxyHosts
deklarerar en uppsättning värdar för vilka port 80 eller 443 ska dirigeras via de delade standardadressintervallen i stället för den dedikerade IP-adressen.nonProxyHosts
kan vara användbart eftersom trafik som trycks ned via delade IP-adresser optimeras automatiskt av Adobe.För varje
portForwards
-mappning definierar det avancerade nätverket följande vidarebefordringsregel:table 0-row-5 1-row-5 Proxyvärd Proxyport Extern värd Extern port AEM_PROXY_HOST
portForwards.portOrig
→ portForwards.name
portForwards.portDest
-
Verifiera egresreglerna för varje miljö med Cloud Manager API-åtgärden getEnvironmentAdvancedNetworkingConfiguration.
getEnvironmentAdvancedNetworkingConfiguration HTTP-begäran
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'
-
IP-adresskonfigurationer för dedikerade utgångar kan uppdateras med Cloud Manager API-åtgärden enableEnvironmentAdvancedNetworkingConfiguration . Kom ihåg att
enableEnvironmentAdvancedNetworkingConfiguration
är enPUT
-åtgärd, så alla regler måste anges med varje anrop av den här åtgärden. -
Hämta den dedikerade IP-adressen för utgångar med en DNS-matchare (till exempel DNSChecker.org) på värden:
p{programId}.external.adobeaemcloud.com
eller genom att köradig
från kommandoraden.code language-shell $ dig +short p{programId}.external.adobeaemcloud.com
Värdnamnet kan inte vara
pinged
eftersom det är en utgång och inte och en ingress.Observera att den dedikerade IP-adressen för utgångar delas av alla AEM as a Cloud Service-miljöer i programmet.
-
Nu kan du använda den dedikerade IP-adressen för utgångar i din anpassade AEM och konfiguration. När du använder dedikerad IP-adress för utgångar är de externa tjänster som AEM as a Cloud Service ansluter till ofta konfigurerade så att endast trafik från den här dedikerade IP-adressen tillåts.
Ansluta till externa tjänster via dedikerad IP-adress
När den dedikerade IP-adressen för utgångar är aktiverad kan AEM kod och konfiguration använda den dedikerade IP-adressen för utgångar för att ringa till externa tjänster. Det finns två varianter av externa anrop som AEM behandlar på olika sätt:
- HTTP/HTTPS-anrop till externa tjänster
- Innehåller HTTP/HTTPS-anrop till tjänster som körs på andra portar än standardportarna 80 eller 443.
- icke-HTTP/HTTPS-anrop till externa tjänster
- Inkluderar alla icke-HTTP-anrop, till exempel anslutningar med e-postservrar, SQL-databaser eller tjänster som körs på andra icke-HTTP/HTTPS-protokoll.
HTTP/HTTPS-begäranden från AEM på standardportar (80/443) tillåts som standard, men de använder inte den dedikerade IP-adressen för utgångar om de inte är korrekt konfigurerade enligt beskrivningen nedan.
HTTP/HTTPS
När du skapar HTTP/HTTPS-anslutningar från AEM, när du använder en dedikerad IP-adress för utgående IP-adresser, proxiceras HTTP/HTTPS-anslutningar automatiskt ut från AEM med den dedikerade IP-adressen för utgående IP-adressen. Ingen ytterligare kod eller konfiguration krävs för att stödja HTTP/HTTPS-anslutningar.
Exempel på koder
Icke-HTTP/HTTPS-anslutningar till externa tjänster
När anslutningar som inte är HTTP/HTTPS skapas (t.ex. SQL, SMTP och så vidare) från AEM måste anslutningen upprättas via ett särskilt värdnamn som AEM anger.
AEM_PROXY_HOST
System.getenv("AEM_PROXY_HOST")
$[env:AEM_PROXY_HOST]
Anslutningar till externa tjänster anropas sedan via AEM_PROXY_HOST
och den mappade porten (portForwards.portOrig
), som AEM sedan dirigeras till det mappade externa värdnamnet (portForwards.name
) och porten (portForwards.portDest
).
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest