

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Tutoriels pour Amazon Managed Workflows pour Apache Airflow
<a name="tutorials"></a>

Ce guide inclut des step-by-step didacticiels sur l'utilisation et la configuration d'un environnement Amazon Managed Workflows pour Apache Airflow.

**Topics**
+ [Tutoriel : Configuration de l'accès au réseau privé à l'aide d'un AWS Client VPN](tutorials-private-network-vpn-client.md)
+ [Tutoriel : Configuration de l'accès au réseau privé à l'aide d'un hôte Linux Bastion](tutorials-private-network-bastion.md)
+ [Tutoriel : Restreindre l'accès d'un utilisateur Amazon MWAA à un sous-ensemble de DAGs](limit-access-to-dags.md)
+ [Tutoriel : Automatisez la gestion des points de terminaison de votre propre environnement sur Amazon MWAA](tutorials-customer-managed-endpoints.md)

# Tutoriel : Configuration de l'accès au réseau privé à l'aide d'un AWS Client VPN
<a name="tutorials-private-network-vpn-client"></a>

Ce didacticiel explique les étapes à suivre pour créer un tunnel VPN entre votre ordinateur et le serveur Web Apache Airflow pour votre environnement Amazon Managed Workflows for Apache Airflow. Pour vous connecter à Internet via un tunnel VPN, vous devez d'abord créer un AWS Client VPN point de terminaison. Une fois configuré, un point de terminaison VPN Client agit comme un serveur VPN permettant une connexion sécurisée entre votre ordinateur et les ressources de votre VPC. Vous vous connecterez ensuite au Client VPN depuis votre ordinateur à l'aide de [AWS Client VPN for Desktop](https://aws.amazon.com/vpn/client-vpn-download/).

**Topics**
+ [Réseau privé](#private-network-vpn-onconsole)
+ [Cas d’utilisation](#private-network-vpn-usecases)
+ [Avant de commencer](#private-network-vpn-prereqs)
+ [Objectifs](#private-network-vpn-objectives)
+ [(Facultatif) Première étape : identifier votre VPC, vos règles CIDR et la sécurité de votre VPC](#private-network-vpn-optional)
+ [Deuxième étape : créer les certificats du serveur et du client](#private-network-vpn-certs)
+ [Troisième étape : enregistrer le CloudFormation modèle localement](#private-network-vpn-template)
+ [Quatrième étape : créer la CloudFormation pile VPN du Client](#private-network-vpn-create)
+ [Étape 5 : associer des sous-réseaux à votre Client VPN](#private-network-vpn-associate)
+ [Sixième étape : ajouter une règle d'entrée d'autorisation à votre Client VPN](#private-network-vpn-autho)
+ [Étape 7 : Téléchargez le fichier de configuration du point de terminaison du Client VPN](#private-network-vpn-download)
+ [Huitième étape : Connectez-vous au AWS Client VPN](#private-network-vpn-connect)
+ [Quelle est la prochaine étape ?](#create-vpc-vpn-next-up)

## Réseau privé
<a name="private-network-vpn-onconsole"></a>

Ce didacticiel part du principe que vous avez choisi le mode d'accès au **réseau privé** pour votre serveur Web Apache Airflow.

![\[Cette image montre l'architecture d'un environnement Amazon MWAA avec un serveur Web privé.\]](http://docs.aws.amazon.com/fr_fr/mwaa/latest/userguide/images/mwaa-private-web-server.png)


Le mode d'accès au réseau privé limite l'accès à l'interface utilisateur d'Apache Airflow aux utilisateurs de votre *Amazon VPC* qui ont obtenu l'accès à la politique [IAM](access-policies.md) de votre environnement.

Lorsque vous créez un environnement avec accès privé à un serveur Web, vous devez empaqueter toutes vos dépendances dans une archive Python Wheel (`.whl`), puis y faire référence `.whl` dans votre`requirements.txt`. Pour obtenir des instructions sur l'empaquetage et l'installation de vos dépendances à l'aide de wheel, reportez-vous à [la section Gestion des dépendances à l'aide de Python Wheel](best-practices-dependencies.md#best-practices-dependencies-python-wheels).

L'image suivante indique où trouver l'option **Réseau privé** sur la console Amazon MWAA.

![\[Cette image indique où trouver l'option Réseau privé sur la console Amazon MWAA.\]](http://docs.aws.amazon.com/fr_fr/mwaa/latest/userguide/images/mwaa-console-private-network.png)


## Cas d’utilisation
<a name="private-network-vpn-usecases"></a>

Vous pouvez utiliser ce didacticiel avant ou après avoir créé un environnement Amazon MWAA. Vous devez utiliser les mêmes Amazon VPC, les mêmes groupes de sécurité VPC et les mêmes sous-réseaux privés que votre environnement. **Si vous utilisez ce didacticiel après avoir créé un environnement Amazon MWAA, une fois les étapes terminées, vous pouvez revenir à la console Amazon MWAA et changer le mode d'accès de votre serveur Web Apache Airflow en mode réseau privé.**

## Avant de commencer
<a name="private-network-vpn-prereqs"></a>

1. Vérifiez les autorisations des utilisateurs. Assurez-vous que votre compte dans Gestion des identités et des accès AWS (IAM) dispose des autorisations suffisantes pour créer et gérer les ressources VPC.

1. Utilisez votre VPC Amazon MWAA. Ce didacticiel part du principe que vous associez le Client VPN à un VPC existant. Le VPC Amazon doit être Région AWS identique à un environnement Amazon MWAA et disposer de deux sous-réseaux privés. Si vous n'avez pas créé de VPC Amazon, utilisez le CloudFormation modèle dans. [Troisième option : créer un réseau Amazon VPC *sans* accès à Internet](vpc-create.md#vpc-create-template-private-only)

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

Dans le cadre de ce didacticiel, vous effectuerez les tâches suivantes :

1. Créez un AWS Client VPN point de terminaison à l'aide d'un CloudFormation modèle pour un Amazon VPC existant.

1. Générez des certificats et des clés de serveur et de client, puis téléchargez le certificat de serveur et la clé AWS Certificate Manager dans un environnement Amazon MWAA Région AWS comme dans un environnement Amazon MWAA.

1. Téléchargez et modifiez un fichier de configuration du point de terminaison Client VPN pour votre Client VPN, puis utilisez-le pour créer un profil VPN afin de vous connecter à l'aide du Client VPN pour ordinateur de bureau.

## (Facultatif) Première étape : identifier votre VPC, vos règles CIDR et la sécurité de votre VPC
<a name="private-network-vpn-optional"></a>

La section suivante explique comment IDs rechercher votre Amazon VPC, votre groupe de sécurité VPC et comment identifier les règles CIDR dont vous aurez besoin pour créer votre Client VPN lors des étapes suivantes.

### Identifiez vos règles CIDR
<a name="private-network-vpn-cidr"></a>

La section suivante explique comment identifier les règles CIDR dont vous aurez besoin pour créer votre Client VPN.

**Pour identifier le CIDR de votre Client VPN**

1. Ouvrez la [ VPCs page Your Amazon](https://console.aws.amazon.com/vpc/home#/vpcs:) sur la console Amazon VPC.

1. Utilisez le sélecteur de région dans la barre de navigation pour choisir un environnement Amazon MWAA Région AWS identique.

1. Choisissez votre Amazon VPC.

1. En supposant que CIDRs les sous-réseaux privés sont les suivants :
   + Sous-réseau privé 1 : 10.192.10.0 `/24`
   + Sous-réseau privé 2 : 10.192.11.0 `/24`

   Si le CIDR de votre Amazon VPC est `/16` 10.192.0.0, **le CIDR IPv4 client que vous devez spécifier pour votre VPN client** sera 10.192.0.0. `/22`

1. Enregistrez cette valeur CIDR et la valeur de votre ID VPC pour les étapes suivantes.

### Identifiez votre VPC et vos groupes de sécurité
<a name="private-network-vpn-sec"></a>

La section suivante explique comment trouver l'ID de votre Amazon VPC et des groupes de sécurité, dont vous aurez besoin pour créer votre Client VPN.

**Note**  
Vous utilisez peut-être plusieurs groupes de sécurité. Vous devrez spécifier tous les groupes de sécurité de votre VPC dans les étapes suivantes.

**Pour identifier les groupes de sécurité**

1. Ouvrez la [page Security Groups](https://console.aws.amazon.com/vpc/home#/securityGroups:) sur la console Amazon VPC.

1. Utilisez le sélecteur de région dans la barre de navigation pour choisir le Région AWS.

1. Recherchez l'Amazon VPC dans l'**ID du VPC** et identifiez les groupes de sécurité associés au VPC.

1. Enregistrez l'ID de vos groupes de sécurité et de votre VPC pour les étapes suivantes.

## Deuxième étape : créer les certificats du serveur et du client
<a name="private-network-vpn-certs"></a>

Un point de terminaison VPN Client prend en charge uniquement les tailles de clés RSA 1024-bits et 2048-bits. La section suivante explique comment utiliser OpenVPN easy-rsa pour générer les certificats et clés du serveur et du client, puis télécharger les certificats sur ACM à l'aide de (). AWS Command Line Interface AWS CLI

**Pour créer les certificats clients**

1. Suivez ces étapes rapides pour créer et télécharger les certificats vers ACM via la AWS CLI section [Authentification et autorisation du client : authentification mutuelle](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html#mutual).

1. Au cours de ces étapes, vous **devez** spécifier la même chose Région AWS qu'un environnement Amazon MWAA dans la AWS CLI commande lors du téléchargement de vos certificats de serveur et de client. Voici quelques exemples de la manière de spécifier la région dans ces commandes :

   1.   
**Example région pour le certificat de serveur**  

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

   1.   
**Example région pour le certificat client**  

      ```
      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. Après ces étapes, enregistrez la valeur renvoyée dans la AWS CLI réponse pour le certificat de serveur et le certificat client ARNs. Vous allez les spécifier ARNs dans votre CloudFormation modèle pour créer le Client VPN.

1. Au cours de ces étapes, un certificat client et une clé privée sont enregistrés sur votre ordinateur. Voici un exemple où trouver ces informations d'identification :

   1.   
**Example sur macOS**  

      Sur macOS, le contenu est enregistré dans`/Users/your-user/custom_folder`. Si vous listez tout (`ls -a`) le contenu de ce répertoire, vous obtenez quelque chose de similaire à ce qui suit :

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

   1. Après ces étapes, enregistrez le contenu ou notez l'emplacement du certificat client dans `client1.domain.tld.crt` et de la clé privée`client1.domain.tld.key`. Vous allez ajouter ces valeurs au fichier de configuration de votre Client VPN.

## Troisième étape : enregistrer le CloudFormation modèle localement
<a name="private-network-vpn-template"></a>

La section suivante contient le CloudFormation modèle pour créer le Client VPN. Vous devez spécifier les mêmes Amazon VPC, les mêmes groupes de sécurité VPC et les mêmes sous-réseaux privés que votre environnement Amazon MWAA.
+ Copiez le contenu du modèle suivant et enregistrez-le localement sous`mwaa_vpn_client.yaml`. Vous pouvez également [télécharger le modèle](./samples/mwaa_vpn_client.zip).

  Remplacez les valeurs suivantes :
  + **YOUR\$1CLIENT\$1ROOT\$1CERTIFICATE\$1ARN**— L'ARN de votre certificat **client1.domain.tld** dans. `ClientRootCertificateChainArn`
  + **YOUR\$1SERVER\$1CERTIFICATE\$1ARN**— L'ARN de votre certificat de **serveur** dans`ServerCertificateArn`.
  + La règle IPv4 CIDR du client dans. `ClientCidrBlock` Une règle CIDR de `10.192.0.0/22` est fournie.
  + Votre identifiant Amazon VPC dans. `VpcId` Un VPC de `vpc-010101010101` est fourni.
  + Votre groupe IDs de sécurité VPC dans. `SecurityGroupIds` Un groupe de sécurité de `sg-0101010101` est fourni.

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

**Note**  
Si vous utilisez plusieurs groupes de sécurité pour votre environnement, vous pouvez spécifier plusieurs groupes de sécurité au format suivant :  

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

## Quatrième étape : créer la CloudFormation pile VPN du Client
<a name="private-network-vpn-create"></a>

**Pour créer le AWS Client VPN**

1. Ouvrez la [AWS CloudFormation console](https://console.aws.amazon.com/cloudformation/home#).

1. Choisissez **Le modèle est prêt**, puis **chargez un fichier modèle**.

1. Choisissez **Choisir un fichier**, puis sélectionnez votre `mwaa_vpn_client.yaml` fichier.

1. Appuyez sur **Suivant**, **Suivant**.

1. Sélectionnez l'accusé de réception, puis choisissez **Create stack**.

## Étape 5 : associer des sous-réseaux à votre Client VPN
<a name="private-network-vpn-associate"></a>

**Pour associer des sous-réseaux privés au AWS Client VPN**

1. Ouvrez la [console VPC Amazon](https://console.aws.amazon.com/vpc/home#).

1. Choisissez la page **Points de terminaison du Client VPN**.

1. Sélectionnez votre Client VPN, puis cliquez sur l'onglet **Associations**, **Associer**.

1. Choisissez ce qui suit dans la liste déroulante :
   + **Votre Amazon VPC en VPC.**
   + L'un de vos sous-réseaux privés dans **Choisissez un sous-réseau à associer**.

1. Choisissez **Associer**.

**Note**  
Plusieurs minutes sont nécessaires pour que le VPC et le sous-réseau soient associés au Client VPN.

## Sixième étape : ajouter une règle d'entrée d'autorisation à votre Client VPN
<a name="private-network-vpn-autho"></a>

Vous devez ajouter une règle d'entrée d'autorisation à l'aide de la règle CIDR de votre VPC à votre Client VPN. *Si vous souhaitez autoriser des utilisateurs ou des groupes spécifiques à partir de votre groupe Active Directory ou de votre fournisseur d'identité (IdP) basé sur SAML, reportez-vous aux [règles d'autorisation du guide](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-rules.html) Client VPN.*

**Pour ajouter le CIDR au AWS Client VPN**

1. Ouvrez la [console VPC Amazon](https://console.aws.amazon.com/vpc/home#).

1. Choisissez la page **Points de terminaison du Client VPN**.

1. Sélectionnez votre Client VPN, puis cliquez sur l'onglet **Autorisation**, **Autoriser l'entrée**.

1. Spécifiez les paramètres suivants :
   + La règle CIDR de votre Amazon VPC dans le **réseau de destination doit être activée**. Exemples :

     ```
     10.192.0.0/16
     ```
   + Choisissez **Autoriser l'accès à tous les utilisateurs** dans **Accorder l'accès à**.
   + Entrez un nom descriptif dans **Description**.

1. Choisissez **Ajouter une règle d'autorisation**.

**Note**  
En fonction des composants réseau de votre Amazon VPC, vous pouvez également avoir besoin de cette règle d'entrée d'autorisation dans votre liste de contrôle d'accès réseau (NACL).

## Étape 7 : Téléchargez le fichier de configuration du point de terminaison du Client VPN
<a name="private-network-vpn-download"></a>

**Pour télécharger le fichier de configuration :**

1. Suivez ces étapes rapides pour télécharger le fichier de configuration du VPN client sur [Télécharger le fichier de configuration du point de terminaison du VPN client](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-getting-started.html#cvpn-getting-started-config).

1. Au cours de ces étapes, il vous est demandé d'ajouter une chaîne au nom DNS de votre point de terminaison VPN Client. Voici un exemple :

   1.   
**Example nom DNS du point de terminaison**  

     Si le nom DNS du point de terminaison de votre Client VPN est :

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

     Vous pouvez ajouter une chaîne pour identifier le point de terminaison de votre Client VPN comme suit :

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

1. Au cours de ces étapes, il vous est demandé d'ajouter le contenu du certificat client entre un nouvel ensemble de `<cert></cert>` balises et le contenu de la clé privée entre un nouvel ensemble de `<key></key>` balises. Voici un exemple :

   1. Ouvrez une invite de commande et remplacez les répertoires par l'emplacement de votre certificat client et de votre clé privée.

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

      Pour afficher le contenu du `client1.domain.tld.crt` fichier sur macOS, vous pouvez utiliser`cat client1.domain.tld.crt`.

      Copiez la valeur depuis le terminal et collez-la `downloaded-client-config.ovpn` comme ceci :

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

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

      Pour afficher le contenu du`client1.domain.tld.key`, vous pouvez utiliser`cat client1.domain.tld.key`.

      Copiez la valeur depuis le terminal et collez-la `downloaded-client-config.ovpn` comme ceci :

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

## Huitième étape : Connectez-vous au AWS Client VPN
<a name="private-network-vpn-connect"></a>

Le formulaire client AWS Client VPN est fourni gratuitement. Vous pouvez connecter directement votre ordinateur AWS Client VPN pour bénéficier d'une expérience end-to-end VPN.

**Pour vous connecter au Client VPN**

1. Téléchargez et installez le [AWS Client VPN pour ordinateur de bureau](https://aws.amazon.com/vpn/client-vpn-download/).

1. Ouvrez le AWS Client VPN.

1. Choisissez **Fichier**, **Profils gérés** dans le menu du client VPN.

1. Choisissez **Ajouter un profil**, puis sélectionnez le`downloaded-client-config.ovpn`.

1. Entrez un nom descriptif dans **Nom d'affichage**.

1. Choisissez **Ajouter un profil**, **OK**.

1. Choisissez **Se connecter**.

Une fois connecté au Client VPN, vous devez vous déconnecter des autres VPNs pour accéder aux ressources de votre Amazon VPC.

**Note**  
Il se peut que vous deviez quitter le client et recommencer avant de pouvoir vous connecter.

## Quelle est la prochaine étape ?
<a name="create-vpc-vpn-next-up"></a>
+ Découvrez comment créer un environnement Amazon MWAA dans[Commencez avec Amazon Managed Workflows for Apache Airflow](get-started.md). Vous devez créer un environnement Région AWS identique à celui du VPN client et utiliser le même VPC, les mêmes sous-réseaux privés et le même groupe de sécurité que le VPN client.

# Tutoriel : Configuration de l'accès au réseau privé à l'aide d'un hôte Linux Bastion
<a name="tutorials-private-network-bastion"></a>

Ce didacticiel explique les étapes à suivre pour créer un tunnel SSH entre votre ordinateur et le serveur Web Apache Airflow pour votre environnement Amazon Managed Workflows for Apache Airflow. Cela suppose que vous avez déjà créé un environnement Amazon MWAA. Une fois configuré, un hôte Linux Bastion agit comme un serveur de saut permettant une connexion sécurisée entre votre ordinateur et les ressources de votre VPC. Vous utiliserez ensuite un module complémentaire de gestion de proxy SOCKS pour contrôler les paramètres du proxy dans votre navigateur afin d'accéder à votre interface utilisateur Apache Airflow.

**Topics**
+ [Réseau privé](#private-network-lb-onconsole)
+ [Cas d’utilisation](#private-network-lb-usecases)
+ [Avant de commencer](#private-network-lb-prereqs)
+ [Objectifs](#private-network-lb-objectives)
+ [Première étape : créer l'instance de bastion](#private-network-lb-create-bastion)
+ [Deuxième étape : créer le tunnel SSH](#private-network-lb-create-test)
+ [Troisième étape : configurer le groupe de sécurité Bastion en tant que règle entrante](#private-network-lb-create-sgsource)
+ [Étape 4 : Copier l'URL d'Apache Airflow](#private-network-lb-view-env)
+ [Étape 5 : configurer les paramètres du proxy](#private-network-lb-browser-extension)
+ [Sixième étape : ouvrir l'interface utilisateur d'Apache Airflow](#private-network-lb-open)
+ [Quelle est la prochaine étape ?](#bastion-next-up)

## Réseau privé
<a name="private-network-lb-onconsole"></a>

Ce didacticiel part du principe que vous avez choisi le mode d'accès au **réseau privé** pour votre serveur Web Apache Airflow.

![\[Cette image montre l'architecture d'un environnement Amazon MWAA avec un serveur Web privé.\]](http://docs.aws.amazon.com/fr_fr/mwaa/latest/userguide/images/mwaa-private-web-server.png)


Le mode d'accès au réseau privé limite l'accès à l'interface utilisateur d'Apache Airflow aux utilisateurs de votre *Amazon VPC* qui ont obtenu l'accès à la politique [IAM](access-policies.md) de votre environnement.

Lorsque vous créez un environnement avec accès privé à un serveur Web, vous devez empaqueter toutes vos dépendances dans une archive Python Wheel (`.whl`), puis y faire référence `.whl` dans votre`requirements.txt`. Pour obtenir des instructions sur l'empaquetage et l'installation de vos dépendances à l'aide de wheel, reportez-vous à [la section Gestion des dépendances à l'aide de Python Wheel](best-practices-dependencies.md#best-practices-dependencies-python-wheels).

L'image suivante indique où trouver l'option **Réseau privé** sur la console Amazon MWAA.

![\[Cette image indique où trouver l'option Réseau privé sur la console Amazon MWAA.\]](http://docs.aws.amazon.com/fr_fr/mwaa/latest/userguide/images/mwaa-console-private-network.png)


## Cas d’utilisation
<a name="private-network-lb-usecases"></a>

Vous pouvez utiliser ce didacticiel après avoir créé un environnement Amazon MWAA. Vous devez utiliser les mêmes Amazon VPC, les mêmes groupes de sécurité VPC et les mêmes sous-réseaux publics que votre environnement.

## Avant de commencer
<a name="private-network-lb-prereqs"></a>

1. Vérifiez les autorisations des utilisateurs. Assurez-vous que votre compte dans Gestion des identités et des accès AWS (IAM) dispose des autorisations suffisantes pour créer et gérer les ressources VPC.

1. Utilisez votre VPC Amazon MWAA. Ce didacticiel part du principe que vous associez l'hôte bastion à un VPC existant. Le VPC Amazon doit se trouver dans la même région que votre environnement Amazon MWAA et disposer de deux sous-réseaux privés, comme défini dans. [Création du réseau VPC](vpc-create.md)

1. Créez une clé SSH. Vous devez créer une clé Amazon EC2 SSH (**.pem**) dans la même région que votre environnement Amazon MWAA pour vous connecter aux serveurs virtuels. Si vous n'avez pas de clé SSH, reportez-vous à la section [Créer ou importer une paire de clés](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#prepare-key-pair) dans le *guide de l' EC2 utilisateur Amazon*.

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

Dans le cadre de ce didacticiel, vous effectuerez les tâches suivantes :

1. Créez une instance d'hôte Linux Bastion à l'aide d'un [CloudFormation modèle pour un VPC existant.](https://fwd.aws/vWMxm)

1. Autorisez le trafic entrant vers le groupe de sécurité de l'instance Bastion à l'aide d'une règle d'entrée sur le port. `22`

1. Autorisez le trafic entrant depuis le groupe de sécurité d'un environnement Amazon MWAA vers le groupe de sécurité de l'instance Bastion.

1. Créez un tunnel SSH vers l'instance de bastion.

1. Installez et configurez le FoxyProxy module complémentaire pour le navigateur Firefox afin d'accéder à l'interface utilisateur d'Apache Airflow.

## Première étape : créer l'instance de bastion
<a name="private-network-lb-create-bastion"></a>

La section suivante décrit les étapes de création de l'instance Linux Bastion à l'aide d'un [CloudFormation modèle pour un VPC existant](https://fwd.aws/vWMxm) sur la CloudFormation console.

**Pour créer l'hôte Linux Bastion**

1. Ouvrez la page de [démarrage rapide du déploiement](https://fwd.aws/Jwzqv) sur la CloudFormation console.

1. Utilisez le sélecteur de région dans la barre de navigation pour choisir celui qui correspond à votre Région AWS environnement Amazon MWAA.

1. Choisissez **Suivant**.

1. Entrez un nom dans le champ de texte **Stack name**, tel que`mwaa-linux-bastion`.

1. Dans le volet **Paramètres**, **Configuration réseau**, choisissez les options suivantes :

   1. Choisissez l'ID **VPC** de votre environnement Amazon MWAA.

   1. Choisissez l'ID de **sous-réseau public 1** de votre environnement Amazon MWAA.

   1. Choisissez l'ID de **sous-réseau public 2** de votre environnement Amazon MWAA.

   1. Entrez la plage d'adresses la plus étroite possible (par exemple, une plage d'adresses CIDR interne) dans **Allowed Bastion external** access CIDR.
**Note**  
Le moyen le plus simple d'identifier une plage est d'utiliser la même plage CIDR que celle de vos sous-réseaux publics. Par exemple, les sous-réseaux publics du CloudFormation modèle de la [Création du réseau VPC](vpc-create.md) page sont `10.192.10.0/24` et`10.192.11.0/24`.

1. Dans le volet ** EC2 de configuration d'Amazon**, choisissez ce qui suit :

   1. Choisissez votre clé SSH dans la liste déroulante dans Nom de la **paire de clés**.

   1. Entrez un nom dans le champ Nom **d'hôte de Bastion**.

   1. Choisissez **true** pour le **transfert TCP**.
**Avertissement**  
Le transfert TCP doit être défini sur **true** à cette étape. Dans le cas contraire, vous ne pourrez pas créer de tunnel SSH à l'étape suivante.

1. Appuyez sur **Suivant**, **Suivant**.

1. Sélectionnez l'accusé de réception, puis choisissez **Create stack**.

Pour en savoir plus sur l'architecture de votre hôte Linux Bastion, reportez-vous à [Linux Bastion Hosts on the AWS Cloud :](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/architecture.html) Architecture.

## Deuxième étape : créer le tunnel SSH
<a name="private-network-lb-create-test"></a>

Les étapes suivantes décrivent comment créer le tunnel SSH vers votre bastion Linux. Un tunnel SSH reçoit la demande de votre adresse IP locale vers le bastion Linux, c'est pourquoi le transfert TCP pour le bastion Linux a été défini dans les étapes précédentes. `true`

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

**Pour créer un tunnel à l'aide de la ligne de commande**

1. Ouvrez la page [Instances](https://console.aws.amazon.com/ec2/v2/home#/Instances:) sur la EC2 console Amazon.

1. Choisissez un type d’instance.

1. Copiez l'adresse dans le ** IPv4 DNS public**. Par exemple, `ec2-4-82-142-1.compute-1.amazonaws.com`.

1. Dans votre invite de commande, accédez au répertoire dans lequel votre clé SSH est stockée.

1. Exécutez la commande suivante pour vous connecter à l'instance de bastion à l'aide de ssh. Remplacez la valeur de l'échantillon par le nom de votre clé SSH. `mykeypair.pem`

   ```
   ssh -i mykeypair.pem -N -D 8157 ec2-user@YOUR_PUBLIC_IPV4_DNS
   ```

------
#### [ Windows (PuTTY) ]

**Pour créer un tunnel à l'aide de PuTTY**

1. Ouvrez la page [Instances](https://console.aws.amazon.com/ec2/v2/home#/Instances:) sur la EC2 console Amazon.

1. Choisissez un type d’instance.

1. Copiez l'adresse dans le ** IPv4 DNS public**. Par exemple, `ec2-4-82-142-1.compute-1.amazonaws.com`.

1. **Ouvrez [PuTTY](https://www.putty.org/), sélectionnez Session.**

1. **Entrez le nom d'hôte dans **Nom d'hôte** sous la forme ec2-user@ *YOUR\$1PUBLIC\$1IPV4\$1DNS* et le port sous la forme.** `22`

1. Développez l'onglet **SSH**, sélectionnez **Auth**. Dans le **fichier de clé privée pour l'authentification**, choisissez votre fichier « ppk » local.

1. Sous SSH, choisissez l'onglet **Tunnels**, puis sélectionnez les options *Dynamique* et *Auto*.

1. Dans **Port source**, ajoutez le `8157` port (ou tout autre port non utilisé), puis laissez le champ Port de **destination** vide. Choisissez **Ajouter**.

1. Choisissez l'onglet **Session** et entrez un nom de session. Par exemple `SSH Tunnel`.

1. Choisissez **Enregistrer**, **Ouvrir**.
**Note**  
Il se peut que vous deviez saisir une phrase secrète pour votre clé publique.

------

**Note**  
Si vous recevez un `Permission denied (publickey)` message d'erreur, nous vous recommandons d'utiliser l'[AWSSupport-TroubleshootSSH](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-awssupport-troubleshootssh.html)outil et de choisir **Run this Automation (console)** pour résoudre les problèmes liés à votre configuration SSH.

## Troisième étape : configurer le groupe de sécurité Bastion en tant que règle entrante
<a name="private-network-lb-create-sgsource"></a>

L'accès aux serveurs et l'accès régulier à Internet depuis les serveurs sont autorisés grâce à un groupe de sécurité de maintenance spécial attaché à ces serveurs. Les étapes suivantes décrivent comment configurer le groupe de sécurité Bastion en tant que source de trafic entrant vers le groupe de sécurité VPC d'un environnement.

1. Ouvrez la page [Environnements](https://console.aws.amazon.com/mwaa/home#/environments) sur la console Amazon MWAA.

1. Choisissez un environnement.

1. Dans le volet **Mise en réseau**, choisissez le groupe de **sécurité VPC**.

1. Choisissez **Modifier les règles entrantes**.

1. Choisissez **Ajouter une règle**.

1. Choisissez l'ID de votre groupe de sécurité VPC dans la liste déroulante **Source**.

1. Laissez les options restantes vides ou définissez leurs valeurs par défaut.

1. Sélectionnez **Enregistrer les règles**.

## Étape 4 : Copier l'URL d'Apache Airflow
<a name="private-network-lb-view-env"></a>

Les étapes suivantes décrivent comment ouvrir la console Amazon MWAA et copier l'URL dans l'interface utilisateur d'Apache Airflow.

1. Ouvrez la page [Environnements](https://console.aws.amazon.com/mwaa/home#/environments) sur la console Amazon MWAA.

1. Choisissez un environnement.

1. Copiez l'URL dans l'**interface utilisateur d'Airflow** pour les étapes suivantes.

## Étape 5 : configurer les paramètres du proxy
<a name="private-network-lb-browser-extension"></a>

Si vous utilisez un tunnel SSH avec réacheminement de port dynamique, vous devez utiliser un module complémentaire de gestion de proxy SOCKS pour contrôler les paramètres de proxy dans votre navigateur. Par exemple, vous pouvez utiliser la `--proxy-server` fonctionnalité de Chromium pour démarrer une session de navigateur ou utiliser l' FoxyProxy extension dans le FireFox navigateur Mozilla.

### Première option : configurer un tunnel SSH à l'aide de la redirection de port locale
<a name="private-network-lb-browser-extension-portforwarding"></a>

Si vous ne souhaitez pas utiliser de proxy SOCKS, vous pouvez configurer un tunnel SSH en utilisant la redirection de port locale. L'exemple de commande suivant accède à l'interface EC2 *ResourceManager*Web Amazon en transférant le trafic sur le port local 8157.

1. Ouvrez une nouvelle fenêtre d’invite de commandes.

1. Entrez la commande suivante pour ouvrir un tunnel 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`signifie l'utilisation de la redirection de port local que vous pouvez utiliser pour spécifier un port local utilisé pour transférer les données vers le port distant identifié sur le serveur Web local du nœud.

1. Entrez `http://localhost:8157/` dans votre navigateur.
**Note**  
Vous devrez peut-être utiliser`https://localhost:8157/`.

### Deuxième option : Proxies utilisant la ligne de commande
<a name="private-network-lb-browser-extension-foxyp"></a>

Vous pouvez utiliser la plupart des navigateurs Web pour configurer des proxys à l'aide d'une ligne de commande ou d'un paramètre de configuration. Par exemple, avec Chromium, vous pouvez démarrer le navigateur avec la commande suivante :

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

Cela démarre une session de navigateur qui utilise le tunnel SSH que vous avez créé lors des étapes précédentes pour transmettre ses demandes par proxy. Vous pouvez ouvrir l'URL de votre environnement Amazon MWAA privé (avec *https ://*) comme suit :

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

### Troisième option : utilisation de proxys FoxyProxy pour Mozilla Firefox
<a name="private-network-lb-browser-extension-foxyp"></a>

L'exemple suivant illustre une configuration FoxyProxy Standard (version 7.5.1) pour Mozilla Firefox. FoxyProxy fournit un ensemble d'outils de gestion de proxy. Il vous permet d'utiliser un serveur proxy pour faire correspondre URLs les modèles correspondant aux domaines utilisés par l'interface utilisateur d'Apache Airflow.

1. Dans Firefox, ouvrez la page de l'extension [FoxyProxy Standard](https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/).

1. Choisissez **Ajouter à Firefox**.

1. Choisissez **Ajouter**.

1. Choisissez l' FoxyProxy icône dans la barre d'outils de votre navigateur, puis sélectionnez **Options**.

1. Copiez le code suivant et enregistrez-le localement sous`mwaa-proxy.json`. Remplacez la valeur de l'échantillon *YOUR\$1HOST\$1NAME* par votre URL **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. Dans le volet **Paramètres d'importation à partir de la FoxyProxy version 6.0**, choisissez **Paramètres d'importation** et sélectionnez le `mwaa-proxy.json` fichier.

1. Choisissez **OK**.

## Sixième étape : ouvrir l'interface utilisateur d'Apache Airflow
<a name="private-network-lb-open"></a>

Les étapes suivantes décrivent comment ouvrir l'interface utilisateur d'Apache Airflow.

1. Ouvrez la page [Environnements](https://console.aws.amazon.com/mwaa/home#/environments) sur la console Amazon MWAA.

1. Choisissez **Open Airflow UI**.

## Quelle est la prochaine étape ?
<a name="bastion-next-up"></a>
+ Découvrez comment exécuter les commandes de la CLI Airflow sur un tunnel SSH vers un hôte bastion dans. [Référence des commandes de la CLI Apache Airflow](airflow-cli-command-reference.md)
+ Découvrez comment télécharger le code DAG dans votre compartiment Amazon S3 dans[Ajouter ou mettre à jour DAGs](configuring-dag-folder.md).

# Tutoriel : Restreindre l'accès d'un utilisateur Amazon MWAA à un sous-ensemble de DAGs
<a name="limit-access-to-dags"></a>

[Amazon MWAA gère l'accès à votre environnement en mappant vos principaux IAM à un ou plusieurs rôles par défaut d'Apache Airflow.](https://airflow.apache.org/docs/apache-airflow/stable/security/access-control.html#default-roles) Utilisez le didacticiel suivant pour empêcher les utilisateurs individuels d'Amazon MWAA d'accéder et d'interagir uniquement avec un DAG spécifique ou un ensemble de DAGs.

**Note**  
Les étapes de ce didacticiel peuvent être effectuées à l'aide d'un accès fédéré, à condition que les rôles IAM puissent être assumés.

**Topics**
+ [Conditions préalables](#limit-access-to-dags-prerequisites)
+ [Étape 1 : fournissez un accès au serveur Web Amazon MWAA à votre principal IAM avec le rôle Apache Airflow `Public` par défaut.](#limit-access-to-dags-apply-public-access)
+ [Deuxième étape : créer un nouveau rôle personnalisé pour Apache Airflow](#limit-access-to-dags-create-new-airflow-role)
+ [Troisième étape : attribuer le rôle que vous avez créé à votre utilisateur Amazon MWAA](#limit-access-to-dags-assign-role)
+ [Étapes suivantes](#limit-access-to-dags-next-up)
+ [Ressources connexes](#limit-access-to-dags-related-resources)

## Conditions préalables
<a name="limit-access-to-dags-prerequisites"></a>

Pour suivre les étapes de ce didacticiel, vous aurez besoin des éléments suivants :
+ Un [environnement Amazon MWAA avec plusieurs DAGs](get-started.md)
+ Un principal IAM, `Admin` avec des [AdministratorAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AdministratorAccess$jsonEditor)autorisations, et un utilisateur IAM`MWAAUser`, en tant que principal pour lequel vous pouvez limiter l'accès au DAG. Pour plus d'informations sur les rôles d'administrateur, reportez-vous à la section [Fonction du poste d'administrateur](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html#jf_administrator) dans le guide de l'*utilisateur IAM*
**Note**  
N'associez pas de politiques d'autorisation directement à vos utilisateurs IAM. Nous vous recommandons de configurer des rôles IAM que les utilisateurs peuvent assumer pour obtenir un accès temporaire à vos ressources Amazon MWAA.
+ [AWS Command Line Interface version 2](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install) installée.

## Étape 1 : fournissez un accès au serveur Web Amazon MWAA à votre principal IAM avec le rôle Apache Airflow `Public` par défaut.
<a name="limit-access-to-dags-apply-public-access"></a>

**Pour accorder une autorisation à l'aide du AWS Management Console**

1. Connectez-vous à votre compte Compte AWS avec un `Admin` rôle et ouvrez la [console IAM.](https://console.aws.amazon.com/iam/)

1. Dans le volet de navigation de gauche, choisissez **Utilisateurs**, puis choisissez votre utilisateur Amazon MWAA IAM dans le tableau des utilisateurs.

1. Sur la page des détails de l'utilisateur, sous **Résumé**, choisissez l'onglet **Autorisations**, puis choisissez **Politiques d'autorisations** pour développer la carte et choisissez **Ajouter des autorisations**.

1. Dans la section **Accorder des autorisations**, choisissez **Joindre directement les politiques existantes**, puis choisissez **Créer une politique** pour créer et joindre votre propre politique d'autorisations personnalisée.

1. Sur la page **Créer une politique**, choisissez **JSON**, puis copiez et collez la politique d'autorisation JSON suivante dans l'éditeur de stratégie. Cette politique accorde l'accès au serveur Web à l'utilisateur doté du rôle `Public` Apache Airflow par défaut.

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

****  

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

------

## Deuxième étape : créer un nouveau rôle personnalisé pour Apache Airflow
<a name="limit-access-to-dags-create-new-airflow-role"></a>

**Pour créer un nouveau rôle à l'aide de l'interface utilisateur d'Apache Airflow**

1. À l'aide de votre rôle d'administrateur IAM, ouvrez la [console Amazon MWAA](https://console.aws.amazon.com/mwaa/home) et lancez l'interface utilisateur Apache Airflow de votre environnement.

1. Dans le volet de navigation en haut, passez le curseur sur **Security** pour ouvrir la liste déroulante, puis choisissez **List Roles pour accéder aux rôles** Apache Airflow par défaut.

1. Dans la liste des rôles, sélectionnez **Utilisateur**, puis au début de la page, sélectionnez **Actions** pour ouvrir le menu déroulant. Choisissez **Copier le rôle**, puis confirmez **OK**
**Note**  
Copiez les rôles **Ops** ou **Viewer** pour accorder plus ou moins d'accès, respectivement.

1. Repérez le nouveau rôle que vous avez créé dans le tableau et choisissez **Modifier l'enregistrement**.

1. Sur la page **Modifier le rôle**, procédez comme suit :
   + Pour **Nom**, entrez un nouveau nom pour le rôle dans le champ de texte. Par exemple, **Restricted**.
   + Pour la liste des **autorisations**, supprimez `can read on DAGs` puis `can edit on DAGs` ajoutez des autorisations de lecture et d'écriture pour l'ensemble auquel DAGs vous souhaitez donner accès. Par exemple, pour un DAG`example_dag.py`, ajoutez **`can read on DAG:example_dag`** et**`can edit on DAG:example_dag`**.

   Choisissez **Enregistrer**. Vous avez désormais un nouveau rôle qui limite l'accès à un sous-ensemble des éléments DAGs disponibles dans votre environnement Amazon MWAA. Vous pouvez attribuer ce rôle à n'importe quel utilisateur d'Apache Airflow existant.

## Troisième étape : attribuer le rôle que vous avez créé à votre utilisateur Amazon MWAA
<a name="limit-access-to-dags-assign-role"></a>

**Pour attribuer le nouveau rôle**

1. À l'aide des informations d'accès pour`MWAAUser`, exécutez la commande CLI suivante pour récupérer l'URL du serveur Web de votre environnement.

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

   En cas de succès, vous allez vous référer au résultat suivant :

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

1. Une `MWAAUser` fois connecté au AWS Management Console, ouvrez une nouvelle fenêtre de navigateur et accédez aux éléments suivants URl. Remplacez `Webserver-URL` par vos informations.

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

   En cas de succès, vous obtiendrez une page `Forbidden` d'erreur car vous `MWAAUser` n'avez pas encore obtenu l'autorisation d'accéder à l'interface utilisateur d'Apache Airflow.

1. Une fois `Admin` connecté au AWS Management Console, ouvrez à nouveau la console Amazon MWAA et lancez l'interface utilisateur Apache Airflow de votre environnement.

1. Dans le tableau de bord de l'interface utilisateur, élargissez le menu déroulant **Sécurité** et, cette fois, choisissez **Lister les utilisateurs**.

1. Dans le tableau des utilisateurs, recherchez le nouvel utilisateur d'Apache Airflow et choisissez **Modifier** l'enregistrement. Le prénom de l'utilisateur correspondra à votre nom d'utilisateur IAM selon le schéma suivant :`user/mwaa-user`.

1. Sur la page **Modifier un utilisateur**, dans la section **Rôle**, ajoutez le nouveau rôle personnalisé que vous avez créé, puis choisissez **Enregistrer**.
**Note**  
Le champ **Nom** de famille est obligatoire, mais un espace répond à cette exigence.

   Le `Public` principal IAM accorde l'`MWAAUser`autorisation d'accéder à l'interface utilisateur d'Apache Airflow, tandis que le nouveau rôle fournit les autorisations supplémentaires nécessaires pour obtenir les leurs. DAGs

**Important**  
Tous les 5 rôles par défaut (tels que`Admin`) non autorisés par IAM ajoutés à l'aide de l'interface utilisateur d'Apache Airflow seront supprimés lors de la prochaine connexion de l'utilisateur.

## Étapes suivantes
<a name="limit-access-to-dags-next-up"></a>
+ Pour en savoir plus sur la gestion de l'accès à votre environnement Amazon MWAA et pour obtenir des exemples de politiques IAM JSON que vous pouvez utiliser pour les utilisateurs de votre environnement, reportez-vous à [Accès à un environnement Amazon MWAA](access-policies.md)

## Ressources connexes
<a name="limit-access-to-dags-related-resources"></a>
+ [Contrôle d'accès](https://airflow.apache.org/docs/apache-airflow/stable/security/access-control.html) (documentation Apache Airflow) — Pour en savoir plus sur les rôles par défaut d'Apache Airflow, consultez le site Web de documentation d'Apache Airflow.

# Tutoriel : Automatisez la gestion des points de terminaison de votre propre environnement sur Amazon MWAA
<a name="tutorials-customer-managed-endpoints"></a>

Si vous en gérez plusieurs Comptes AWS qui partagent des ressources, Amazon MWAA vous permet de créer et de gérer vos propres points de terminaison Amazon VPC. [AWS Organizations](https://docs.aws.amazon.com/) Cela signifie que vous pouvez utiliser des politiques de sécurité plus strictes qui n'autorisent l'accès qu'aux ressources requises par votre environnement.

Lorsque vous créez un environnement dans un Amazon VPC partagé, le compte propriétaire du VPC Amazon principal (*propriétaire*) partage les deux sous-réseaux privés requis par Amazon MWAA avec d'autres comptes *(*participants) appartenant à la même organisation. Les comptes participants qui partagent ces sous-réseaux peuvent ensuite afficher, créer, modifier et supprimer des environnements dans le VPC partagé.

Lorsque vous créez un environnement dans un Amazon VPC partagé ou soumis à des règles, Amazon MWAA crée d'abord les ressources VPC du service, puis entre dans [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)un état pendant 72 heures maximum.

Lorsque le statut de l'environnement passe de `CREATING` à`PENDING`, Amazon MWAA envoie une EventBridge notification Amazon concernant le changement d'état. Cela permet au compte propriétaire de créer les points de terminaison requis pour le compte des participants en fonction des informations de service des points de terminaison provenant de la console ou de l'API Amazon MWAA, ou par programmation. Dans ce qui suit, nous créons de nouveaux points de terminaison Amazon VPC à l'aide d'une fonction Lambda et d'une EventBridge règle qui écoute les notifications de changement d'état d'Amazon MWAA.

Ici, nous créons les nouveaux points de terminaison dans le même Amazon VPC que l'environnement. Pour configurer un Amazon VPC partagé, créez la EventBridge règle et la fonction Lambda dans le compte du propriétaire, ainsi que l'environnement Amazon MWAA dans le compte du participant.

**Topics**
+ [Prérequis](#tutorials-customer-managed-endpoints-prerequisites)
+ [Création de l'Amazon VPC](#tutorials-customer-managed-endpoints-create-vpc)
+ [Créer la fonction Lambda](#tutorials-customer-managed-endpoints-create-lambda-function)
+ [Créez la EventBridge règle](#tutorials-customer-managed-endpoints-create-eb-rule)
+ [Création de l'environnement Amazon MWAA](#tutorials-customer-managed-endpoints-create-mwaa)

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

Pour effectuer les étapes de ce didacticiel, vous aurez besoin des éléments suivants :
+ ...

## Création de l'Amazon VPC
<a name="tutorials-customer-managed-endpoints-create-vpc"></a>

Utilisez le CloudFormation modèle et la AWS CLI commande suivants pour créer un nouvel Amazon VPC. Le modèle configure les ressources Amazon VPC et modifie la politique du point de terminaison afin de restreindre l'accès à une file d'attente spécifique.

1. Téléchargez le CloudFormation [modèle](samples/cfn-vpc-private-network.zip), puis décompressez le `.yml` fichier.

1. Dans une nouvelle fenêtre d'invite de commande, accédez au dossier dans lequel vous avez enregistré le modèle, puis [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html)utilisez-le pour créer la pile. L'`--template-body`indicateur indique le chemin d'accès au modèle.

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

Dans la section suivante, vous allez créer la fonction Lambda.

## Créer la fonction Lambda
<a name="tutorials-customer-managed-endpoints-create-lambda-function"></a>

Utilisez le code Python et la politique IAM JSON suivants pour créer une nouvelle fonction Lambda et un nouveau rôle d'exécution. Cette fonction crée des points de terminaison Amazon VPC pour un serveur Web Apache Airflow privé et une file d'attente Amazon SQS. Amazon MWAA utilise Amazon SQS pour mettre en file d'attente les tâches avec Celery entre plusieurs travailleurs lors de la mise à l'échelle de votre environnement.

1. Téléchargez le [code de la fonction](./samples/mwaa-lambda-shared-vpc.zip) Python.

1. Téléchargez la [politique d'autorisation](./samples/lambda-mwaa-shared-vpce-policy.zip) IAM, puis décompressez le fichier.

1. Ouvrez une invite de commande, puis accédez au dossier dans lequel vous avez enregistré la politique d'autorisation JSON. Utilisez la [https://docs.aws.amazon.com/](https://docs.aws.amazon.com/)commande IAM pour créer le nouveau rôle.

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

   Notez l'ARN du rôle indiqué dans la AWS CLI réponse. À l'étape suivante, nous spécifierons ce nouveau rôle comme rôle d'exécution de la fonction à l'aide de son ARN.

1. Accédez au dossier dans lequel vous avez enregistré le code de fonction, puis utilisez la [https://docs.aws.amazon.com/](https://docs.aws.amazon.com/)commande pour créer une nouvelle fonction.

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

   Notez la fonction ARN figurant dans la AWS CLI réponse. À l'étape suivante, nous spécifierons l'ARN pour configurer la fonction en tant que cible pour une nouvelle EventBridge règle.

Dans la section suivante, vous allez créer la EventBridge règle qui invoque cette fonction lorsque l'environnement entre dans un `PENDING` état.

## Créez la EventBridge règle
<a name="tutorials-customer-managed-endpoints-create-eb-rule"></a>

Procédez comme suit pour créer une nouvelle règle qui écoute les notifications Amazon MWAA et cible votre nouvelle fonction Lambda.

1. Utilisez la EventBridge `put-rule` commande pour créer une nouvelle EventBridge règle.

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

   Le modèle d'événement écoute les notifications qu'Amazon MWAA envoie chaque fois que l'état de l'environnement change.

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

1. Utilisez la `put-targets` commande pour ajouter la fonction Lambda comme cible pour la nouvelle règle.

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

Vous êtes prêt à créer un nouvel environnement Amazon MWAA avec des points de terminaison Amazon VPC gérés par le client.

## Création de l'environnement Amazon MWAA
<a name="tutorials-customer-managed-endpoints-create-mwaa"></a>

Utilisez la console Amazon MWAA pour créer un nouvel environnement avec des points de terminaison Amazon VPC gérés par le client.

1. Ouvrez la console [Amazon MWAA](https://console.aws.amazon.com/mwaa/home/) et choisissez **Create an environment.**

1. Pour **Nom**, entrez un nom unique.

1. Pour la **version Airflow**, choisissez la dernière version.

1. Choisissez un **compartiment et un **DAGs dossier** Amazon S3**, par exemple `dags/` à utiliser avec l'environnement, puis choisissez **Next**.

1. Sur la page **Configurer les paramètres avancés**, procédez comme suit :

   1. Pour **Virtual Private Cloud**, choisissez le VPC Amazon que vous avez créé à l'étape [précédente](#tutorials-customer-managed-endpoints-create-vpc).

   1. Pour **accéder au serveur Web**, choisissez **Réseau public (accessible à Internet).**

   1. Pour les **groupes de sécurité**, choisissez le groupe de sécurité que vous avez créé avec CloudFormation. Étant donné que les groupes de sécurité pour les AWS PrivateLink points de terminaison de l'étape précédente sont autoréférencés, vous devez choisir le même groupe de sécurité pour votre environnement.

   1. Pour la **gestion des terminaux**, choisissez les **points de terminaison gérés par le client**.

1. Conservez les paramètres par défaut restants, puis choisissez **Next**.

1. Passez en revue vos sélections, puis choisissez **Créer un environnement**.

**Astuce**  
Pour plus d'informations sur la configuration d'un nouvel environnement, consultez [Getting started with Amazon MWAA](get-started.md).

Lorsque l'environnement l'est`PENDING`, Amazon MWAA envoie une notification correspondant au modèle d'événement que vous avez défini pour votre règle. La règle invoque votre fonction Lambda. La fonction analyse l'événement de notification et obtient les informations de point de terminaison requises pour le serveur Web et la file d'attente Amazon SQS. Il crée ensuite les points de terminaison dans votre Amazon VPC.

Lorsque les points de terminaison sont disponibles, Amazon MWAA reprend la création de votre environnement. Lorsque vous êtes prêt, l'état de l'environnement devient `AVAILABLE` et vous pouvez accéder au serveur Web Apache Airflow à l'aide de la console Amazon MWAA.