VPN (Virtual Private Network)
Criado para:
- Intermediário
- Desenvolvedor
Saiba como conectar o AEM as a Cloud Service com sua VPN para criar canais de comunicação seguros entre o AEM e os serviços internos.
O que é uma rede privada virtual?
A VPN (Virtual Private Network) permite que um cliente do AEM as a Cloud Service conecte os ambientes do AEM em um Programa Cloud Manager a uma VPN existente com suporte. A VPN permite conexões seguras e controladas entre o AEM as a Cloud Service e os serviços na rede do cliente.
Um Programa Cloud Manager só pode ter um tipo de infraestrutura de rede único. Verifique se a Rede Virtual Privada é 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 uma Rede privada virtual usando APIs do Cloud Manager:
-
Conta do Adobe 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
-
Uma Rede Virtual Privada Baseada em Rota, com acesso a todos os parâmetros de conexão necessários.
Para obter mais detalhes , analise como configurar, configurar e obter credenciais de API do Cloud Manger, para usá-las para fazer uma chamada de API do Cloud Manager.
curl
para criar configurações de API do Cloud Manager se preferir uma abordagem programática. Os comandos fornecidos curl
assumem uma sintaxe linux® ou macOS. Se estiver usando o prompt de comando do Windows, substitua o \
caractere de quebra de linha por ^
.Habilitar Rede Virtual Privada por programa
Comece habilitando a Rede privada virtual no AEM as a Cloud Service.
Saída de porta flexível pode ser ativada usando o Cloud Manager. As etapas a seguir descrevem como ativar a saída de porta flexível 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 Rede privada virtual. Preencha os campos e selecione Continuar. Trabalhe com o administrador de rede da organização para obter os valores corretos.
-
Crie pelo menos uma conexão VPN. Dê um nome significativo à conexão e selecione o botão Adicionar conexão.
-
Configure a conexão VPN. Trabalhe com o administrador de rede de sua organização para obter os valores corretos. Selecione Salvar para confirmar a adição da conexão.
-
Se forem necessárias várias conexões VPN, forneça mais conexões conforme necessário. Quando todas as conexões VPN forem adicionadas, selecione Continuar.
-
Selecione Salvar para confirmar a adição da VPN e todas as conexões configuradas.
-
Aguarde a infraestrutura de rede ser criada e marcada como Pronta. Esse processo pode levar até 1 hora.
Com a VPN criada, agora é possível configurá-la usando as APIs do Cloud Manager, conforme descrito abaixo.
A Rede Virtual Privada pode ser habilitada usando APIs do Cloud Manager. As etapas a seguir descrevem como ativar a VPN em AEM como uma Cloud Service usando a API do Cloud Manager.
-
Primeiro, determine o região em que a Avançado Networking é necessária usando a operação listRegions🔗 da API do Cloud Manager. É
region name
necessário fazer chamadas subsequentes de API do Cloud Manager. Normalmente, a região em que a ambiente de Produção reside é usada.Encontre sua AEM como região da Cloud Service ambiente no Cloud Manager nos detalhes do ambiente. O região nome exibido no Cloud Manager pode ser mapeado para o código região usado na API do Cloud Manager.
listRegions solicitação 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'
-
Habilite a Rede Virtual Privada para um Programa Cloud Manager usando a operação createNetworkInfrastructure das APIs Cloud Manager. Use o código
region
apropriado obtido da operaçãolistRegions
da API do Cloud Manager.solicitação HTTP createNetworkInfrastructure
$ 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
Defina os parâmetros JSON em um
vpn-create.json
e fornecido para curl por meio de... -d @./vpn-create.json
.Baixe o exemplo vpn-create.json. Este arquivo é apenas um exemplo. Configure seu arquivo conforme necessário com base nos campos opcionais/obrigatórios documentados em enableEnvironmentAdvancedNetworkingConfiguration.
{ "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 } }] }
Aguarde de 45 a 60 minutos para que o programa Cloud Manager provisione a infraestrutura de rede.
-
Verifique se o ambiente concluiu a configuração da Rede Virtual Privada usando a operação getNetworkInfrastructure da API do Cloud Manager, usando a
id
retornada da solicitação HTTPcreateNetworkInfrastructure
na etapa anterior.solicitação HTTP getNetworkInfrastructure
$ 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'
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 a VPN criada, agora é possível configurá-la usando as APIs do Cloud Manager, conforme descrito abaixo.
Configurar proxies de Rede Virtual Privada por ambiente
-
Habilite e configure a configuração de Rede Virtual Privada em cada ambiente do AEM as a Cloud Service usando a operação enableEnvironmentAdvancedNetworkingConfiguration da API do Cloud Manager.
Solicitação HTTP enableEnvironmentAdvancedNetworkingConfiguration
$ 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
Defina os parâmetros JSON em um
vpn-configure.json
e fornecido para curl por meio de... -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
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 como aumento de tráfego por meio de IPs compartilhados que o Adobe otimiza automaticamente.
Para cada mapeamento portForwards
, a rede avançada define a seguinte regra de encaminhamento:
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest
Se sua implantação do AEM only exigir conexões HTTP/HTTPS para o serviço externo, deixe a matriz portForwards
vazia, pois essas regras são necessárias somente para solicitações não HTTP/HTTPS.
2. Para cada ambiente, valide se as regras de roteamento VPN estão em vigor usando a operação getEnvironmentAdvancedNetworkingConfiguration da API do Cloud Manager.
Solicitação HTTP getEnvironmentAdvancedNetworkingConfiguration
$ 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'
3. As configurações de proxy da Rede Virtual Privada podem ser atualizadas usando a operação enableEnvironmentAdvancedNetworkingConfiguration da API do Cloud Manager. Lembre-se de que enableEnvironmentAdvancedNetworkingConfiguration
é uma operação PUT
, portanto todas as regras devem ser fornecidas com cada invocação desta operação.
4. Agora, você pode usar a configuração de saída da rede privada virtual em seu código e configuração personalizados do AEM.
Conexão com serviços externos através da Rede Virtual Privada
Com a rede privada virtual ativada, o código e a configuração do AEM podem usá-los para fazer chamadas para serviços externos por meio da VPN. Há duas opções de chamadas externas que o AEM trata de forma diferente:
- Chamadas HTTP/HTTPS para serviços externos
- Esses serviços externos incluem 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
- Esses serviços externos incluem quaisquer chamadas não HTTP, como conexões com servidores de email, bancos de dados SQL ou serviços que usam protocolos diferentes de 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 a conexão VPN se não estiverem configuradas adequadamente, conforme descrito abaixo.
HTTP/HTTPS
Ao criar conexões HTTP/HTTPS do AEM, ao usar VPN, as conexões HTTP/HTTPS são automaticamente enviadas por proxy do AEM. Nenhum código ou configuração adicional é necessário para oferecer suporte a conexões HTTP/HTTPS.
Exemplos de código
Exemplo de código Java™ que faz a conexão HTTP/HTTPS a partir de AEM como uma Cloud Service para um serviço externo usando o protocolo HTTP/HTTPS.
Exemplos de código de conexões não HTTP/HTTPS
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
exemplos Code
Conexão SQL usando JDBC DataSourcePool
Exemplo de código Java™ conectando-se a bancos de dados SQL externos configurando o pool de fontes de dados JDBC da AEM.
Exemplo de código Java™ conectando-se a bancos de dados SQL externos usando APIs SQL do Java™.
Exemplo de configuração OSGi usando o AEM para conectar-se a serviços de email externos.
Limitar o acesso ao AEM as a Cloud Service por meio da VPN
A configuração de Rede privada virtual limita o acesso a ambientes AEM as a Cloud Service para uma VPN.
Exemplos de configuração
Aplicação de uma lista de permissões de IP
Configure uma lista de permissões de IP para que somente as TRÁFEGO VPN possam acessar AEM.