Crear una concesión de datos al AWS Data Exchange contener APIs - AWS Data Exchange Guía del usuario

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Crear una concesión de datos al AWS Data Exchange contener APIs

En los siguientes temas se describe el proceso de crear un conjunto de datos de la API REST y agregarlo a una concesión de datos que contenga APIs on AWS Data Exchange. Puede completar el proceso mediante la consola de AWS Data Exchange o la AWS Command Line Interface.

Tras configurar la API de REST de Amazon API Gateway, puede crear un nuevo conjunto de datos de API en AWS Data Exchange. A continuación, puede crear una revisión y agregar los activos de la API.

La creación de una concesión de datos con un activo de API permite que las solicitudes de los destinatarios a un AWS Data Exchange punto final se transfieran mediante proxy a su API de API Gateway.

El proceso consta de los pasos siguientes:

Requisitos previos

Para poder publicar un producto que lo contenga APIs, debes cumplir los siguientes requisitos previos:

  • Antes de poder usar alguno Servicio de AWS, incluso AWS Data Exchange, debe registrarse AWS y crear un usuario administrativo. Para obtener más información, consulte la Introducción de la Guía del usuario de AWS IAM Identity Center .

  • Su API de REST debe estar en Amazon API Gateway con una integración que utilice un modelo de solicitud y respuesta adecuado para acceder a sus datos, como Amazon DynamoDB o AWS Lambda. Para obtener más información, consulte Desarrollo de una API REST en API Gateway y Trabajo con REST APIs en la Guía para desarrolladores de Amazon API Gateway.

    nota

    Solo se admite la API Gateway APIs pública.

  • La API de REST de API Gateway debe poder autenticar y autorizar llamadas del entidad principal del servicio AWS Data Exchange . Todas las solicitudes AWS Data Exchange a tu API utilizan el protocolo Signature versión 4 (SigV4) firmado con AWS Data Exchange credenciales. AWS Data Exchange funciona con dominios personalizados y asignaciones de claves de dominio.

    nota

    AWS Data Exchange no es compatible con Amazon Cognito, No-Auth ni autorizadores. AWS Lambda

  • Si la API REST de API Gateway utiliza un sistema de identidad personalizado para la autenticación y la autorización, configúrelo para que utilice la autenticación de IAM e importe un esquema de OpenAPI que describa su API. AWS Data Exchange invocará la API REST de API Gateway con sus propias credenciales de servicio e incluirá información del suscriptor, como el ID de la cuenta.

  • Su API de REST de API Gateway es responsable de la integración con su backend. Para ello, siga uno de estos pasos:

    • Adjunte un token de autenticación de larga duración a cada solicitud que llegue a través de la API de REST de API Gateway que el backend pueda verificar.

    • Utilice API Gateway para invocar una función de Lambda que pueda generar credenciales e invocar su API.

Su API se invoca según la especificación de solicitud de integración de API.

Para obtener más información, consulte los temas siguientes:

Seguridad de conjuntos de datos de API

AWS Data Exchange cifra el tráfico de extremo a extremo mediante Transport Layer Security (TLS) 1.2. Todos los metadatos se cifran en reposo. AWS Data Exchange no almacenará las solicitudes de los suscriptores ni las respuestas de tu servidor.

Especificación de solicitud de integración de API

Una API AWS Data Exchange pasa por todos los encabezados (excepto los que aparecen enReenvío de encabezados), el cuerpo, el método http, la ruta y las cadenas de consulta tal como están de la solicitud del cliente y agrega los siguientes encabezados.

// 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,

Reenvío de encabezados

AWS Data Exchange elimina cualquier encabezado relacionado con la autenticación o el espacio de nombres asignado a Amazon antes de reenviarlo al servidor del propietario de los datos. En AWS Data Exchange concreto, elimina:

  • Encabezado Authentication

  • Encabezados que comiencen por x-amz

