

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

# Tutoriais para Amazon Managed Workflows for Apache Airflow
<a name="tutorials"></a>

Este guia inclui step-by-step tutoriais sobre como usar e configurar um ambiente Amazon Managed Workflows para Apache Airflow.

**Topics**
+ [Tutorial: Como configurar o acesso à rede privada usando um AWS Client VPN](tutorials-private-network-vpn-client.md)
+ [Tutorial: Como configurar o acesso à rede privada usando um Linux Bastion Host](tutorials-private-network-bastion.md)
+ [Tutorial: Restringindo o acesso de um usuário do Amazon MWAA a um subconjunto de DAGs](limit-access-to-dags.md)
+ [Tutorial: automatizar o gerenciamento de seus próprios endpoints de ambiente no Amazon MWAA](tutorials-customer-managed-endpoints.md)

# Tutorial: Como configurar o acesso à rede privada usando um AWS Client VPN
<a name="tutorials-private-network-vpn-client"></a>

Este tutorial mostra as etapas para criar um túnel VPN do seu computador para o servidor Web do Apache Airflow para seu ambiente Amazon Managed Workflows para Apache Airflow. Para se conectar à internet por meio de um túnel VPN, primeiro você precisará criar um endpoint AWS Client VPN. Depois de configurado, um endpoint do cliente VPN atua como um servidor VPN, permitindo uma conexão segura do seu computador com os recursos em sua VPC. Em seguida, você se conectará à VPN do cliente a partir do seu computador usando [AWS Client VPN para Desktop](https://aws.amazon.com/vpn/client-vpn-download/).

**Topics**
+ [Rede privada](#private-network-vpn-onconsole)
+ [Casos de uso](#private-network-vpn-usecases)
+ [Antes de começar](#private-network-vpn-prereqs)
+ [Objetivos](#private-network-vpn-objectives)
+ [Etapa 1 (opcional): identifique sua VPC, as regras CIDR e a segurança da VPC](#private-network-vpn-optional)
+ [Etapa 2: crie os certificados de servidor e de cliente](#private-network-vpn-certs)
+ [Etapa 3: salve o modelo CloudFormation localmente](#private-network-vpn-template)
+ [Etapa 4: crie a pilha CloudFormation VPN do cliente](#private-network-vpn-create)
+ [Etapa 5: associe sub-redes à sua VPN do cliente](#private-network-vpn-associate)
+ [Etapa 6: adicione uma regra de entrada de autorização à sua VPN do cliente](#private-network-vpn-autho)
+ [Etapa 7: baixe o arquivo de configuração do endpoint do cliente VPN](#private-network-vpn-download)
+ [Etapa 8: conecte-se à AWS Client VPN](#private-network-vpn-connect)
+ [Próximas etapas](#create-vpc-vpn-next-up)

## Rede privada
<a name="private-network-vpn-onconsole"></a>

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 do Amazon MWAA com um servidor Web privado.\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/images/mwaa-private-web-server.png)


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](access-policies.md).

Ao criar um ambiente com acesso ao servidor Web privado, você deve empacotar todas as suas dependências em um arquivo wheel do Python (`.whl`) e, em seguida, referenciar `.whl` em seu `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](best-practices-dependencies.md#best-practices-dependencies-python-wheels).

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.\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/images/mwaa-console-private-network.png)


## Casos de uso
<a name="private-network-vpn-usecases"></a>

Você pode usar este tutorial antes ou depois de criar um ambiente Amazon MWAA. Você deve usar a mesma Amazon VPC, grupos de segurança VPC e sub-redes privadas do seu ambiente. Se você usar este tutorial após criar um ambiente do Amazon MWAA, depois de concluir as etapas, poderá retornar ao console do Amazon MWAA e alterar o modo de acesso do servidor Web do Apache Airflow para **Rede privada**.

## Antes de começar
<a name="private-network-vpn-prereqs"></a>

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.

1. Use sua VPC do Amazon MWAA. Este tutorial pressupõe que você esteja associando a VPN do cliente a uma VPC existente. A Amazon VPC deve estar na mesma Região da AWS de um ambiente do Amazon MWAA e ter duas sub-redes privadas. Se você não criou um Amazon VPC, use o modelo CloudFormation em [Opção três: criar uma rede Amazon VPC *sem* acesso à internet](vpc-create.md#vpc-create-template-private-only).

## Objetivos
<a name="private-network-vpn-objectives"></a>

Neste tutorial, você irá:

1. Criar um endpoint AWS Client VPN usando um modelo CloudFormation para um Amazon VPC existente.

1. Gerar os certificados e as chaves de servidor e cliente e, em seguida, fazer upload do certificado e da chave de servidor para AWS Certificate Manager na mesma Região da AWS de um ambiente do Amazon MWAA.

1. Baixe e modifique um arquivo de configuração de endpoint do cliente VPN para sua VPN do cliente e use o arquivo para criar um perfil de VPN para se conectar usando a VPN do cliente para Desktop.

## Etapa 1 (opcional): identifique sua VPC, as regras CIDR e a segurança da VPC
<a name="private-network-vpn-optional"></a>

A seção a seguir descreve como encontrar IDs para seu Amazon VPC, grupo de segurança da VPC e uma forma de identificar as regras CIDR necessárias para criar sua VPN do cliente nas etapas subsequentes.

### Identifique suas regras CIDR
<a name="private-network-vpn-cidr"></a>

A seção a seguir explica como identificar as regras CIDR que você precisará para criar sua VPN do cliente.

**Para identificar o CIDR da sua VPN do cliente**

1. Abra a página [Suas Amazon VPCs](https://console.aws.amazon.com/vpc/home#/vpcs:) no console do Amazon VPC.

1. Use o seletor de região na barra de navegação para escolher a mesma Região da AWS que a de um ambiente do Amazon MWAA.

1. Escolha sua Amazon VPC.

1. Supondo que os CIDRs de suas sub-redes privadas são:
   + Sub-rede privada 1: 10.192.10.0`/24`
   + Sub-rede privada 2: 10.192.11.0`/24`

   Se o CIDR para seu Amazon VPC for 10.192.0.0`/16`, o **CIDR IPv4 do cliente** que você especificaria para sua VPN do cliente seria 10.192.0.0`/22`.

1. Salve este valor de CIDR e o valor do seu ID de VPC para as etapas subsequentes.

### Identifique sua VPC e os grupos de segurança
<a name="private-network-vpn-sec"></a>

A seção a seguir explica como encontrar a ID da sua Amazon VPC e os grupos de segurança de que você precisará para criar sua VPN do cliente.

**nota**  
Você pode estar usando mais de um grupo de segurança. Você precisará especificar todos os grupos de segurança da sua VPC nas etapas subsequentes.

**Para identificar os grupos de segurança**

1. Abra a página [Grupo de segurança](https://console.aws.amazon.com/vpc/home#/securityGroups:) no console do Amazon VPC.

1. Use o seletor de região na barra de navegação para escolher a Região da AWS.

1. Procure a Amazon VPC na **ID da VPC** e identifique os grupos de segurança associados à VPC.

1. Salve a ID de seus grupos de segurança e da VPC para as etapas subsequentes.

## Etapa 2: crie os certificados de servidor e de cliente
<a name="private-network-vpn-certs"></a>

Um endpoint do cliente VPN é compatível apenas com tamanhos de chave RSA de 1024 bits e 2048 bits. A seção a seguir explica como usar o OpenVPN easy-rsa para gerar os certificados e as chaves de servidor e cliente e fazer em seguida o upload dos certificados para ACM usando a AWS Command Line Interface (AWS CLI).

**Criar os certificados de cliente**

1. Siga estas etapas rápidas para criar e fazer upload dos certificados no ACM por meio da AWS CLI em [Autenticação e autorização do cliente: autenticação mútua](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html#mutual).

1. Nestas etapas, você **deve** especificar a mesma Região da AWS de um ambiente do Amazon MWAA no comando AWS CLI ao fazer upload de seus certificados de servidor e cliente. Veja a seguir alguns exemplos de como especificar a região nestes comandos:

   1.   
**Example região para certificado de servidor**  

      ```
      aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt --region us-west-2
      ```

   1.   
**Example região para certificado de cliente**  

      ```
      aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt --region us-west-2
      ```

   1. Após essas etapas, salve o valor retornado na resposta AWS CLI para os ARNs do certificado do servidor e do certificado do cliente. Você especificará esses ARNs em seu modelo CloudFormation para criar a VPN do cliente.

1. Nestas etapas, um certificado de cliente e uma chave privada são salvos no seu computador. Veja a seguir um exemplo de onde encontrar essas credenciais:

   1.   
**Example No macOS**  

      No macOS, o conteúdo é salvo em `/Users/your-user/custom_folder`. Se você listar todos os conteúdos (`ls -a`) deste diretório, deverá obter algo semelhante ao seguinte:

      ```
      .
      ..
      ca.crt
      client1.domain.tld.crt
      client1.domain.tld.key
      server.crt
      server.key
      ```

   1. Após estas etapas, salve o conteúdo ou anote a localização do certificado do cliente em `client1.domain.tld.crt` e a chave privada em `client1.domain.tld.key`. Você adicionará estes valores ao arquivo de configuração de sua VPN do cliente.

## Etapa 3: salve o modelo CloudFormation localmente
<a name="private-network-vpn-template"></a>

A seção a seguir contém o modelo CloudFormation para criar a VPN do cliente. Você deve especificar a mesma Amazon VPC, os mesmos grupos de segurança VPC e as mesmas sub-redes privadas de seu ambiente do Amazon MWAA.
+ Copie o conteúdo do modelo a seguir e salve localmente como `mwaa_vpn_client.yaml`. Também é possível [baixar o modelo](./samples/mwaa_vpn_client.zip).

  Substitua os seguintes valores:
  + **YOUR\$1CLIENT\$1ROOT\$1CERTIFICATE\$1ARN** - o ARN do seu certificado **client1.domain.tld** em `ClientRootCertificateChainArn`.
  + **YOUR\$1SERVER\$1CERTIFICATE\$1ARN** - o ARN do seu certificado **server** em `ServerCertificateArn`.
  + A regra CIDR IPv4 do cliente em `ClientCidrBlock`. É fornecida uma regra CIDR de `10.192.0.0/22`.
  + Seu ID da Amazon VPC está em `VpcId`. É fornecida uma VPC de `vpc-010101010101`.
  + Suas IDs de grupo de segurança da VPC em `SecurityGroupIds`. É fornecido um grupo de segurança de `sg-0101010101`.

  ```
  AWSTemplateFormatVersion: 2010-09-09
  Description: This template deploys a VPN Client Endpoint.
  Resources:
    ClientVpnEndpoint:
      Type: 'AWS::EC2::ClientVpnEndpoint'
      Properties:
        AuthenticationOptions:
          - Type: "certificate-authentication"
            MutualAuthentication:
              ClientRootCertificateChainArn: "YOUR_CLIENT_ROOT_CERTIFICATE_ARN"
        ClientCidrBlock: 10.192.0.0/22
        ClientConnectOptions:
          Enabled: false
        ConnectionLogOptions:
          Enabled: false
        Description: "MWAA Client VPN"
        DnsServers: []
        SecurityGroupIds:
          - sg-0101010101
        SelfServicePortal: ''
        ServerCertificateArn: "YOUR_SERVER_CERTIFICATE_ARN"
        SplitTunnel: true
        TagSpecifications:
          - ResourceType: "client-vpn-endpoint"
            Tags:
            - Key: Name
              Value: MWAA-Client-VPN
        TransportProtocol: udp
        VpcId: vpc-010101010101
        VpnPort: 443
  ```

**nota**  
Se você estiver usando mais de um grupo de segurança para seu ambiente, poderá especificar vários grupos de segurança no seguinte formato:  

```
SecurityGroupIds:
 - sg-0112233445566778b
 - sg-0223344556677889f
```

## Etapa 4: crie a pilha CloudFormation VPN do cliente
<a name="private-network-vpn-create"></a>

**Para criar o AWS Client VPN**

1. Abra o [console de AWS CloudFormation](https://console.aws.amazon.com/cloudformation/home#).

1. Escolha **O modelo está pronto** e **Fazer upload de um arquivo de modelo**.

1. Selecione **Escolher arquivo** e selecione seu arquivo `mwaa_vpn_client.yaml`.

1. Escolha **Avançar**, **Avançar**.

1. Selecione a confirmação e então escolha **Criar pilha**.

## Etapa 5: associe sub-redes à sua VPN do cliente
<a name="private-network-vpn-associate"></a>

**Para associar sub-redes privadas à AWS Client VPN**

1. Abra [Console do Amazon VPC](https://console.aws.amazon.com/vpc/home#).

1. Escolha a página **Endpoint do cliente VPN**.

1. Selecione sua VPN do cliente e, em seguida, escolha a guia **Associações**, **Associar**.

1. Na lista suspensa, escolha:
   + Seu Amazon VPC em **VPC**.
   + Uma de suas sub-redes privadas em **Escolha uma sub-rede para associar**.

1. Selecione **Associar**.

**nota**  
A VPC e a sub-rede levam vários minutos para serem associadas à VPN do cliente.

## Etapa 6: adicione uma regra de entrada de autorização à sua VPN do cliente
<a name="private-network-vpn-autho"></a>

Você precisa adicionar uma regra de entrada de autorização usando a regra CIDR da sua VPC à sua VPN do cliente. Se você quiser autorizar usuários ou grupos específicos do seu grupo do Active Directory ou do Provedor de Identidades (IdP) baseado em SAML, consulte as [regras de autorização](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-rules.html) no *Guia da VPN do cliente*.

**Para adicionar o CIDR à AWS Client VPN**

1. Abra [Console do Amazon VPC](https://console.aws.amazon.com/vpc/home#).

1. Escolha a página **Endpoint do cliente VPN**.

1. Selecione sua VPN do cliente e, em seguida, escolha a guia **Autorização**, **Autorizar entrada**.

1. Especifique o seguinte:
   + A regra CIDR do Amazon VPC na **Rede de destino para habilitação**. Por exemplo:

     ```
     10.192.0.0/16
     ```
   + Para **Conceder acesso a**, escolha **Permitir acesso a todos os usuários**.
   + Para **Descrição**, insira um nome descritivo.

1. Escolha **Adicionar regra de autorização**.

**nota**  
Dependendo dos componentes de rede da sua Amazon VPC, você também pode precisar dessa regra de entrada de autorização na sua lista de controle de acesso à rede (NACL).

## Etapa 7: baixe o arquivo de configuração do endpoint do cliente VPN
<a name="private-network-vpn-download"></a>

**Para fazer download do arquivo de configuração**

1. Siga estas etapas rápidas para baixar o arquivo de configuração do Client VPN em [Baixar o arquivo de configuração do endpoint do Client VPN](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-getting-started.html#cvpn-getting-started-config).

1. Nestas etapas, você deverá acrescentar uma string ao nome DNS do endpoint do cliente VPN. Veja um exemplo abaixo:

   1.   
**Example nome DNS do endpoint**  

     Se o nome DNS do endpoint da VPN do cliente for:

     ```
     remote cvpn-endpoint-0909091212aaee1.prod.clientvpn.us-west-1.amazonaws.com 443
     ```

     Você pode adicionar uma string para identificar seu endpoint do cliente VPN da seguinte forma:

     ```
     remote mwaavpn.cvpn-endpoint-0909091212aaee1.prod.clientvpn.us-west-1.amazonaws.com 443
     ```

1. Nestas etapas, você deve adicionar o conteúdo do certificado do cliente entre um novo conjunto de etiquetas `<cert></cert>` e o conteúdo da chave privada entre um novo conjunto de etiquetas `<key></key>`. Veja um exemplo abaixo:

   1. Abra um prompt de comando e altere os diretórios para o local do certificado do cliente e da chave privada.

   1.   
**Example client1.domain.tld.crt do macOS**  

      Para mostrar o conteúdo do arquivo `client1.domain.tld.crt` no macOS, você pode usar `cat client1.domain.tld.crt`.

      Copie o valor do terminal e cole em `downloaded-client-config.ovpn`, desta forma:

      ```
      ZZZ1111dddaBBB
      -----END CERTIFICATE-----
      </ca>
      <cert>
      -----BEGIN CERTIFICATE-----
      YOUR client1.domain.tld.crt
      -----END CERTIFICATE-----                
      </cert>
      ```

   1.   
**Example client1.domain.tld.key do macOS**  

      Para mostrar o conteúdo de `client1.domain.tld.key`, você pode usar `cat client1.domain.tld.key`.

      Copie o valor do terminal e cole em `downloaded-client-config.ovpn`, desta forma:

      ```
      ZZZ1111dddaBBB
      -----END CERTIFICATE-----
      </ca>
      <cert>
      -----BEGIN CERTIFICATE-----
      YOUR client1.domain.tld.crt
      -----END CERTIFICATE-----                
      </cert>
      <key>
      -----BEGIN CERTIFICATE-----
      YOUR client1.domain.tld.key
      -----END CERTIFICATE-----                
      </key>
      ```

## Etapa 8: conecte-se à AWS Client VPN
<a name="private-network-vpn-connect"></a>

O cliente para AWS Client VPN é fornecido gratuitamente. Você pode conectar seu computador diretamente à AWS Client VPN para uma experiência completa de VPN.

**Para se conectar à VPN do cliente**

1. Baixe e instale [AWS Client VPN for Desktop](https://aws.amazon.com/vpn/client-vpn-download/).

1. Abra a AWS Client VPN.

1. Escolha **Arquivo**, **Perfis gerenciados** no menu do cliente VPN.

1. Escolha **Adicionar perfil** e, em seguida, escolha `downloaded-client-config.ovpn`.

1. Insira um nome descritivo em **Nome de exibição**.

1. Escolha **Adicionar perfil** e **Concluído**.

1. Selecione **Conectar**.

Depois de se conectar à VPN do cliente, você precisará se desconectar de outras VPNs para acessar qualquer um dos recursos em sua Amazon VPC.

**nota**  
Talvez seja necessário sair do cliente e começar de novo antes de conseguir se conectar.

## Próximas etapas
<a name="create-vpc-vpn-next-up"></a>
+ Saiba como criar um ambiente do Amazon MWAA em [Comece a usar o Amazon Managed Workflows for Apache Airflow](get-started.md). Você deve criar um ambiente na mesma Região da AWS como uma VPN do cliente e usar a mesma VPC, as mesmas sub-redes privadas e o mesmo grupo de segurança da VPN do cliente.

# Tutorial: Como configurar o acesso à rede privada usando um Linux Bastion Host
<a name="tutorials-private-network-bastion"></a>

Este tutorial mostra as etapas para criar um túnel SSH do seu computador para o servidor Web do Apache Airflow para seu ambiente Amazon Managed Workflows para 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ê usará um complemento de gerenciamento de proxy SOCKS para controlar as configurações de proxy em seu navegador e acessar sua IU do Apache Airflow.

**Topics**
+ [Rede privada](#private-network-lb-onconsole)
+ [Casos de uso](#private-network-lb-usecases)
+ [Antes de começar](#private-network-lb-prereqs)
+ [Objetivos](#private-network-lb-objectives)
+ [Etapa 1: criar a instância do bastion](#private-network-lb-create-bastion)
+ [Etapa 2: criar o túnel ssh](#private-network-lb-create-test)
+ [Etapa 3: configurar o grupo de segurança bastion como uma regra de entrada](#private-network-lb-create-sgsource)
+ [Etapa 4: copiar o URL do Apache Airflow](#private-network-lb-view-env)
+ [Etapa 5: definir as configurações de proxy](#private-network-lb-browser-extension)
+ [Etapa 6: abra a IU do Apache Airflow](#private-network-lb-open)
+ [Próximas etapas](#bastion-next-up)

## Rede privada
<a name="private-network-lb-onconsole"></a>

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 do Amazon MWAA com um servidor Web privado.\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/images/mwaa-private-web-server.png)


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](access-policies.md).

Ao criar um ambiente com acesso ao servidor Web privado, você deve empacotar todas as suas dependências em um arquivo wheel do Python (`.whl`) e, em seguida, referenciar `.whl` em seu `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](best-practices-dependencies.md#best-practices-dependencies-python-wheels).

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.\]](http://docs.aws.amazon.com/pt_br/mwaa/latest/userguide/images/mwaa-console-private-network.png)


## Casos de uso
<a name="private-network-lb-usecases"></a>

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
<a name="private-network-lb-prereqs"></a>

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.

1. 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](vpc-create.md).

1. 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#prepare-key-pair) no *Guia do usuário do Amazon EC2*.

## Objetivos
<a name="private-network-lb-objectives"></a>

Neste tutorial, você irá:

1. Crie uma instância do Linux Bastion Host usando um [Modelo CloudFormationpara uma VPC existente](https://fwd.aws/vWMxm).

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

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

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

1. Instale e configure o complemento FoxyProxy para o navegador Firefox para acessar a IU do Apache Airflow.

## Etapa 1: criar a instância do bastion
<a name="private-network-lb-create-bastion"></a>

A seção a seguir descreve as etapas para criar a instância Linux Bastion usando um [Modelo CloudFormation para uma VPC existente](https://fwd.aws/vWMxm) no console CloudFormation.

**Para criar o Linux Bastion Host**

1. Abra a página [Implantar início rápido](https://fwd.aws/Jwzqv) no console CloudFormation.

1. Use o seletor de região na barra de navegação para escolher a mesma Região da AWS como seu ambiente Amazon MWAA.

1. Escolha **Próximo**.

1. Digite um nome no campo de texto **Nome da pilha**, como `mwaa-linux-bastion`.

1. No painel **Parâmetros**, **Configuração de rede**, escolha as seguintes opções:

   1. Escolha o seu **ID da VPC** do ambiente do Amazon VPC.

   1. Escolha o seu **ID da sub-rede pública 1** do ambiente do Amazon VPC.

   1. Escolha o seu **ID da sub-rede pública 2** do ambiente do Amazon VPC.

   1. Insira o intervalo de endereços mais estreito possível (por exemplo, um intervalo CIDR interno) em **CIDR de acesso externo permitido ao Bastion**.
**nota**  
A maneira mais simples de identificar um intervalo é usar o mesmo intervalo CIDR de suas sub-redes públicas. Por exemplo, as sub-redes públicas no modelo do CloudFormation na página [Criar a rede VPC](vpc-create.md) são `10.192.10.0/24` e `10.192.11.0/24`.

1. No painel **Configuração do Amazon EC2**, escolha o seguinte:

   1. Escolha sua chave SSH na lista suspensa em **Nome do par de chaves**.

   1. Insira um nome em **Nome do bastion host**.

   1. Escolha **verdadeiro** para **Encaminhamento TCP**.
**Atenção**  
O encaminhamento TCP deve ser definido como **verdadeiro** nesta etapa. Caso contrário, não será possível criar um túnel SSH na etapa seguinte.

1. Escolha **Avançar**, **Avançar**.

1. Selecione a confirmação e então escolha **Criar pilha**.

Para saber mais sobre a arquitetura do seu Linux Bastion Host, consulte [Linux Bastion Hosts na Nuvem da AWS: Arquitetura](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/architecture.html).

## Etapa 2: criar o túnel ssh
<a name="private-network-lb-create-test"></a>

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

------
#### [ macOS/Linux ]

**Para criar um túnel usando a linha de comando**

1. Abra a página [Instâncias](https://console.aws.amazon.com/ec2/v2/home#/Instances:) no console do Amazon EC2.

1. Escolha uma instância.

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

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

1. 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](https://console.aws.amazon.com/ec2/v2/home#/Instances:) no console do Amazon EC2.

1. Escolha uma instância.

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

1. Abra o [PuTTY](https://www.putty.org/), e selecione **Sessão**.

1. Insira o nome do host em **Nome do host** como ec2-user@*YOUR\$1PUBLIC\$1IPV4\$1DNS* e a **porta** como `22`.

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

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

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

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

1. Escolha **Salvar**, **Abrir**.
**nota**  
Talvez seja necessário inserir uma frase secreta para sua chave pública.

------

**nota**  
Se você receber um erro `Permission denied (publickey)`, recomendamos usar a ferramenta [AWSSupport-TroubleshootSSH](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-awssupport-troubleshootssh.html) e escolher **Executar esta automação (console)** para solucionar problemas de configuração de SSH.

## Etapa 3: configurar o grupo de segurança bastion como uma regra de entrada
<a name="private-network-lb-create-sgsource"></a>

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](https://console.aws.amazon.com/mwaa/home#/environments) no console do Amazon MWAA.

1. Escolha um ambiente.

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

1. Escolha **Editar regras de entrada**.

1. Escolha **Adicionar regra**.

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

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

1. Escolha **Salvar regras**.

## Etapa 4: copiar o URL do Apache Airflow
<a name="private-network-lb-view-env"></a>

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](https://console.aws.amazon.com/mwaa/home#/environments) no console do Amazon MWAA.

1. Escolha um ambiente.

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

## Etapa 5: definir as configurações de proxy
<a name="private-network-lb-browser-extension"></a>

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, é possível usar o atributo `--proxy-server` do Chromium para iniciar uma sessão do navegador ou usar a extensão FoxyProxy no navegador Mozilla FireFox.

### Opção um: configure um túnel SSH usando o encaminhamento de portas locais
<a name="private-network-lb-browser-extension-portforwarding"></a>

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 a interface web do Amazon EC2 *ResourceManager* ao encaminhar o tráfego na porta local 8157.

1. Abra uma nova janela do prompt de comando.

1. 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 ubuntu@YOUR_PUBLIC_IPV4_DNS.us-east-1.compute.amazonaws.com
   ```

   `-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ó.

1. Digite `http://localhost:8157/` no navegador.
**nota**  
Talvez seja necessário usar `https://localhost:8157/`.

### Opção dois: proxies via linha de comando
<a name="private-network-lb-browser-extension-foxyp"></a>

É 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 usando FoxyProxy para o Mozilla Firefox
<a name="private-network-lb-browser-extension-foxyp"></a>

O exemplo a seguir demonstra uma configuração FoxyProxy Standard (versão 7.5.1) para o Mozilla Firefox. O 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 de extensão [FoxyProxy Standard](https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/).

1. Escolha **Adicionar ao Firefox**.

1. Escolha **Adicionar**.

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

1. Copie o código a seguir e salve localmente como `mwaa-proxy.json`. Substitua o exemplo do valor em *YOUR\$1HOST\$1NAME* pelo seu **URL do Apache Airflow**.

   ```
   {
     "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"
   }
   ```

1. No painel **Importar configurações do FoxyProxy 6.0\$1**, escolha **Importar configurações** e selecione o arquivo `mwaa-proxy.json`.

1. Escolha **OK**.

## Etapa 6: abra a IU do Apache Airflow
<a name="private-network-lb-open"></a>

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

1. Abra a [página Ambientes](https://console.aws.amazon.com/mwaa/home#/environments) no console do Amazon MWAA.

1. Escolha **Abrir a IU do Airflow**.

## Próximas etapas
<a name="bastion-next-up"></a>
+ Saiba como executar comandos CLI do Airflow em um túnel SSH para um bastion host em [Referência de comandos da CLI do Apache Airflow](airflow-cli-command-reference.md).
+ Aprenda a fazer upload de um código DAG para seu bucket do Amazon S3 em [Como adicionar ou atualizar DAGs](configuring-dag-folder.md).

# Tutorial: Restringindo o acesso de um usuário do Amazon MWAA a um subconjunto de DAGs
<a name="limit-access-to-dags"></a>

O Amazon MWAA gerencia o acesso ao seu ambiente mapeando suas entidades principais do IAM para um ou mais [perfis padrão](https://airflow.apache.org/docs/apache-airflow/stable/security/access-control.html#default-roles) do Apache Airflow. Use o tutorial a seguir para restringir usuários individuais do Amazon MWAA a acessar e interagir somente com um DAG específico ou com um conjunto de. DAGs

**nota**  
As etapas deste tutorial podem ser concluídas usando o acesso federado, desde que as perfis do IAM possam ser assumidas.

**Topics**
+ [Pré-requisitos](#limit-access-to-dags-prerequisites)
+ [Etapa 1: forneça acesso ao servidor Web do Amazon MWAA à sua entidade principal do IAM com o perfil padrão `Public` do Apache Airflow.](#limit-access-to-dags-apply-public-access)
+ [Etapa dois: criar um novo perfil personalizado do Apache Airflow](#limit-access-to-dags-create-new-airflow-role)
+ [Etapa três: atribuir o perfil que você criou ao seu usuário do Amazon MWAA](#limit-access-to-dags-assign-role)
+ [Próximas etapas](#limit-access-to-dags-next-up)
+ [Recursos relacionados](#limit-access-to-dags-related-resources)

## Pré-requisitos
<a name="limit-access-to-dags-prerequisites"></a>

Para concluir os passos deste tutorial, você precisará do seguinte:
+ Um [ambiente Amazon MWAA com vários DAGs](get-started.md)
+ Um diretor do IAM, `Admin` com [AdministratorAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AdministratorAccess$jsonEditor)permissões, e um usuário do IAM`MWAAUser`, como principal para o qual você pode limitar o acesso ao DAG. Para obter mais informações sobre perfis de administrador, consulte [Função de trabalho de administrador](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator) no *Guia do usuário do IAM*
**nota**  
Não vincule políticas de permissão diretamente aos seus usuários do IAM. Recomendamos configurar perfis do IAM que os usuários possam assumir para obter acesso temporário aos seus recursos do Amazon MWAA.
+ [AWS Command Line Interface versão 2](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install) instalada.

## Etapa 1: forneça acesso ao servidor Web do Amazon MWAA à sua entidade principal do IAM com o perfil padrão `Public` do Apache Airflow.
<a name="limit-access-to-dags-apply-public-access"></a>

**Para conceder permissão usando o Console de gerenciamento da AWS**

1. Faça login no seu Conta da AWS com uma `Admin` função e abra o [console do IAM](https://console.aws.amazon.com/iam/).

1. No painel de navegação à esquerda, selecione **Usuários** e escolha o usuário do Amazon MWAA IAM.

1. Na página de detalhes do usuário, em **Resumo**, escolha a guia **Permissões** e, em seguida, escolha **Políticas de permissões** para expandir o cartão e escolha **Adicionar permissões**.

1. Na seção **Definir permissões**, escolha **Anexar políticas existentes diretamente** e escolha **Criar política**.

1. Na página **Criar política**, escolha **JSON** e, em seguida, copie e cole a seguinte política de permissões JSON no editor de políticas. Essa política concede acesso do servidor Web ao usuário com o perfil padrão `Public` do Apache Airflow.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "airflow:CreateWebLoginToken",
               "Resource": [
               "arn:aws:airflow:us-east-1:111122223333:role/YOUR_ENVIRONMENT_NAME/Public"
               ]
           }
       ]
   }
   ```

------

## Etapa dois: criar um novo perfil personalizado do Apache Airflow
<a name="limit-access-to-dags-create-new-airflow-role"></a>

**Para criar um novo perfil usando a IU do Apache Airflow**

1. Usando sua função de administrador do IAM, abra o [console do Amazon MWAA](https://console.aws.amazon.com/mwaa/home) e inicie a interface de usuário do Apache Airflow do seu ambiente.

1. No painel de navegação na parte superior, passe o mouse sobre **Segurança** para abrir a lista suspensa e escolha **Listar perfis** para acessar os perfis padrão do Apache Airflow.

1. Na lista de perfis, selecione **Usuário** e, no início da página, escolha **Ações** para abrir o menu suspenso. Escolha **Copiar função** e confirme **Ok**
**nota**  
Copie os perfis **Ops** ou **Viewer** para conceder mais ou menos acesso, respectivamente.

1. Localize a nova função que você criou na tabela e escolha **Editar registro**.

1. Na página **Switch Role**, faça o seguinte:
   + Em **Nome**, digite um novo nome para o perfil no campo de texto. Por exemplo, .**Restricted**
   + Para obter a lista de **Permissões**, remova `can read on DAGs` e`can edit on DAGs`, em seguida, adicione permissões de leitura e gravação para o conjunto ao qual DAGs você deseja fornecer acesso. Por exemplo, para um DAG, `example_dag.py`, adicione **`can read on DAG:example_dag`** e **`can edit on DAG:example_dag`**.

   Escolha **Salvar**. Agora você tem uma nova função que limita o acesso a um subconjunto dos DAGs disponíveis em seu ambiente Amazon MWAA. Você pode atribuir esse perfil a qualquer usuário existente do Apache Airflow.

## Etapa três: atribuir o perfil que você criou ao seu usuário do Amazon MWAA
<a name="limit-access-to-dags-assign-role"></a>

**Para atribuir o novo perfil**

1. Usando as credenciais de acesso para `MWAAUser`, execute o comando da CLI a seguir para recuperar o URL do servidor Web do ambiente.

   ```
   aws mwaa get-environment --name YOUR_ENVIRONMENT_NAME | jq '.Environment.WebserverUrl'
   ```

   Se isso for feito corretamente, você terá o seguinte resultado:

   ```
   "ab1b2345-678a-90a1-a2aa-34a567a8a901.c13.us-west-2.airflow.amazonaws.com"
   ```

1. Com `MWAAUser` login no Console de gerenciamento da AWS, abra uma nova janela do navegador e acesse o seguinte URl. Substitua `Webserver-URL` por suas informações.

   ```
   https://<Webserver-URL>/home
   ```

   Se isso for feito corretamente, você verá uma página de erro `Forbidden` porque o `MWAAUser` ainda não recebeu permissão para acessar a IU do Apache Airflow.

1. Depois de fazer `Admin` login no Console de gerenciamento da AWS, abra o console do Amazon MWAA novamente e inicie a interface do Apache Airflow do seu ambiente.

1. No painel da interface do usuário, expanda a lista suspensa **Segurança** e, desta vez, escolha **Listar** usuários.

1. Na tabela de usuários, encontre o novo usuário do Apache Airflow e escolha **Editar registro**. O primeiro nome do usuário corresponderá ao seu nome de usuário do IAM no seguinte padrão: `user/mwaa-user`.

1. Na página **Editar usuário**, na seção **Função**, adicione a nova função personalizada que você criou e escolha **Salvar**.
**nota**  
O campo **Sobrenome** é obrigatório, mas um espaço satisfaz o requisito.

   O `Public` diretor do IAM concede a `MWAAUser` permissão para acessar a interface do usuário do Apache Airflow, enquanto a nova função fornece as permissões adicionais necessárias para obtê-la. DAGs

**Importante**  
Qualquer um dos 5 perfis padrão (como `Admin`) não autorizados pelo IAM que são adicionados usando a IU do Apache Airflow será removido no próximo login do usuário.

## Próximas etapas
<a name="limit-access-to-dags-next-up"></a>
+ Para saber mais sobre como gerenciar o acesso ao seu ambiente do Amazon MWAA e ver exemplos de políticas do IAM de JSON que podem ser usadas para os usuários do seu ambiente, consulte [Como acessar um ambiente do Amazon MWAA](access-policies.md)

## Recursos relacionados
<a name="limit-access-to-dags-related-resources"></a>
+ [Controle de acesso](https://airflow.apache.org/docs/apache-airflow/stable/security/access-control.html) (documentação do Apache Airflow): saiba mais sobre os perfis padrão do Apache Airflow no site de documentação do Apache Airflow.

# Tutorial: automatizar o gerenciamento de seus próprios endpoints de ambiente no Amazon MWAA
<a name="tutorials-customer-managed-endpoints"></a>

Se você usa o [AWS Organizations](https://docs.aws.amazon.com/) para gerenciar várias Contas da AWS que compartilham recursos, o Amazon MWAA permite criar e gerenciar seus próprios endpoints da Amazon VPC. Isso significa que você pode usar políticas de segurança mais rígidas que permitam acessar somente os recursos exigidos pelo seu ambiente.

Ao criar um ambiente em uma Amazon VPC compartilhada, a conta proprietária da Amazon VPC central (*proprietário*) compartilha as duas sub-redes privadas exigidas pelo Amazon MWAA com outras contas (*participantes*) que pertencem à mesma organização. As contas participantes que compartilham essas sub-redes podem então exibir, criar, modificar e excluir ambientes na VPC compartilhada.

Ao criar um ambiente em uma Amazon VPC compartilhada ou restrita por política, o Amazon MWAA primeiro cria os recursos da VPC de serviço e, em seguida, entra em um estado [https://docs.aws.amazon.com/mwaa/latest/API/API_Environment.html#mwaa-Type-Environment-Status](https://docs.aws.amazon.com/mwaa/latest/API/API_Environment.html#mwaa-Type-Environment-Status) por até 72 horas.

Quando o status do ambiente muda de `CREATING` para `PENDING`, o Amazon MWAA envia uma notificação do Amazon EventBridge sobre a mudança de estado. Isso permite que a conta proprietária crie os endpoints necessários em nome dos participantes com base nas informações do serviço de endpoint do console ou da API do Amazon MWAA ou de forma programática. A seguir, criamos endpoints da Amazon VPC usando uma função do Lambda e uma regra do EventBridge que recebe notificações de alteração de estado do Amazon MWAA.

Aqui, criamos os endpoints na mesma Amazon VPC do ambiente. Para configurar uma Amazon VPC compartilhada, crie a regra do EventBridge e a função do Lambda na conta do proprietário e o ambiente do Amazon MWAA na conta do participante.

**Topics**
+ [Pré-requisitos](#tutorials-customer-managed-endpoints-prerequisites)
+ [Criar a Amazon VPC](#tutorials-customer-managed-endpoints-create-vpc)
+ [Criar a função do Lambda](#tutorials-customer-managed-endpoints-create-lambda-function)
+ [Criar a regra do EventBridge](#tutorials-customer-managed-endpoints-create-eb-rule)
+ [Criar o ambiente do Amazon MWAA](#tutorials-customer-managed-endpoints-create-mwaa)

## Pré-requisitos
<a name="tutorials-customer-managed-endpoints-prerequisites"></a>

Para concluir os passos deste tutorial, você precisará do seguinte:
+ ...

## Criar a Amazon VPC
<a name="tutorials-customer-managed-endpoints-create-vpc"></a>

Use o modelo do CloudFormation e o comando da AWS CLI a seguir para criar uma Amazon VPC. O modelo configura os recursos da Amazon VPC e modifica a política de endpoints para restringir o acesso a uma fila específica.

1. Baixe o [modelo](samples/cfn-vpc-private-network.zip) do CloudFormation e, em seguida, descompacte o arquivo `.yml`.

1. Em uma nova janela do prompt de comando, navegue até a pasta em que o modelo foi salvo e use [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html) para criar a pilha. O sinalizador `--template-body` especifica o caminho para o modelo.

   ```
   aws cloudformation create-stack --stack-name stack-name --template-body file://cfn-vpc-private-network.yml
   ```

Na próxima seção, você criará a função do Lambda.

## Criar a função do Lambda
<a name="tutorials-customer-managed-endpoints-create-lambda-function"></a>

Use o código Python a seguir e a política JSON do IAM para criar uma função do Lambda e função de execução. Essa função cria endpoints da Amazon VPC para um servidor Web do Apache Airflow privado e uma fila do Amazon SQS. O Amazon MWAA usa o Amazon SQS para enfileirar tarefas com o Celery entre vários trabalhadores ao escalar seu ambiente.

1. Baixe o [código da função](./samples/mwaa-lambda-shared-vpc.zip) Python.

1. Faça download da [política de permissão](./samples/lambda-mwaa-shared-vpce-policy.zip) do IAM e descompacte o arquivo.

1. Abra um prompt de comando e navegue até a pasta em que a política de permissão do JSON foi salva. Use o comando [https://docs.aws.amazon.com/](https://docs.aws.amazon.com/) do IAM para criar a função.

   ```
   aws iam create-role --role-name function-role \
   						--assume-role-policy-document file://lambda-mwaa-vpce-policy.json
   ```

   Observe o ARN da função na resposta da AWS CLI. Na próxima etapa, especificaremos essa nova função como a função de execução da função usando o ARN.

1. Navegue até a pasta em que o código da função foi salvo e use o comando [https://docs.aws.amazon.com/](https://docs.aws.amazon.com/) para criar uma função.

   ```
   aws lambda create-function --function-name mwaa-vpce-lambda \
   --zip-file file://mwaa-lambda-shared-vpc.zip --runtime python3.8 --role arn:aws:iam::123456789012:role/function-role --handler lambda_handler
   ```

   Observe o ARN da função na resposta da AWS CLI. Na próxima etapa, especificaremos o ARN para configurar a função como destino para uma nova regra do EventBridge.

Na próxima seção, você criará a regra do EventBridge que invoca essa função quando o ambiente entra em um estado `PENDING`.

## Criar a regra do EventBridge
<a name="tutorials-customer-managed-endpoints-create-eb-rule"></a>

Siga as instruções a seguir para criar uma regra que receba as notificações do Amazon MWAA e tenha como destino sua nova função do Lambda.

1. Use o comando `put-rule` do EventBridge para criar uma regra do EventBridge.

   ```
   aws events put-rule --name "mwaa-lambda-rule" \
   --event-pattern "{\"source\":[\"aws.airflow\"],\"detail-type\":[\"MWAA Environment Status Change\"]}"
   ```

   O padrão de eventos recebe as notificações que o Amazon MWAA envia sempre que o status de um ambiente muda.

   ```
   {
   					"source": ["aws.airflow"],
   					"detail-type": ["MWAA Environment Status Change"]
   					}
   ```

1. Use o comando `put-targets` para adicionar a função do Lambda com um destino para a nova regra.

   ```
   aws events put-targets --rule "mwaa-lambda-rule" \
   --targets "Id"="1","Arn"="arn:aws:lambda:us-east-1:123456789012:function:mwaa-vpce-lambda"
   ```

Está tudo pronto para criar um ambiente do Amazon MWAA com endpoints da Amazon VPC gerenciados pelo cliente.

## Criar o ambiente do Amazon MWAA
<a name="tutorials-customer-managed-endpoints-create-mwaa"></a>

Use o console do Amazon MWAA para criar um ambiente com endpoints da Amazon VPC gerenciados pelo cliente.

1. Abra o console do [Amazon MWAA](https://console.aws.amazon.com/mwaa/home/) e escolha **Criar um ambiente**.

1. Em **Nome**, insira um nome exclusivo.

1. Em **Versão do Airflow**, escolha a mais recente.

1. Escolha um **bucket do Amazon S3** e uma **pasta DAGs**, como `dags/`, para usar com o ambiente, e escolha **Next**.

1. Na página **Configurar definições avançadas**, faça o seguinte:

   1. Em **Nuvem privada virtual (VPC)**, escolha a Amazon VPC criada na [etapa anterior](#tutorials-customer-managed-endpoints-create-vpc).

   1. Em **Acesso ao servidor Web**, escolha **Rede pública (acessível pela internet)**.

   1. Em **Grupos de segurança**, escolha o grupo de segurança criado com o CloudFormation. Como os grupos de segurança dos endpoints de AWS PrivateLink da etapa anterior são autorreferenciados, você deve escolher o mesmo grupo de segurança para o seu ambiente.

   1. Em **Gerenciamento de endpoints**, escolha **Endpoints gerenciados pelo cliente**.

1. Mantenha as configurações padrão restantes e escolha **Avançar**.

1. Revise suas seleções e escolha **Criar ambiente**.

**dica**  
Para obter mais informações sobre como configurar um novo ambiente, consulte [Introdução ao Amazon MWAA](get-started.md).

Quando o ambiente estiver `PENDING`, o Amazon MWAA envia uma notificação que corresponde ao padrão de evento que você definiu para a regra. A regra invoca a função do Lambda. A função analisa o evento de notificação e obtém as informações de endpoint necessárias para o servidor Web e a fila do Amazon SQS. Em seguida, ela cria os endpoints na Amazon VPC.

Quando os endpoints estão disponíveis, o Amazon MWAA retoma a criação do ambiente. Quando estiver pronto, o status do ambiente muda para `AVAILABLE` e você pode acessar o servidor do Web Apache Airflow usando o console do Amazon MWAA.