VPN (Virtual Private Network)
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 é a rede privada virtual?
A VPN (Virtual Private Network) permite que um cliente as a Cloud Service AEM se conecte os ambientes AEM de um programa do Cloud Manager para um existente, suportado VPN. 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 do Cloud Manager só pode ter um solteiro tipo de infraestrutura de rede. Certifique-se de que a Rede Virtual Privada seja a mais tipo adequado de infraestrutura de rede para o AEM as a Cloud Service antes de executar os seguintes comandos.
Pré-requisitos
Os seguintes itens são necessários ao configurar uma Rede privada virtual usando as APIs do Cloud Manager:
-
conta Adobe com Permissões do 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 do Cloud Manager
-
As IDs de ambiente do Cloud Manager
-
A Baseado em Rota Virtual Private Network, com acesso a todos os parâmetros de conexão necessários.
Para obter mais detalhes, assista à seguinte apresentação de como configurar e obter credenciais da API do Cloud Manager e como 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 dados fornecidos curl
assumem uma sintaxe Linux/macOS. Se estiver usando o prompt de comando do Windows, substitua o \
caractere de quebra de linha com ^
.
Habilitar Rede Virtual Privada por programa
Comece habilitando a Rede privada virtual no AEM as a Cloud Service.
A 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 Adicionar infraestrutura de rede botão.
-
No Adicionar infraestrutura de rede , selecione a Rede privada virtual opção. 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 Adicionar conexão botão.
-
Configure a conexão VPN. Trabalhe com o administrador de rede da organização para obter os valores corretos. Selecionar 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.
-
Selecionar Salvar para confirmar a adição da VPN e todas as conexões configuradas.
-
Aguardar a infraestrutura de rede ser criada e marcada como Pronto. 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 privada virtual pode ser ativada usando as APIs do Cloud Manager. As etapas a seguir descrevem como habilitar a VPN no AEM as a Cloud Service usando a API do Cloud Manager.
-
Primeiro, determine a região em que a Rede avançada é necessária usando a API do Cloud Manager listRegions operação. A variável
region name
O é necessário para fazer chamadas de API subsequentes do Cloud Manager. Normalmente, a região em que o ambiente de Produção reside é usada.Encontre a região do seu ambiente as a Cloud Service AEM em Cloud Manager no detalhes do ambiente. O nome da região exibido no Cloud Manager pode ser mapeado para o código de região usada na API do Cloud Manager.
solicitação HTTP 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'
-
Ativar a rede privada virtual para um programa do Cloud Manager usando as APIs do Cloud Manager createNetworkInfrastructure operação. Use o
region
código obtido da API do Cloud ManagerlistRegions
operação.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 @./vpn-create.json
Defina os parâmetros JSON em uma
vpn-create.json
e fornecido para curl via... -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.
code language-json { "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 do Cloud Manager provisione a infraestrutura de rede.
-
Verifique se o ambiente terminou Rede privada virtual configuração usando a API do Cloud Manager getNetworkInfrastructure operação, utilizando o
id
retornado docreateNetworkInfrastructure
Solicitação HTTP 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: <YOUR_BEARER_TOKEN>' \ -H 'Content-Type: application/json'
Verifique se a resposta HTTP contém um status de pronto. 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 o Rede privada virtual configuração em cada ambiente do AEM as a Cloud Service usando a API do Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operação.
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 @./vpn-configure.json
Defina os parâmetros JSON em uma
vpn-configure.json
e fornecido para curl via... -d @./vpn-configure.json
.
Baixe o exemplo 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 por meio dos intervalos de endereços IP compartilhados padrão em vez do IP de saída dedicado. nonProxyHosts
pode ser útil, pois a criação de tráfego por meio de IPs compartilhados é otimizada automaticamente pelo Adobe.
Para cada portForwards
de rede avançada define a seguinte regra de encaminhamento:
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest
Se a sua implantação do AEM somente exige conexões HTTP/HTTPS para o serviço externo, deixe o portForwards
matriz 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 as APIs do Cloud Manager getEnvironmentAdvancedNetworkingConfiguration operação.
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 de rede privada virtual podem ser atualizadas usando a API do Cloud Manager enableEnvironmentAdvancedNetworkingConfiguration operação. Lembrar enableEnvironmentAdvancedNetworkingConfiguration
é um PUT
para que todas as regras sejam fornecidas com cada chamada 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
- 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 a conexão VPN se não estiverem configuradas adequadamente conforme descrito abaixo.
HTTP/HTTPS
Ao criar conexões HTTP/HTTPS a partir 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
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 a porta mapeada (portForwards.portOrig
), que o AEM roteia para o nome de host externo mapeado (portForwards.name
) e porta (portForwards.portDest
).
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest
Exemplos de código
Limitar o acesso ao AEM as a Cloud Service via VPN
A configuração da Rede privada virtual limita o acesso a ambientes as a Cloud Service AEM para uma VPN.