El encabezado host se sobrescribirá como consecuencia del uso del proxy.

Paso 1: Actualizar la política de recursos de la API

Si tiene una API REST de Amazon API Gateway que cumple los requisitos previos, debe actualizar la política de recursos de AWS Data Exchange la API para permitir que se invoque la API cuando un suscriptor solicite obtener el esquema de la API.

Para actualizar la política de recursos de la API
  1. Agregue la política siguiente a la política de recursos de la API:

    { "Effect": "Allow", "Principal": {"Service": "dataexchange.amazonaws.com"}, "Action": "execute-api:Invoke", "Resource": "*", "Condition": {"StringEquals": {"aws:SourceAccount": "<account-id>"}} }
  2. Sustituya account-id por la cuenta que vaya a crear el conjunto de datos de la API.

    No es necesario que la cuenta con el recurso de API Gateway esté en la misma cuenta que crea los conjuntos de datos.

Esta política restringe estos permisos a las llamadas realizadas por el director del AWS Data Exchange servicio y exige que solo su cuenta pueda autorizar AWS Data Exchange la integración con su API.

nota

Si tienes una política AWS Data Exchange de recursos que deniega explícitamente esta invocación, debes eliminar o limitar esta denegación.

Ya está listo para crear un conjunto de datos de la API.

Paso 2: Crear un conjunto de datos de API

Los conjuntos de datos AWS Data Exchange son dinámicos y se versionan mediante revisiones, y cada revisión contiene al menos un activo. Para obtener más información, consulte Datos en AWS Data Exchange.

Se utiliza la AWS Data Exchange consola o la AWS Command Line Interface para crear un conjunto de datos de la API:

Creación de un conjunto de datos de API (consola)

Para crear un conjunto de datos de API (consola)
  1. Abra el navegador web e inicie sesión en la consola de AWS Data Exchange.

  2. En el panel de navegación de la izquierda, en Mis datos, elija Conjuntos de datos propios.

  3. En Conjuntos de datos propios, elija Crear conjunto de datos para abrir el asistente Pasos para crear un conjunto de datos.

  4. En Seleccionar tipo de conjunto de datos, elija API de Amazon API Gateway.

  5. En Definir conjunto de datos, introduzca un Nombre y una Descripción para el conjunto de datos. Para obtener más información, consulte Prácticas recomendadas con conjuntos de datos.

  6. (Opcional) En Agregar etiquetas - opcional, agregue etiquetas.

  7. Seleccione Crear.

Ya está listo para crear una revisión.

Creación de un conjunto de datos de API (AWS CLI)

Para crear un conjunto de datos de API (CLI)
  1. Utilice el comando create-data-set para crear un conjunto de datos de 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. Anote el nuevo tipo de activo de API_GATEWAY_API.

Ya está listo para crear una revisión.

Paso 3: Crear una revisión

En el procedimiento siguiente, se crea una revisión después de haber creado un conjunto de datos. Para obtener más información, consulte Revisiones.

Utiliza la AWS Data Exchange consola o la AWS Command Line Interface para crear una revisión:

Crear una revisión (consola)

Para crear una revisión (consola)
  1. En la sección Información general sobre el conjunto de datos de la página de detalles del conjunto de datos:

    1. (Opcional) Elija Editar nombre para editar la información sobre su conjunto de datos.

    2. (Opcional) Elija Eliminar para eliminar el conjunto de datos.

  2. En la sección Revisiones, elija Crear revisión.

  3. En Definir revisión, proporcione un comentario opcional sobre la revisión que describa su finalidad.

  4. (Opcional) En Agregar etiquetas: opcional, agregue las etiquetas asociadas al recurso.

  5. Elija Crear revisión.

  6. Revise, edite o elimine los cambios del paso anterior.

Ahora está listo para agregar activos de la API a la revisión.

Creación de una revisión (AWS CLI)

