View a markdown version of this page

Tutorial: Como configurar o acesso à rede privada usando um Linux Bastion Host - Amazon Managed Workflows for Apache Airflow

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: Como configurar o acesso à rede privada usando um Linux Bastion Host

Este tutorial mostra as etapas para criar um túnel SSH do seu computador para o servidor web Apache Airflow para seu ambiente Amazon Managed Workflows for Apache Airflow. Pressupõe-se que você já tenha criado um ambiente Amazon MWAA. Depois de configurado, um Linux Bastion Host atua como um servidor jump, permitindo uma conexão segura do seu computador com os recursos em sua VPC. Em seguida, você usa um complemento de gerenciamento de proxy SOCKS para controlar as configurações de proxy em seu navegador e acessar sua interface de usuário do Apache Airflow.

nota

Este tutorial se aplica ao modo de acesso à rede privada. Se você escolher acesso à rede pública e privada, não precisará de um bastion host para acessar a interface do usuário do Apache Airflow, pois ela pode ser acessada pela Internet.

Rede privada

Este tutorial pressupõe que você tenha escolhido o modo de acesso à rede privada para seu servidor Web do Apache Airflow.

Esta imagem mostra a arquitetura de um ambiente Amazon MWAA com acesso à rede privada.

O modo de acesso à rede privada limita o acesso à interface do usuário do Apache Airflow aos usuários dentro da sua Amazon VPC que receberam acesso à política do IAM do seu ambiente.

Ao criar um ambiente com acesso à rede privada, você deve empacotar todas as suas dependências em um arquivo de roda do Python (.whl) e, .whl em seguida, referenciar o. requirements.txt Para obter instruções sobre como empacotar e instalar suas dependências usando o wheel, consulte Gerenciamento de dependências usando o wheel do Python.

A imagem a seguir mostra onde encontrar a opção Rede privada no console do Amazon MWAA.

Esta imagem mostra onde encontrar a opção de Rede privada no console do Amazon MWAA.

Casos de uso

Você pode usar este tutorial depois de criar um ambiente Amazon MWAA. Você deve usar a mesma Amazon VPC, grupos de segurança VPC e sub-redes públicas do seu ambiente.

Antes de começar

  1. Verifique as permissões do usuário. Certifique-se de que sua conta no AWS Identity and Access Management (IAM) tenha permissões suficientes para criar e gerenciar recursos de VPC.

  2. Use sua VPC do Amazon MWAA. Este tutorial pressupõe que você esteja associando o bastion host a uma VPC existente. O Amazon VPC deve estar na mesma região de seu ambiente do Amazon MWAA e ter duas sub-redes privadas, como definido em Criar a rede VPC.

  3. Crie uma chave SSH. Você precisa criar uma chave SSH do Amazon EC2 (.pem) na mesma região do seu ambiente Amazon MWAA para se conectar aos servidores virtuais. Se você não tiver uma chave SSH, consulte Criar ou importar um par de chaves no Guia do usuário do Amazon EC2.

Objetivos

Neste tutorial, você irá:

  1. Crie uma instância do Linux Bastion Host usando um Modelo CloudFormation para uma VPC existente.

  2. Autorize o tráfego de entrada para o grupo de segurança da instância bastion usando uma regra de entrada na porta 22.

  3. Autorize o tráfego de entrada do grupo de segurança de um ambiente do Amazon MWAA para o grupo de segurança da instância do Bastion.

  4. Crie um túnel SSH para a instância do bastion.

  5. Instale e configure o FoxyProxy complemento para o navegador Firefox para acessar a interface do usuário do Apache Airflow.

Etapa 1: criar a instância bastion

A seção a seguir descreve as etapas para criar a instância Bastion do Linux.

Abra o console do Amazon Elastic Compute Cloud em https://console.aws.amazon.com/ec2/ e crie uma instância do Amazon EC2 em uma das sub-redes públicas na VPC que é usada para seu ambiente Amazon MWAA.

nota

