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

NOTE
Observe que não há suporte para a conexão do ambiente de compilação 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 um URL que esteja disponível na Internet pública conforme descrito aqui.

Pré-requisitos

Os seguintes itens são necessários ao configurar a Rede Virtual Privada:

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.

  1. 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'
    
  2. 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 Manager listRegions 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.

  3. Verifique se o ambiente terminou Rede privada virtual configuração usando a API do Cloud Manager getNetworkInfrastructure operação, utilizando o id retornado 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 pronto. Se ainda não estiver pronto, verifique novamente o status a cada poucos minutos.

Configurar proxies de Rede Virtual Privada por ambiente

  1. 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 pode ser otimizada ainda mais automaticamente pelo Adobe.

Para cada portForwards de 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 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.

  1. Para cada ambiente, valide se as regras de roteamento de VPN estão em vigor usando as APIs do Cloud Manager getEnvironmentAdvancedNetworkingConfiguration operação.

    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: Bearer <ACCESS_TOKEN>' \
        -H 'Content-Type: application/json'
    
  2. 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.

  3. 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 usarão 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 privada virtual do 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™ que faz a conexão HTTP/HTTPS do AEM as a 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.

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 a porta mapeada (portForwards.portOrig), que o AEM roteia para o nome de host externo mapeado (portForwards.name) e 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 e-mail

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 da Rede privada virtual limita o acesso a ambientes as a Cloud Service AEM para uma VPN.

Exemplos de configuração

Aplicação de uma lista de permissões de IP

Aplicação de 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 baseada em caminho para publicação no AEM

Restrições de acesso à VPN baseada em caminho para publicação no AEM

Exigir acesso VPN para caminhos específicos na publicação do AEM.

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