Para crear una revisión (AWS CLI)
  1. Utilice el comando create-revision para crear una revisión:

    $ 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. Añada los activos de la API a la revisión.

    nota

    Necesitará saber el ID de la API de REST de API Gateway que desea importar, así como la fase.

Paso 4: Agregar activos de API a una revisión

Los activos de API contienen la información que los suscriptores necesitan para realizar llamadas a su API. Para obtener más información, consulte Activos.

En el procedimiento siguiente, se importan los activos de datos y, a continuación, se finaliza la revisión.

Puede utilizar la AWS Data Exchange consola o la AWS CLI para añadir activos a una revisión:

Añadir activos de API a una revisión (consola)

Para añadir activos de API a una revisión (consola)
  1. En la sección de Activos de API de la página de detalles del conjunto de datos, elija Agregar etapa de API.

  2. En Seleccionar etapa de API, para la API de Amazon API Gateway, introduzca una API en el cuadro de entrada o elija una de las opciones siguientes en la lista desplegable:

    • API en otra Cuenta de AWS: se trata de una API multicuenta a la que se te ha dado permiso para acceder.

    • En esto Cuenta de AWS, esta es una API en su Cuenta de AWS.

    1. Si has elegido una API en otra Cuenta de AWS, introduce el ID de la API y el nombre de la fase de la API en los cuadros de entrada.

    2. Si seleccionó En esto Cuenta de AWS, elija el nombre de la etapa de API en la lista desplegable

    nota

    Para crear una nueva etapa de API, elija Crear nueva y siga los pasos del modal Crear nueva API en Amazon API Gateway. Después de crear la etapa nueva, repita el paso 2.

  3. En Configuración avanzada (opcional), puede optar por Conectar el plan de uso existente de Amazon API Gateway para utilizar los límites de limitación y cuota definidos en el plan de uso existente e introducir la Clave de API.

  4. En API de documentos para suscriptores, proporcione detalles sobre la API que verán los receptores después de aceptar la concesión de datos.

    1. En Nombre de la API, introduzca un nombre que los suscriptores puedan usar para identificar el activo de la API.

      nota

      Si se ha seleccionado En esta Cuenta de AWS, el Nombre de API se rellena automáticamente y es posible modificarlo si es necesario.

      Si se ha seleccionado API en otra Cuenta de AWS, el Nombre de la API se rellena con un nombre predeterminado, que es necesario modificar para que el receptor pueda entender fácilmente de qué se trata.

    2. Para la Especificación OpenAPI 3.0, puede:

      1. Introducir o copiar y pegar el archivo de especificaciones de OpenAPI 3.0.

      2. Seleccione Importar desde un archivo JSON y, a continuación, seleccione el archivo .json de su ordenador local para importarlo.

        La especificación importada aparece en el cuadro.

      3. Elija Importar desde Amazon API Gateway y, a continuación, elija una especificación para importar.

        La especificación importada aparece en el cuadro.

    3. En Documentación adicional (opcional), introduzca cualquier información adicional que sea útil para que el suscriptor conozca su API. Se admite Markdown.

    nota

    No es posible editar la especificación de OpenAPI ni la documentación adicional después de agregar este activo a una revisión.

    Si desea actualizar esta información y la revisión no está finalizada, puede sustituir el activo.

    Si desea actualizar esta información y la revisión está finalizada, puede crear una revisión nueva con el activo actualizado.

  5. Elija Agregar etapa de API.

    Se inicia un trabajo para importar el activo (en este caso, la API) en el conjunto de datos.

    nota

    Si no dispone de una API en Amazon API Gateway, se le pedirá que cree una.

  6. Después de finalizar el trabajo, el campo Estado de la sección Trabajos se actualiza a Completado.

  7. Si tiene más APIs para añadir, repita el paso 2.

  8. En Información general sobre la revisión, revise la revisión y sus activos.

  9. Elija Finalizar.

Ha finalizado correctamente una revisión de un conjunto de datos.