Recomendamos que você permita o encaminhamento de TCP na instância do Amazon EC2. Encaminhamento TCP significa encaminhamento SSH TCP — permitindo ssh -L/-D túneis através do host. A AllowTcpForwarding diretiva no daemon SSH config (/etc/ssh/sshd_config) controla essa configuração. Ele é usado como padrão yes na maioria das AMIs Amazon Linux e Ubuntu, mas geralmente é desativado em AMIs Bastion reforçadas.

Etapa 2: criar o túnel SSH

As etapas a seguir descrevem como criar o túnel SSH para seu bastião Linux. Um túnel SSH recebe a solicitação do seu endereço IP local para o bastião Linux, e é por isso que o encaminhamento de TCP para o bastião Linux foi definido nas etapas anteriores. true

macOS/Linux
Para criar um túnel usando a linha de comando
  1. Abra a página Instâncias no console do Amazon EC2.

  2. Escolha uma instância.

  3. Copie o endereço em DNS IPv4 pública. Por exemplo, .ec2-4-82-142-1.compute-1.amazonaws.com

  4. No prompt de comando, navegue até o diretório em que sua chave SSH está armazenada.

  5. Execute o comando a seguir para se conectar à instância do bastion usando ssh. Substitua o valor da amostra pelo nome da sua chave SSH em mykeypair.pem.

    ssh -i mykeypair.pem -N -D 8157 ec2-user@YOUR_PUBLIC_IPV4_DNS
Windows (PuTTY)
Para criar um túnel usando PuTTY
  1. Abra a página Instâncias no console do Amazon EC2.

  2. Escolha uma instância.

  3. Copie o endereço em DNS IPv4 pública. Por exemplo, .ec2-4-82-142-1.compute-1.amazonaws.com

  4. Abra o PuTTY, e selecione Sessão.

  5. Insira o nome do host em Nome do host como ec2-user@ YOUR_PUBLIC_IPV4_DNS e a porta como. 22

  6. Expanda a guia SSH e selecione Auth. Em Arquivo de chave privada para autenticação, escolha seu arquivo “ppk” local.

  7. Em SSH, escolha a guia Túneis e selecione as opções Dinâmico e Automático.

  8. Em Porta de origem adicione a porta 8157 (ou qualquer outra porta não usada) e deixe a porta Destino em branco. Escolha Adicionar.

  9. Escolha a guia Sessão e insira o nome da sessão. Por exemplo, SSH Tunnel.

  10. Escolha Salvar, Abrir.

    nota

    Talvez seja necessário inserir uma frase secreta para sua chave pública.

nota

Se você receber um Permission denied (publickey) erro, recomendamos usar a AWSSupport-TroubleshootSSH ferramenta e escolher Executar esta automação (console) para solucionar problemas na configuração do SSH.

Etapa 3: configurar o grupo de segurança bastion como uma regra de entrada

O acesso aos servidores e o acesso regular à Internet a partir dos servidores são permitidos com um grupo de segurança especial de manutenção conectado a esses servidores. As etapas a seguir descrevem como configurar o grupo de segurança bastion como uma fonte de tráfego de entrada para o grupo de segurança VPC de um ambiente.

  1. Abra a página Ambientes no console do Amazon MWAA.

  2. Escolha um ambiente.

  3. No painel Rede, escolha Grupo de segurança VPC.

  4. Escolha Editar regras de entrada.

  5. Escolha Adicionar regra.

  6. Escolha sua ID do grupo de segurança da VPC na lista suspensa Fonte.

  7. Deixe as opções restantes em branco ou defina-as com seus valores padrão.

  8. Escolha Salvar regras.

Etapa 4: copiar o URL do Apache Airflow

As etapas a seguir descrevem como abrir o console do Amazon MWAA e copiar o URL para a IU do Apache Airflow.

  1. Abra a página Ambientes no console do Amazon MWAA.

  2. Escolha um ambiente.

  3. Copie o URL na IU do Airflow para as etapas subsequentes.

Etapa 5: definir as configurações de proxy

