Endereço IP de saída exclusivo
Saiba como configurar e usar o endereço IP de saída dedicado, que permite que as conexões de saída do AEM se originem de um IP dedicado.
O que é o endereço IP de saída dedicado?
O endereço IP de saída dedicado permite que as solicitações do AEM as a Cloud Service usem um endereço IP dedicado, permitindo que os serviços externos filtrem as solicitações recebidas por esse endereço IP. Assim como as portas de saída flexíveis, o IP de saída dedicado permite que você saia em portas não padrão.
Um Programa Cloud Manager só pode ter um tipo de infraestrutura de rede único. Certifique-se de que o endereço IP de saída dedicado seja o tipo mais apropriado de infraestrutura de rede para o AEM as a Cloud Service antes de executar os comandos a seguir.
Pré-requisitos
Os seguintes itens são necessários ao configurar um endereço IP de saída dedicado usando APIs do Cloud Manager:
-
API do Cloud Manager com permissões de Proprietário da empresa no Cloud Manager
-
Acesso a credenciais de autenticação da API do Cloud Manager
- ID da organização (também conhecida como ID da organização IMS)
- ID do cliente (também conhecida como Chave de API)
- Token de acesso (também conhecido como Token do portador)
-
A ID do programa Cloud Manager
-
As IDs de ambiente do Cloud Manager
Para obter mais detalhes revise como instalar, configurar e obter credenciais da API do Cloud Manager, para usá-las para fazer uma chamada de API do Cloud Manager.
Este tutorial usa curl
para fazer as configurações da API do Cloud Manager. Os comandos curl
fornecidos pressupõem uma sintaxe Linux/macOS. Se estiver usando o prompt de comando do Windows, substitua o caractere de quebra de linha \
por ^
.
Habilitar endereço IP de saída dedicado no programa
Comece habilitando e configurando o endereço IP de saída dedicado no AEM as a Cloud Service.
O endereço IP de saída dedicado pode ser ativado usando o Cloud Manager. As etapas a seguir descrevem como ativar o endereço IP de saída dedicado no AEM as a Cloud Service usando o Cloud Manager.
-
Faça logon no Adobe Experience Manager Cloud Manager como Proprietário da empresa do Cloud Manager.
-
Navegue até o Programa desejado.
-
No menu esquerdo, navegue até Serviços > Infraestrutura de Rede.
-
Selecione o botão Adicionar infraestrutura de rede.
-
Na caixa de diálogo Adicionar infraestrutura de rede, selecione a opção Endereço IP de saída dedicado e selecione a Região para criar o endereço IP de saída dedicado.
-
Selecione Salvar para confirmar a adição do endereço IP de saída dedicado.
-
Aguarde a infraestrutura de rede ser criada e marcada como Pronta. Esse processo pode levar até 1 hora.
Com o endereço IP de saída dedicado criado, agora é possível configurá-lo usando as APIs do Cloud Manager, conforme descrito abaixo.
O endereço IP de saída dedicado pode ser ativado usando as APIs do Cloud Manager. As etapas a seguir descrevem como ativar o endereço IP de saída dedicado no AEM as a Cloud Service usando a API do Cloud Manager.
-
Primeiro, determine a região na qual a Rede Avançada é necessária, usando a operação listRegions da API do Cloud Manager. O
region name
é necessário para fazer chamadas de API do Cloud Manager subsequentes. Normalmente, a região em que o ambiente de Produção reside é usada.Encontre a região do seu ambiente do AEM as a Cloud Service em Cloud Manager nos detalhes do ambiente. O nome da região exibido no Cloud Manager pode ser mapeado para o código de região usado na API do Cloud Manager.
solicitação HTTP de listRegions
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'
-
Habilite o endereço IP de saída dedicado para um Programa Cloud Manager usando a operação createNetworkInfrastructure da API do Cloud Manager. Use o código
region
apropriado obtido da operaçãolistRegions
da API do Cloud Manager.solicitação HTTP createNetworkInfrastructure
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" }'
Aguarde 15 minutos para que o programa Cloud Manager provisione a infraestrutura de rede.
-
Verifique se o programa concluiu a configuração do endereço IP de saída dedicado usando a operação getNetworkInfrastructure da API do Cloud Manager, usando o
id
retornado da solicitação HTTPcreateNetworkInfrastructure
na etapa anterior.solicitação HTTP getNetworkInfrastructure
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'
Verifique se a resposta HTTP contém um status de ready. Se ainda não estiver pronto, verifique novamente o status a cada poucos minutos.
Com o endereço IP de saída dedicado criado, agora é possível configurá-lo usando as APIs do Cloud Manager, conforme descrito abaixo.
Configurar proxies dedicados de endereço IP de saída por ambiente
-
Configure a configuração do endereço IP de saída dedicado em cada ambiente do AEM as a Cloud Service usando a operação enableEnvironmentAdvancedNetworkingConfiguration da API do Cloud Manager.
Solicitação HTTP enableEnvironmentAdvancedNetworkingConfiguration
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
Defina os parâmetros JSON em um
dedicated-egress-ip-address.json
e fornecido para curl via... -d @./dedicated-egress-ip-address.json
.Baixe o exemplo dedicated-egress-ip-address.json. Este arquivo é apenas um exemplo. Configure seu arquivo conforme necessário com base nos campos opcionais/obrigatórios documentados em 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 } ] }
A assinatura HTTP da configuração de endereço IP de saída dedicado difere apenas da porta de saída flexível, pois ela também oferece suporte à configuração
nonProxyHosts
opcional.nonProxyHosts
declara um conjunto de hosts para o qual a porta 80 ou 443 deve ser roteada através dos intervalos de endereços IP compartilhados padrão em vez do IP de saída dedicado.nonProxyHosts
pode ser útil, pois a geração de tráfego por meio de IPs compartilhados é otimizada automaticamente pelo Adobe.Para cada mapeamento
portForwards
, a rede avançada define a seguinte regra de encaminhamento:table 0-row-5 1-row-5 Host do proxy Porta do proxy Host externo Porta externa AEM_PROXY_HOST
portForwards.portOrig
→ portForwards.name
portForwards.portDest
-
Para cada ambiente, valide se as regras de saída estão em vigor usando a operação getEnvironmentAdvancedNetworkingConfiguration da API do Cloud Manager.
Solicitação HTTP getEnvironmentAdvancedNetworkingConfiguration
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'
-
Configurações de endereço IP de saída dedicado podem ser atualizadas usando a operação enableEnvironmentAdvancedNetworkingConfiguration da API do Cloud Manager. Lembre-se de que
enableEnvironmentAdvancedNetworkingConfiguration
é uma operaçãoPUT
, portanto todas as regras devem ser fornecidas com cada invocação desta operação. -
Obtenha o endereço IP de saída dedicado usando um Resolvedor de DNS (como DNSChecker.org) no host:
p{programId}.external.adobeaemcloud.com
ou executandodig
na linha de comando.code language-shell $ dig +short p{programId}.external.adobeaemcloud.com
O nome de host não pode ser
pinged
, pois é uma saída e não e entrada.Observe que o endereço IP de saída dedicado é compartilhado por todos os ambientes AEM as a Cloud Service no programa.
-
Agora, você pode usar o endereço IP de saída dedicado no código e configuração personalizados do AEM. Geralmente, ao usar o endereço IP de saída dedicado, os serviços externos aos quais o AEM as a Cloud Service se conecta são configurados para permitir apenas o tráfego desse endereço IP dedicado.
Conexão com serviços externos por meio do endereço IP de saída dedicado
Com o endereço IP de saída dedicado ativado, o código e a configuração do AEM podem usar o IP de saída dedicado para fazer chamadas para serviços externos. Há duas opções de chamadas externas que o AEM trata de forma diferente:
- Chamadas HTTP/HTTPS para serviços externos
- Inclui chamadas HTTP/HTTPS feitas para serviços executados em portas diferentes das portas padrão 80 ou 443.
- chamadas não HTTP/HTTPS para serviços externos
- Inclui chamadas não HTTP, como conexões com servidores de email, bancos de dados SQL ou serviços que são executados em outros protocolos não HTTP/HTTPS.
As solicitações HTTP/HTTPS do AEM em portas padrão (80/443) são permitidas por padrão, mas não usam o endereço IP de saída dedicado se não estiverem configuradas adequadamente conforme descrito abaixo.
HTTP/HTTPS
Ao criar conexões HTTP/HTTPS do AEM, ao usar o endereço IP de saída dedicado, as conexões HTTP/HTTPS são automaticamente enviadas por proxy do AEM usando o endereço IP de saída dedicado. Nenhum código ou configuração adicional é necessário para oferecer suporte a conexões HTTP/HTTPS.
Exemplos de código
Conexões não HTTP/HTTPS com serviços externos
Ao criar conexões não HTTP/HTTPS (por exemplo, SQL, SMTP e assim por diante) do AEM, a conexão deve ser feita por meio de um nome de host especial fornecido pelo AEM.
AEM_PROXY_HOST
System.getenv("AEM_PROXY_HOST")
$[env:AEM_PROXY_HOST]
As conexões com serviços externos são então chamadas por meio do AEM_PROXY_HOST
e da porta mapeada (portForwards.portOrig
), que o AEM encaminha para o nome de host externo mapeado (portForwards.name
) e a porta (portForwards.portDest
).
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest