View a markdown version of this page

Création d'une subvention de données sur AWS Data Exchange contenant des API - AWS Data Exchange Guide de l’utilisateur

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.

Création d'une subvention de données sur AWS Data Exchange contenant des API

Les rubriques suivantes décrivent le processus de création d'un ensemble de données d'API REST et de son ajout à une autorisation de données contenant des API AWS Data Exchange. Vous pouvez terminer le processus à l'aide de la AWS Data Exchange console ou du AWS Command Line Interface.

Après avoir configuré votre API REST Amazon API Gateway, vous pouvez créer un nouvel ensemble de données d'API dans AWS Data Exchange. Vous pouvez ensuite créer une révision et ajouter des actifs d'API.

La création d'une attribution de données avec un actif d'API permet aux demandes des destinataires adressées à un AWS Data Exchange endpoint d'être transmises par proxy à votre API API Gateway.

Le processus comporte les étapes suivantes :

Conditions préalables

Avant de pouvoir publier un produit contenant des API, vous devez remplir les conditions préalables suivantes :

  • Avant de pouvoir en utiliser un Service AWS, y compris AWS Data Exchange, vous devez vous inscrire AWS et créer un utilisateur administratif. Pour plus d'informations, consultez Démarrer dans le Guide de l'utilisateur AWS IAM Identity Center .

  • Votre API REST doit se trouver sur Amazon API Gateway avec une intégration qui utilise un modèle de demande et de réponse approprié pour accéder à vos données, tel qu'Amazon DynamoDB ou. AWS Lambda Pour plus d'informations, consultez Développement d'une API REST dans API Gateway et Utilisation des API REST dans le guide du développeur Amazon API Gateway.

    Note

    Seules les API API Gateway publiques sont prises en charge.

  • Votre API REST API Gateway doit être en mesure d'authentifier et d'autoriser les appels provenant du principal de AWS Data Exchange service. Chaque demande envoyée AWS Data Exchange à votre API utilise le protocole Signature Version 4 (Sigv4) signé avec des AWS Data Exchange informations d'identification. AWS Data Exchange fonctionne avec des domaines personnalisés et des mappages de clés de domaine.

    Note

    AWS Data Exchange ne prend pas en charge Amazon Cognito et No-Auth les AWS Lambda autorisateurs.

  • Si votre API REST API Gateway utilise un système d'identité personnalisé pour l'authentification et l'autorisation, configurez-le pour utiliser l'authentification IAM et importez un schéma OpenAPI décrivant votre API. AWS Data Exchange invoquera votre API REST API Gateway avec ses propres informations d'identification de service et inclura les informations relatives à l'abonné, telles que l'identifiant du compte.

  • L'API REST de votre API Gateway est chargée de l'intégration à votre backend. Pour ce faire, optez pour l'une des solutions suivantes :

    • Associez un jeton d'authentification de longue durée à chaque demande provenant de votre API REST API Gateway que le backend peut vérifier.

    • Utilisez API Gateway pour invoquer une fonction Lambda qui peut générer des informations d'identification et invoquer votre API.

Votre API est invoquée conformément à la spécification de demande d'intégration d'API.

Pour plus d’informations, consultez les rubriques suivantes :

Sécurité des ensembles de données de l'API

AWS Data Exchange chiffre le trafic de bout en bout à l'aide de Transport Layer Security (TLS) 1.2. Toutes les métadonnées sont cryptées au repos. AWS Data Exchange ne stockera pas les demandes des abonnés ni les réponses de votre backend.

Spécification des demandes d'intégration d'API

Une API AWS Data Exchange passe par tous les en-têtes (à l'exception des en-têtes répertoriés dansTransfert d'en-tête), le corps, la méthode http, le chemin et les chaînes de requête tels quels à partir de la demande du client et ajoute les en-têtes suivants.

// These headers help prevent Confused Deputy attacks. They enable the SourceAccount // and SourceArn variables in IAM policies. 'x-amz-source-account': ACCOUNT_ID, 'x-amz-source-arn': `arn:aws:dataexchange:${REGION}:${OWNER_ACCOUNT_ID}:data-sets/${DATA_SET_ID}/revisions/${REVISION_ID}/assets/${ASSET_ID}`, // These headers identify the API Asset in Data Exchange. 'x-amzn-dataexchange-asset-id': ASSET_ID, 'x-amzn-dataexchange-data-set-id': DATA_SET_ID, 'x-amzn-dataexchange-revision-id': REVISION_ID, // This header identifies the Data Exchange Product. 'x-amzn-dataexchange-product-id': PRODUCT_ID, // This header identifies the caller of Data Exchange. It will contain subscriber // information. 'x-amzn-dataexchange-requester-account-id': REQUESTER_ACCOUNT_ID, // Providers can attach custom metadata in the form of key/value pairs // to a particular subscription. We will send these key/value pairs as stringified // JSON. 'x-amz-dataexchange-subscription-metadata': STRINGIFIED_METADATA,