Se você usar um túnel SSH com o encaminhamento de portas dinâmicas, deverá usar um complemento de gerenciamento de proxy SOCKS para controlar as configurações de proxy no seu navegador. Por exemplo, você pode usar o --proxy-server recurso do Chromium para iniciar uma sessão do navegador ou usar a FoxyProxy extensão no navegador Mozilla FireFox .

Opção um: configure um túnel SSH usando o encaminhamento de portas locais

Se não quiser usar um proxy SOCKS, é possível configurar um túnel SSH usando o encaminhamento de portas locais. O comando de exemplo a seguir acessa o servidor web Apache Airflow encaminhando o tráfego na porta local 8157.

  1. Abra uma nova janela do prompt de comando.

  2. Digite o seguinte comando para abrir um túnel SSH.

    ssh -i mykeypair.pem -N -L 8157:YOUR_VPC_ENDPOINT_ID-vpce.us-east-1.airflow.amazonaws.com:443 ec2-user@YOUR_PUBLIC_IPV4_DNS

    -L significa o uso do encaminhamento de portas locais, que você pode usar para especificar uma porta local usada para encaminhar dados à porta remota identificada no servidor Web local do nó.

  3. Digite http://localhost:8157/ no navegador.

    nota

    Talvez seja necessário usar https://localhost:8157/.

Opção dois: proxies via linha de comando

É possível usar a maioria dos navegadores da Web para configurar proxies por meio de uma linha de comando ou parâmetro de configuração. Por exemplo, com o Chromium, é possível iniciar o navegador com o seguinte comando:

chromium --proxy-server="socks5://localhost:8157"

Ele inicia uma sessão do navegador que usa o túnel ssh que você criou nas etapas anteriores para proxy de suas solicitações. É possível abrir sua URL privada do ambiente Amazon MWAA (com https://) da seguinte forma:

https://YOUR_VPC_ENDPOINT_ID-vpce.us-east-1.airflow.amazonaws.com/home.

Opção três: Proxies usados FoxyProxy para o Mozilla Firefox

O exemplo a seguir demonstra uma configuração FoxyProxy padrão (versão 7.5.1) para o Mozilla Firefox. FoxyProxy fornece um conjunto de ferramentas de gerenciamento de proxy. Permite que seja usado um servidor proxy para URLs que corresponda aos padrões correspondentes aos domínios usados pela IU do Apache Airflow.

  1. No Firefox, abra a página da extensão FoxyProxy Standard.

  2. Escolha Adicionar ao Firefox.

  3. Escolha Adicionar.

  4. Escolha o FoxyProxy ícone na barra de ferramentas do seu navegador e escolha Opções.

  5. Copie o código a seguir e salve localmente como mwaa-proxy.json. Substitua o valor da amostra pelo URL do Apache Airflow. YOUR_HOST_NAME

    { "e0b7kh1606694837384": { "type": 3, "color": "#66cc66", "title": "airflow", "active": true, "address": "localhost", "port": 8157, "proxyDNS": false, "username": "", "password": "", "whitePatterns": [ { "title": "airflow-ui", "pattern": "YOUR_HOST_NAME", "type": 1, "protocols": 1, "active": true } ], "blackPatterns": [], "pacURL": "", "index": -1 }, "k20d21508277536715": { "active": true, "title": "Default", "notes": "These are the settings that are used when no patterns match a URL.", "color": "#0055E5", "type": 5, "whitePatterns": [ { "title": "all URLs", "active": true, "pattern": "*", "type": 1, "protocols": 1 } ], "blackPatterns": [], "index": 9007199254740991 }, "logging": { "active": true, "maxSize": 500 }, "mode": "patterns", "browserVersion": "82.0.3", "foxyProxyVersion": "7.5.1", "foxyProxyEdition": "standard" }
  6. No painel Importar configurações do FoxyProxy 6.0+, escolha Importar configurações e selecione o arquivo. mwaa-proxy.json

  7. Escolha OK.

Etapa 6: abra a IU do Apache Airflow

As etapas a seguir descrevem como abrir sua IU do Apache Airflow.

  1. Abra a página Ambientes no console do Amazon MWAA.

  2. Escolha Abrir a IU do Airflow.

Próximas etapas