Utilisation d'Amazon Data Firehose avec AWS PrivateLink - Amazon Data Firehose

La diffusion de flux Amazon Data Firehose vers les tables Apache Iceberg dans Amazon S3 est en version préliminaire et peut faire l'objet de modifications.

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

Vous pouvez utiliser un point de VPC terminaison d'interface (AWS PrivateLink) pour empêcher le trafic entre votre Amazon VPC et Amazon Data Firehose de quitter le réseau Amazon. VPCLes points de terminaison de l'interface ne nécessitent pas de passerelle Internet, NAT d'appareil, de VPN connexion ou AWS Direct Connect connexion. Les VPC points de terminaison de l'interface sont alimentés par AWS PrivateLink, une AWS technologie qui permet une communication privée entre AWS services utilisant une interface elastic network avec private IPs sur votre AmazonVPC. Pour en savoir plus, consultez Amazon Virtual Private Cloud.

Utilisation des VPC points de terminaison de l'interface (AWS PrivateLink) pour Firehose

Pour commencer, créez un point de VPC terminaison d'interface afin que le trafic Amazon Data Firehose provenant de vos VPC ressources Amazon commence à passer par le point de terminaison d'interfaceVPC. 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 VPC point de terminaison à Amazon Data Firehose, consultez la section Contrôle de l'accès aux services avec VPC des points de terminaison.

L'exemple suivant montre comment configurer un AWS Lambda fonctionne dans un VPC et créez un VPC point de terminaison 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 VPC
  1. Connectez-vous au AWS Management Console et ouvrez la VPC console Amazon à l'adresse https://console.aws.amazon.com/vpc/.

  2. Dans le VPC tableau de bord, choisissez Endpoints.

  3. Choisissez Créer un point de terminaison.

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

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

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

  7. 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": [ "*" ] } ] }
  8. Choisissez Créer un point de terminaison.

Création d'un IAM rôle à utiliser avec la fonction Lambda
  1. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

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

  3. Sous Sélectionner le type d'entité de confiance, laissez la sélection par défaut AWS service.

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

  5. Sélectionnez Next: Permissions (Suivant : autorisations).

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

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

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

Créez une fonction Lambda dans VPC
  1. Ouvrez le fichier AWS Lambda console à https://console.aws.amazon.com/lambda/.

  2. Sélectionnez Create function (Créer une fonction).

  3. Choisissez Créer à partir de zéro.

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

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

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

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

  8. Sélectionnez Create function (Créer une fonction).

  9. 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.")
  10. Sous Basic settings (Paramètres de base), définissez le délai d'expiration sur 1 minute.

  11. Sous Réseau, choisissez l'VPCendroit où 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 lors de sa création.

  12. Dans le haut de la page, choisissez Enregistrer.

  13. Sélectionnez Tester).

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

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

Pris en charge Régions AWS

Les VPC points de terminaison 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)

  • Asia Pacific (Tokyo)

  • Asie-Pacifique (Hong Kong)

  • Canada (Centre)

  • Canada Ouest (Calgary)

  • Chine (Beijing)

  • China (Ningxia)

  • Europe (Francfort)

  • Europe (Irlande)

  • Europe (Londres)

  • Europe (Paris)

  • Amérique du Sud (São Paulo)

  • AWS GovCloud (USA Est)

  • AWS GovCloud (US-Ouest)

  • Europe (Espagne)

  • Moyen-Orient (UAE)

  • Asie-Pacifique (Jakarta)

  • Asie-Pacifique (Osaka)

  • Israël (Tel Aviv)

  • Asie-Pacifique (Malaisie)