Puede editar una revisión o eliminar una revisión antes de agregarla a una concesión de datos.

Ahora está listo para crear una nueva concesión de datos que contenga APIs.

Agregar activos de API a una revisión (AWS CLI)

Es posible agregar activos de API ejecutando un trabajo de IMPORT_ASSET_FROM_API_GATEWAY_API.

Para agregar activos de API a una revisión (AWS CLI):
  1. Utilice el comando create-job para agregar activos de API a la revisión:

    $ 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. Utilice el comando list-revision-assets para confirmar que se ha creado el nuevo activo correctamente:

    $ 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" } ] }

Ahora está listo para crear una nueva concesión de datos que contenga APIs.

Editar una revisión

Para editar la revisión después de finalizarla
  1. En Información general sobre la revisión, elija Revertir finalización.

    Se muestra un mensaje que indica que la revisión ya no está en estado finalizador.

  2. Para editar la revisión, en Información general sobre la revisión, elija Acciones, Editar.

  3. Realice los cambios y elija Actualizar.

  4. Revise los cambios y, a continuación, elija Finalizar.

Eliminar una revisión

Para eliminar la revisión después de finalizarla
  1. En Información general sobre la revisión, elija Eliminar.

  2. En el cuadro de diálogo Eliminar, escriba Delete y, a continuación, elija Eliminar.

aviso

Esto elimina la revisión y todos sus activos. Esta acción no se puede deshacer.

Paso 5: Crea una nueva concesión de datos que contenga APIs

Una vez que haya creado al menos un conjunto de datos y finalizado una revisión con activos, ya se podrá publicar ese conjunto de datos como parte de una concesión de datos.

Para crear una nueva concesión de datos
  1. En el panel de navegación izquierdo de la AWS Data Exchange consola, en Concesiones de datos intercambiados, seleccione Concesiones de datos enviadas.

  2. En Concesiones de datos enviadas, elija Crear concesión de datos para abrir el asistente Definir concesión de datos.

  3. En la sección Seleccionar conjunto de datos propio, active la casilla situada junto al conjunto de datos que desea agregar.

    nota

    El conjunto de datos que elija debe tener una revisión finalizada. Los conjuntos de datos sin las revisiones finalizadas no se pueden agregar a las concesiones de datos.

    A diferencia de los conjuntos de datos incluidos en los productos de datos que se comparten AWS Marketplace, los conjuntos de datos que se añaden a las concesiones de datos no tienen reglas de acceso a las revisiones, lo que significa que el destinatario de una concesión de datos, una vez aprobada la concesión de datos, tendrá acceso a todas las revisiones finalizadas de un conjunto de datos determinado (incluidas las revisiones históricas finalizadas antes de la creación de la concesión de datos).

  4. En la sección Descripción general de la concesión, introduzca la información que el receptor verá en relación con su concesión de datos, incluido el Nombre de la concesión de datos y la Descripción de la concesión de datos.

  5. Elija Siguiente.

  6. En la sección Información de acceso del destinatario, en Cuenta de AWS ID, introduce el Cuenta de AWS ID de la cuenta del destinatario que debe recibir la concesión de datos.

  7. Además, en la sección Información de acceso del receptor, en Fecha de finalización del acceso, elija si la concesión de datos debe ser perpetua, seleccione Sin fecha de finalización o si debe tener una fecha de finalización, seleccione Fecha de finalización específica y elija la fecha de finalización deseada.

  8. Elija Next (Siguiente).

  9. En la sección Revisar y enviar, revise la información sobre la concesión de datos.

  10. Si está seguro de que desea crear la concesión de datos y enviarla al receptor elegido, seleccione Crear y enviar concesión de datos.

Ya ha completado la parte manual de creación de una concesión de datos. La concesión de datos aparece en la pestaña Concesiones de datos enviadas de la página Concesiones de datos enviadas, con el estado Pendiente de aceptación hasta que la cuenta del destinatario la acepte.