Transfert d'en-tête

AWS Data Exchange supprime tous les en-têtes liés à l'authentification ou à l'espace de noms attribué à Amazon avant de les transmettre au backend du propriétaire des données. Plus précisément, AWS Data Exchange supprime :

  • En-tête Authentication

  • Tous les en-têtes commençant par x-amz

L'hosten-tête sera remplacé à la suite du proxy.

Étape 1 : mettre à jour la politique relative aux ressources de l'API

Si vous disposez d'une API REST Amazon API Gateway qui répond aux conditions préalables, vous devez mettre à jour votre politique en matière de ressources d' AWS Data Exchange API pour permettre d'invoquer votre API lorsqu'un abonné fait une demande pour obtenir le schéma de votre API.

Pour mettre à jour votre politique en matière de ressources d'API
  1. Ajoutez la politique suivante à la politique de ressources de votre API :

    { "Effect": "Allow", "Principal": {"Service": "dataexchange.amazonaws.com"}, "Action": "execute-api:Invoke", "Resource": "*", "Condition": {"StringEquals": {"aws:SourceAccount": "<account-id>"}} }
  2. account-idRemplacez-le par le compte qui créera l'ensemble de données d'API.

    Le compte contenant la ressource API Gateway n'a pas besoin d'appartenir au même compte que celui qui crée l'ensemble de données.

Cette politique limite ces autorisations aux appels effectués par le principal du AWS Data Exchange service et exige que seul votre compte puisse autoriser l'intégration AWS Data Exchange à votre API.

Note

Si votre politique de ressources interdit explicitement AWS Data Exchange d'effectuer cette invocation, vous devez supprimer ou limiter ce refus.

Vous êtes maintenant prêt à créer un ensemble de données d'API.

Étape 2 : Création d'un ensemble de données d'API

Les ensembles de données AWS Data Exchange sont dynamiques et sont versionnés à l'aide de révisions, chaque révision contenant au moins un actif. Pour de plus amples informations, veuillez consulter Données dans AWS Data Exchange.

Vous utilisez la AWS Data Exchange console ou le AWS Command Line Interface pour créer un ensemble de données d'API :

Création d'un ensemble de données d'API (console)

Pour créer un ensemble de données d'API (console)
  1. Ouvrez votre navigateur Web et connectez-vous à la AWS Data Exchange console.

  2. Dans le volet de navigation de gauche, sous Mes données, sélectionnez Ensembles de données détenus.

  3. Dans Ensembles de données détenus, choisissez Créer un ensemble de données pour ouvrir l'assistant Étapes de création d'un ensemble de données.

  4. Dans Sélectionnez le type d'ensemble de données, choisissez l'API Amazon API Gateway.

  5. Dans Définir un ensemble de données, entrez un nom et une description pour votre ensemble de données. Pour de plus amples informations, veuillez consulter Meilleures pratiques en matière d'ensembles de données.

  6. (Facultatif) Sous Ajouter des balises — facultatif, ajoutez des balises.

  7. Choisissez Créer.

Vous êtes maintenant prêt à créer une révision.

Création d'un ensemble de données d'API (AWS CLI)

