VPN (Virtual Private Network)

Saiba como conectar o AEM as a Cloud Service com sua VPN para criar canais de comunicação seguros entre AEM e serviços internos.

O que é a rede privada virtual?

A VPN (Virtual Private Network) permite que um cliente da AEM as a Cloud Service conecte os ambientes 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.

NOTE
Observe que não há suporte para a conexão do ambiente de build do Cloud Manager a uma VPN. Se você precisar acessar artefatos binários de um repositório privado, configure um repositório seguro e protegido por senha com uma URL que esteja disponível na Internet pública conforme descrito aqui.

Pré-requisitos

Os seguintes itens são necessários ao configurar uma Rede privada virtual usando APIs do Cloud Manager:

Para obter mais detalhes, assista à seguinte apresentação sobre como configurar, 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 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 Rede Virtual Privada por programa

Comece habilitando a Rede privada virtual no AEM as a Cloud Service.

Cloud Manager

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.

  1. Faça logon no Adobe Experience Manager Cloud Manager como Proprietário da empresa do Cloud Manager.

  2. Navegue até o Programa desejado.

  3. No menu esquerdo, navegue até Serviços > Infraestrutura de Rede.

  4. Selecione o botão Adicionar infraestrutura de rede.

    Adicionar infraestrutura de rede

  5. 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.

    Adicionar VPN

  6. Crie pelo menos uma conexão VPN. Dê um nome significativo à conexão e selecione o botão Adicionar conexão.

    Adicionar conexão VPN

  7. Configure a conexão VPN. Trabalhe com o administrador de rede da organização para obter os valores corretos. Selecione Salvar para confirmar a adição da conexão.

    Configurar conexão VPN

  8. 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.

    Configurar conexão VPN

  9. Selecione Salvar para confirmar a adição da VPN e todas as conexões configuradas.

    Confirmar criação de VPN

  10. Aguarde a infraestrutura de rede ser criada e marcada como Pronta. Esse processo pode levar até 1 hora.

    Status de criação da VPN

Com a VPN criada, agora é possível configurá-la usando as APIs do Cloud Manager, conforme descrito abaixo.

APIs do Cloud Manager

A Rede Virtual Privada pode ser habilitada usando 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.

  1. 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'
    
  2. 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ção listRegions 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 @./vpn-create.json
    

    Defina os parâmetros JSON em um 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 Cloud Manager provisione a infraestrutura de rede.

  3. 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 HTTP createNetworkInfrastructure 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 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

  1. 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

    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 um 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 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:

Host do proxy
Porta do proxy
Host externo
Porta externa
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest

Se sua implantação do AEM only exigir conexões HTTP/HTTPS com 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 de rede privada virtual 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:

  1. 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.
  2. 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.

TIP
Consulte a documentação da Rede Virtual Privada da AEM as a Cloud Service para o conjunto completo de regras de roteamento.

Exemplos de código

HTTP/HTTPS

HTTP/HTTPS

Exemplo de código Java™ fazendo conexão HTTP/HTTPS do AEM as a Cloud Service com 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.

Nome da variável
Utilização
Código Java™
Configuração OSGi
AEM_PROXY_HOST
Host proxy para conexões não HTTP/HTTPS
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).

Host do proxy
Porta do proxy
Host externo
Porta externa
AEM_PROXY_HOST
portForwards.portOrig
portForwards.name
portForwards.portDest

Exemplos de código

Conexão SQL usando JDBC DataSourcePool

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 do AEM.

Conexão SQL usando APIs Java

Conexão SQL usando APIs Java™

Exemplo de código Java™ conectando-se a bancos de dados SQL externos usando APIs SQL do Java™.

VPN (Virtual Private Network)

Serviço de email

Exemplo de configuração OSGi usando AEM para se conectar a serviços de email externos.

Limitar o acesso ao AEM as a Cloud Service via 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

Aplicando uma inclui na lista de permissões de IP

Configure uma inclui na lista de permissões de IP de modo que somente o tráfego de VPN possa acessar o AEM.

Restrições de acesso VPN baseadas em caminho para AEM Publish

Restrições de acesso à VPN baseada em caminho para AEM Publish

Exigir acesso VPN para caminhos específicos no AEM Publish.

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