

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.

# Utilisation d'Amazon Data Firehose avec AWS PrivateLink
<a name="vpc"></a>

Vous pouvez utiliser un point de terminaison VPC d'interface (AWS PrivateLink) pour accéder à Amazon Data Firehose depuis votre VPC sans avoir besoin d'une passerelle Internet ou d'une passerelle NAT. Les points de terminaison VPC d'interface ne nécessitent pas de passerelle Internet, de périphérique NAT, de connexion VPN ou de connexion. Direct Connect Les points de terminaison VPC d'interface sont alimentés par AWS PrivateLink une AWS technologie qui permet une communication privée entre les AWS services à l'aide d'une interface Elastic Network avec private dans IPs votre Amazon VPC. Pour en savoir plus, consultez [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html). 

## Utilisation des points de terminaison VPC d'interface ()AWS PrivateLink pour Firehose
<a name="using-interface-vpc-endpoints"></a>

Pour commencer, créez un point de terminaison VPC d'interface afin que le trafic Amazon Data Firehose provenant de vos ressources Amazon VPC commence à circuler via le point de terminaison VPC d'interface. Lorsque vous créez un point de terminaison, vous pouvez y associer une politique de point de terminaison qui contrôle l'accès à Amazon Data Firehose. Pour en savoir plus sur l'utilisation de politiques pour contrôler l'accès d'un point de terminaison VPC à Amazon Data Firehose, consultez la section [Contrôle de l'accès aux services avec](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html) des points de terminaison VPC.

L'exemple suivant montre comment configurer une AWS Lambda fonction dans un VPC et créer un point de terminaison VPC pour permettre à la fonction de communiquer en toute sécurité avec le service Amazon Data Firehose. Dans cet exemple, vous utilisez une politique qui permet à la fonction Lambda de répertorier les flux Firehose dans la région actuelle, mais pas de décrire un flux Firehose.

**Création d'un point de terminaison de VPC**

1. Connectez-vous à la console Amazon VPC AWS Management Console et ouvrez-la à l'adresse. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. Dans le tableau de bord VPC, choisissez **Endpoints (Points de terminaison)**.

1. Choisissez **Créer un point de terminaison**.

1. Dans la liste des noms de service, choisissez `com.amazonaws.your_region.kinesis-firehose`.

1. Choisissez le VPC et un ou plusieurs sous-réseaux dans lesquels créer le point de terminaison.

1. Choisissez un ou plusieurs groupes de sécurité à associer au point de terminaison.

1. Pour **Policy (Stratégie)**, choisissez **Custom (Personnalisée)** et collez la stratégie suivante :

   ```
   {
       "Statement": [
           {
               "Sid": "Allow-only-specific-PrivateAPIs",
               "Principal": "*",
               "Action": [
                   "firehose:ListDeliveryStreams"
               ],
               "Effect": "Allow",
               "Resource": [
                   "*"
               ]
           },
           {
               "Sid": "Allow-only-specific-PrivateAPIs",
               "Principal": "*",
               "Action": [
                   "firehose:DescribeDeliveryStream"
               ],
               "Effect": "Deny",
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

1. Choisissez **Créer un point de terminaison**.

**Création d'un rôle IAM à utiliser avec la fonction Lambda**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation, choisissez **Rôles**, puis **Créer un rôle**.

1. Sous **Sélectionner le type d'entité de confiance**, conservez la sélection par défaut **Service AWS **.

1. Sous **Choose the service that will use this role (Choisir le service qui utilisera ce rôle)**, choisissez **Lambda**.

1. Sélectionnez **Next: Permissions (Suivant : autorisations)**.

1. Dans la liste des stratégies, recherchez et ajoutez les deux stratégies nommées `AWS LambdaVPCAccessExecutionRole` et `AmazonDataFirehoseReadOnlyAccess`.
**Important**  
Il s’agit d’un exemple. Il se peut que vous ayez besoin de stratégies plus strictes pour votre environnement de production.

1. Choisissez **Suivant : Balises**. Vous n'avez pas besoin d'ajouter des balises dans le cadre de cet exercice. Choisissez **Suivant : Vérification**.

1. Entrez un nom pour le rôle, puis choisissez **Créer un rôle**.

**Création d'une fonction Lambda au sein du VPC**

1. Ouvrez la AWS Lambda console à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Choisissez **Créer une fonction**.

1. Choisissez **Créer à partir de zéro**.

1. Entrez le nom de la fonction, puis définissez **Runtime** sur `Python 3.9` ou une valeur supérieure.

1. Sous **Permissions (Autorisations)**, développez **Choose or create an execution role (Choisir ou créer un rôle d’exécution)**.

1. Dans la liste **Execution role (Rôle d'exécution)**, choisissez **Use an existing role (Utiliser un rôle existant)**.

1. Dans la liste **Existing role (Rôle existant)**, choisissez le rôle que vous avez créé ci-dessus.

1. Choisissez **Créer une fonction**.

1. Sous **Function code (Code de fonction)**, Collez le code suivant.

   ```
       import json
       import boto3
       import os
       from botocore.exceptions import ClientError
        
       def lambda_handler(event, context):
           REGION = os.environ['AWS_REGION']
           client = boto3.client(
               'firehose',
               REGION
               
           )
           print("Calling list_delivery_streams with ListDeliveryStreams allowed policy.")
           delivery_stream_request = client.list_delivery_streams()
           print("Successfully returned list_delivery_streams request %s." % (
               delivery_stream_request
           ))
           describe_access_denied = False
           try:
               print("Calling describe_delivery_stream with DescribeDeliveryStream denied policy.")
               delivery_stream_info = client.describe_delivery_stream(DeliveryStreamName='test-describe-denied')
           except ClientError as e:
               error_code = e.response['Error']['Code']
               print ("Caught %s." % (error_code))
               if error_code == 'AccessDeniedException':
                   describe_access_denied = True
           
           if not describe_access_denied:
               raise
           else:
               print("Access denied test succeeded.")
   ```

1. Sous **Basic settings (Paramètres de base)**, définissez le délai d'expiration sur 1 minute.

1. Sous **Network (Réseau)**, sélectionnez le VPC dans lequel vous avez créé le point de terminaison ci-dessus, puis choisissez les sous-réseaux et le groupe de sécurité que vous avez associés au point de terminaison lorsque vous l'avez créé.

1. Dans le haut de la page, choisissez **Enregistrer**.

1. Sélectionnez **Tester)**.

1. Entrez un nom d'événement, puis choisissez **Créer**.

1. Choisissez **Test** à nouveau. La fonction est alors exécutée. Une fois que le résultat d'exécution s'affiche, développez **Details (Détails)** et comparez la sortie de journal au code de la fonction. Les résultats positifs indiquent une liste des streams Firehose de la région, ainsi que le résultat suivant :

    `Calling describe_delivery_stream.` 

    `AccessDeniedException ` 

    `Access denied test succeeded.` 

## Soutenu Régions AWS
<a name="availability"></a>

Les points de terminaison VPC d'interface sont actuellement pris en charge dans les régions suivantes. 
+ USA Est (Ohio)
+ USA Est (Virginie du Nord)
+ USA Ouest (Californie du Nord)
+ USA Ouest (Oregon)
+ Asie-Pacifique (Mumbai)
+ Asie-Pacifique (Séoul)
+ Asie-Pacifique (Singapour)
+ Asie-Pacifique (Sydney)
+ Asie-Pacifique (Thaïlande)
+ Asie-Pacifique (Tokyo)
+ Asie-Pacifique (Hong Kong)
+ Canada (Centre)
+ Canada Ouest (Calgary)
+ Chine (Pékin)
+ China (Ningxia)
+ Europe (Francfort)
+ Europe (Irlande)
+ Europe (Londres)
+ Europe (Paris)
+ Mexique (Centre)
+ Amérique du Sud (São Paulo)
+ AWS GovCloud (USA Est)
+ AWS GovCloud (US-Ouest)
+ Europe (Espagne)
+ Moyen-Orient (EAU)
+ Asie-Pacifique (Jakarta)
+ Asie-Pacifique (Osaka)
+ Israël (Tel Aviv)
+ Asie-Pacifique (Malaisie)