Pour créer un ensemble de données d'API (CLI)
  1. Utilisez la create-data-set commande pour créer un ensemble de données d'API :

    $ AWS dataexchange create-data-set \ -\\-asset-type API_GATEWAY_API \ -\\-description 'Data Set Description' \ -\\-name 'Data Set Name' { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:data-sets/$DATA_SET_ID", "AssetType": "API_GATEWAY_API", "CreatedAt": "2021-09-11T00:16:46.349000+00:00", "Description": "Data Set Description", "Id": "$DATA_SET_ID", "Name": "Data Set Name", "Origin": "OWNED", "UpdatedAt": "2021-09-11T00:16:46.349000+00:00" }
  2. Notez le nouveau type d'actif deAPI_GATEWAY_API.

Vous êtes maintenant prêt à créer une révision.

Étape 3 : Création d'une révision

Dans la procédure suivante, vous créez une révision après avoir créé un ensemble de données. Pour de plus amples informations, veuillez consulter Révisions.

Vous utilisez soit la AWS Data Exchange console, soit AWS Command Line Interface pour créer une révision :

Création d'une révision (console)

Pour créer une révision (console)
  1. Dans la section Présentation de l'ensemble de données de la page des détails de l'ensemble de données :

    1. (Facultatif) Choisissez Modifier le nom pour modifier les informations relatives à votre ensemble de données.

    2. (Facultatif) Choisissez Supprimer pour supprimer l'ensemble de données.

  2. Dans la section Révisions, choisissez Créer une révision.

  3. Sous Définir la révision, fournissez un commentaire facultatif pour votre révision qui décrit l'objectif de la révision.

  4. (Facultatif) Sous Ajouter des balises — facultatif, ajoutez des balises associées à la ressource.

  5. Choisissez Créer une révision.

  6. Vérifiez, modifiez ou supprimez les modifications apportées à l'étape précédente.

Vous êtes maintenant prêt à ajouter des actifs d'API à la révision.

Création d'une révision (AWS CLI)

Pour créer une révision (AWS CLI)
  1. Utilisez la create-revision commande pour créer une révision :

    $ AWS dataexchange create-revision \ -\\-data-set-id $DATA_SET_ID \ -\\-comment 'First Atlas Revision' { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:data-sets/$DATA_SET_ID/revisions/$REVISION_ID", "Comment": "First Atlas Revision", "CreatedAt": "2021-09-11T00:18:49.160000+00:00", "DataSetId": "$DATA_SET_ID", "Finalized": false, "Id": "$REVISION_ID", "UpdatedAt": "2021-09-11T00:18:49.160000+00:00" }
  2. Ajoutez les actifs de l'API à la révision.

    Note

    Vous devez connaître l'ID de l'API REST API Gateway que vous souhaitez importer ainsi que l'étape.

Étape 4 : ajouter des actifs d'API à une révision

Les actifs d'API contiennent les informations dont les abonnés ont besoin pour passer des appels vers votre API. Pour de plus amples informations, veuillez consulter Assets.

Dans la procédure suivante, vous importez des actifs de données, puis vous finalisez la révision.

Vous utilisez la AWS Data Exchange console ou le AWS CLI pour ajouter des actifs à une révision :

Ajouter des actifs d'API à une révision (console)

Pour ajouter des actifs à la révision (console)
  1. Dans la section Ressources d'API de la page de détails de l'ensemble de données, choisissez Ajouter une étape d'API.

  2. Dans Sélectionner un stage d'API, pour l'API Amazon API Gateway, entrez une API dans la zone de saisie ou choisissez l'une des options suivantes dans la liste déroulante :

    • API dans une autre Compte AWS : il s'agit d'une API multicompte à laquelle vous avez été autorisé à accéder.

    • En cela Compte AWS, il s'agit d'une API dans votre Compte AWS.

    1. Si vous avez choisi API dans un autre Compte AWS, entrez l'ID de l'API et le nom de l'étape de l'API dans les zones de saisie.

    2. Si vous avez choisi Dans cette option Compte AWS, choisissez le nom de l'étape de l'API dans la liste déroulante

    Note

    Vous pouvez créer une nouvelle étape d'API en choisissant Créer une nouvelle étape et en suivant les étapes décrites dans la section modale Créer une nouvelle API sur Amazon API Gateway. Une fois la nouvelle étape créée, répétez l'étape 2.

  3. Dans Configuration avancée — facultatif, vous pouvez choisir de connecter le plan d'utilisation Amazon API Gateway existant pour utiliser les limites de limitation et de quota définies dans le plan d'utilisation existant, puis saisir la clé API.

  4. Sous Document API pour les abonnés, fournissez des informations sur l'API que les destinataires verront une fois qu'ils auront accepté l'attribution des données.

    1. Dans le champ Nom de l'API, entrez un nom que les destinataires peuvent utiliser pour identifier l'actif de l'API.

      Note

      Si un champ In Compte AWS est sélectionné, le nom de l'API est automatiquement renseigné et vous pouvez le modifier si nécessaire.

      Si une API Compte AWS a été sélectionnée dans une autre API, le nom de l'API est renseigné avec un nom par défaut, que vous devez modifier pour que le destinataire puisse facilement comprendre de quoi il s'agit.

    2. Pour la spécification OpenAPI 3.0, soit :

      1. Entrez ou copiez et collez le fichier de spécification OpenAPI 3.0.

      2. Choisissez Importer depuis un fichier .JSON, puis sélectionnez le fichier .json à importer depuis votre ordinateur local.

        La spécification importée apparaît dans la boîte.

      3. Choisissez Importer depuis Amazon API Gateway, puis choisissez une spécification à importer.

        La spécification importée apparaît dans la boîte.

    3. Pour la documentation supplémentaire (facultatif), entrez toute information supplémentaire utile à l'abonné à propos de votre API. Markdown est pris en charge.

    Note

    Vous ne pouvez pas modifier la spécification OpenAPI et la documentation supplémentaire après avoir ajouté cet actif à une révision.

    Si vous souhaitez mettre à jour ces informations et que la révision n'est pas finalisée, vous pouvez remplacer la ressource.

    Si vous souhaitez mettre à jour ces informations et que la révision est finalisée, vous pouvez créer une nouvelle révision avec la ressource mise à jour.

  5. Choisissez Ajouter une étape d'API.

    Une tâche est lancée pour importer votre actif (dans ce cas, l'API) dans votre ensemble de données.

    Note

    Si vous ne possédez pas d'API sur Amazon API Gateway, vous serez invité à en créer une.

  6. Une fois la tâche terminée, le champ État de la section Tâches est mis à jour et devient Terminé.

  7. Si vous avez d'autres API à ajouter, répétez l'étape 2.

  8. Sous Aperçu des révisions, passez en revue votre révision et ses actifs.

  9. Choisissez Finaliser.

Vous avez finalisé avec succès la révision d'un ensemble de données.

Vous pouvez modifier ou supprimer une révision avant de l'ajouter à une attribution de données.

Vous êtes maintenant prêt à créer une nouvelle allocation de données contenant des API.

Ajouter des actifs d'API à une révision (AWS CLI)

Vous pouvez ajouter des actifs d'API en exécutant une IMPORT_ASSET_FROM_API_GATEWAY_API tâche.

Pour ajouter des actifs d'API à une révision (AWS CLI):
  1. Utilisez la create-job commande pour ajouter des actifs d'API à la révision :

    $ AWS dataexchange create-job \ -\\-type IMPORT_ASSET_FROM_API_GATEWAY_API \ -\\-details '{"ImportAssetFromApiGatewayApi":{"DataSetId":"$DATA_SET_ID","RevisionId":"$REVISION_ID","ApiId":"$API_ID","Stage":"$API_STAGE","ProtocolType":"REST"}}' { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:jobs/$JOB_ID", "CreatedAt": "2021-09-11T00:38:19.875000+00:00", "Details": { "ImportAssetFromApiGatewayApi": { "ApiId": "$API_ID", "DataSetId": "$DATA_SET_ID", "ProtocolType": "REST", "RevisionId": "$REVISION_ID", "Stage": "$API_STAGE" } }, "Id": "$JOB_ID", "State": "WAITING", "Type": "IMPORT_ASSET_FROM_API_GATEWAY_API", "UpdatedAt": "2021-09-11T00:38:19.875000+00:00" } $ AWS dataexchange start-job -\\-job-id $JOB_ID $ AWS dataexchange get-job -\\-job-id $JOB_ID { "Arn": "arn:aws:dataexchange:us-east-1:0123456789012:jobs/$JOB_ID", "CreatedAt": "2021-09-11T00:38:19.875000+00:00", "Details": { "ImportAssetFromApiGatewayApi": { "ApiId": "$API_ID", "DataSetId": "$DATA_SET_ID", "ProtocolType": "REST", "RevisionId": "$REVISION_ID", "Stage": "$API_STAGE" "ApiEndpoint": "string", "ApiKey": "string", "ApiName": "string", "ApiDescription": "string", "ApiSpecificationDownloadUrl": "string", "ApiSpecificationDownloadUrlExpiresAt": "string" } }, "Id": "$JOB_ID", "State": "COMPLETED", "Type": "IMPORT_ASSET_FROM_API_GATEWAY_API", "UpdatedAt": "2021-09-11T00:38:52.538000+00:00" }
  2. Utilisez la list-revision-assets commande pour confirmer que la nouvelle ressource a été créée correctement :

    $ AWS dataexchange list-revision-assets \ -\\-data-set-id $DATA_SET_ID \ -\\-revision-id $REVISION_ID { "Assets": [ { "Arn": "arn:aws:dataexchange:us-east-1:123456789012:data-sets/$DATA_SET_ID/revisions/$REVISION_ID/assets/$ASSET_ID", "AssetDetails": { "ApiGatewayApiAsset": { "ApiEndpoint": "https://$API_ID.execute-api.us-east-1.amazonaws.com/$API_STAGE", "ApiId": "$API_ID", "ProtocolType": "REST", "Stage": "$API_STAGE" } }, "AssetType": "API_GATEWAY_API", "CreatedAt": "2021-09-11T00:38:52.457000+00:00", "DataSetId": "$DATA_SET_ID", "Id": "$ASSET_ID", "Name": "$ASSET_ID/$API_STAGE", "RevisionId": "$REVISION_ID", "UpdatedAt": "2021-09-11T00:38:52.457000+00:00" } ] }

Vous êtes maintenant prêt à créer une nouvelle allocation de données contenant des API.

Modifier une révision

Pour modifier la révision une fois que vous l'avez finalisée
  1. Dans la vue d'ensemble des révisions, choisissez De-finalize.

    Un message s'affiche indiquant que la révision n'est plus à l'état finalisé.

  2. Pour modifier la révision, dans Aperçu des révisions, choisissez Actions, puis Modifier.

  3. Apportez vos modifications, puis choisissez Mettre à jour.

  4. Passez en revue vos modifications, puis choisissez Finaliser.

Supprimer une révision

Pour supprimer la révision une fois que vous l'avez finalisée
  1. Dans la vue d'ensemble des révisions, choisissez Supprimer.

  2. Tapez Delete dans la boîte de dialogue Supprimer la révision, puis choisissez Supprimer.

Avertissement

Cela supprime la révision et tous ses actifs. Cette action ne peut être annulée.

Étape 5 : Création d'une nouvelle autorisation de données contenant des API

Une fois que vous avez créé au moins un ensemble de données et finalisé une révision avec des actifs, vous êtes prêt à publier cet ensemble de données dans le cadre d'une attribution de données.

Pour créer une nouvelle autorisation de données
  1. Dans le volet de navigation de gauche de la AWS Data Exchange console, sous Accordations de données échangées, sélectionnez Autorisations de données envoyées.

  2. Dans Autorisations de données envoyées, choisissez Créer une autorisation de données pour ouvrir l'assistant de définition de l'autorisation de données.

  3. Dans la section Sélectionner l'ensemble de données détenu, cochez la case à côté de l'ensemble de données que vous souhaitez ajouter.

    Note

    L'ensemble de données que vous choisissez doit avoir fait l'objet d'une révision définitive. Les ensembles de données sans révisions finalisées ne peuvent pas être ajoutés aux autorisations de données.

    Contrairement aux ensembles de données inclus dans les produits de données qui sont partagés AWS Marketplace, les ensembles de données ajoutés aux autorisations de données ne sont soumis à aucune règle d'accès aux révisions, ce qui signifie que le destinataire d'une autorisation de données, une fois l'autorisation de données approuvée, aura accès à toutes les révisions finalisées d'un ensemble de données donné (y compris les révisions historiques finalisées avant la création de la subvention de données).

  4. Dans la section Aperçu de la subvention, entrez les informations que le destinataire verra concernant votre autorisation de données, y compris le nom de la subvention de données et la description de la subvention de données.

  5. Choisissez Suivant.

  6. Dans la section Informations d'accès du destinataire, sous Compte AWS ID, entrez l' Compte AWS ID du compte destinataire qui doit recevoir l'autorisation de données.

  7. De plus, dans la section Informations d'accès du destinataire, sous Date de fin d'accès, choisissez si l'octroi des données doit être perpétuel, en sélectionnant Aucune date de fin, ou s'il doit avoir une date de fin, en sélectionnant Date de fin spécifique et en choisissant la date de fin souhaitée.

  8. Choisissez Suivant.

  9. Dans la section Réviser et envoyer, passez en revue les informations relatives à l'octroi de vos données.

  10. Si vous êtes sûr de vouloir créer l'autorisation de données et l'envoyer au destinataire choisi, choisissez Créer et envoyer l'autorisation de données.

Vous avez maintenant terminé la partie manuelle de la création d'une attribution de données. L'autorisation de données apparaît dans l'onglet Autorisations de données envoyées de la page Autorisations de données envoyées, avec le statut En attente d'acceptation jusqu'à ce que le compte destinataire l'accepte.