Desarrollo de aplicaciones de Desktop en Amazon SP-API
Cómo desarrollar aplicaciones de desktop en Amazon SP-API
Descripción general
Este documento describe los requisitos para crear aplicaciones híbridas (aplicaciones web que tienen un desktop client) utilizando la Amazon Selling Partner API (SP-API). Este documento se centra en el modelo de autorización aceptable y las mejores prácticas para la seguridad de los datos. Se proporciona orientación para ayudar con el cumplimiento de la Política de uso aceptable (AUP) y la Política de protección de datos (DPP) .
En MWS, Amazon definió una aplicación de desktop como un software que se instala en una sola computadora. En SP-API, solo se admiten aplicaciones híbridas. Estos son los dos tipos comunes de aplicaciones de desktop:
- Las aplicaciones de desktop nativas son descargadas por un usuario en su computadora y
no tienen conexión con los sistemas del desarrollador de la aplicación. Esto no es aceptable según las políticas de Amazon. - Las aplicaciones híbridas se ejecutan en un host remoto propiedad del desarrollador. Híbrido
las aplicaciones utilizan una interfaz de navegador web y un componente de desktop
descargado en la computadora del usuario. Aceptable según las políticas de Amazon.
Requisitos para crear aplicaciones híbridas de Amazon SP-API
Estos son los requisitos para desarrollar un híbrido (aplicaciones web que tienen un desktop client) en Amazon SP-API:
- El modelo de autorización correcto. En el modelo de autorización de concesión, los sellers proporcionan el token de autenticación de SP-API, lo que le da al desarrollador la capacidad de realizar llamadas a Amazon SP-API en nombre del seller.
- Los controles de cifrado de datos requeridos. Asegúrese de que la información de Amazon esté encriptada a través de todos los canales de la red y en reposo en su aplicación. Los datos de información de identificación personal (PII) del cliente de Amazon siempre deben estar encriptados. Todos los canales de comunicación de la aplicación deben estar protegidos mediante firewalls o grupos de seguridad.
- Soluciones seguras de registro y monitoreo . Asegúrese de que los registros se capturen de forma segura en su aplicación y se devuelvan a sus sistemas a través de una red protegida. Implemente alarmas y monitoreo automatizados para todas las facetas de la aplicación.
- Desarrolle su aplicación con actualizaciones de software y parches de seguridad fácilmente accesibles. Es importante que su aplicación web y de desktop estén actualizadas con las últimas actualizaciones de software y parches de seguridad. También es importante diseñar aplicaciones para protegerlas contra virus, malware y piratería para reducir la probabilidad de una violación de la seguridad.
Las siguientes secciones analizan las consideraciones especiales para cada uno de estos requisitos al crear aplicaciones de desktop.
Modelo de autorización
Esta sección explica el modelo de autorización de concesión. El beneficio de la autorización de concesión es que no se intercambian ni almacenan credenciales de aplicación. En su lugar, se genera un token de acceso con un tiempo de caducidad limitado.
Utilice el flujo de autorización de sitios web para obtener la autorización del seller y luego realice la llamada Iniciar sesión con Amazon para obtener el token de actualización para realizar la llamada SP-API. Debido al flujo de trabajo de OAuth, la llamada solo puede originarse desde su servidor.
Modelo de autorización de concesión
El modelo de autorización de concesión es el único método de autenticación aprobado para usar con una aplicación Amazon SP-API. En este modelo, los sellers autorizan la aplicación SP-API mediante el flujo de trabajo de OAuth, que genera un token de actualización a largo plazo (válido por 1 año). Esto le da la posibilidad de intercambiar el token de actualización, junto con sus credenciales de la aplicación SP-API, por un token de acceso válido durante una hora, para realizar llamadas a Amazon SP-API en nombre del seller. Debido a que el token de acceso solo es válido por un período breve, una aplicación de desktop puramente nativa no es un modelo aceptado.
Debe crear su aplicación para que pueda realizar la llamada Iniciar sesión con Amazon para obtener un nuevo token de acceso cada hora. Todas las llamadas de SP-API deben originarse en el servidor del desarrollador y el desarrollador también debe recibir la respuesta. El desarrollador es responsable de proteger todos los datos recuperados de Amazon. El modelo de concesión le permite controlar y administrar la información de Amazon con controles DPP. Puede almacenar de forma segura el token de autenticación de un selleren su base de datos para su uso posterior, siempre que el sellersea su cliente.
Figura 1: Implementación del modelo de autorización de concesión
Modelos de autorización inaceptables
Los modelos de autorización que comparten las credenciales de la aplicación SP-API constituyen una infracción de la Política de uso aceptable y Amazon no los permite. Esto puede suceder cuando el sellero el desarrollador comparte las credenciales de la aplicación. El equipo de seguridad de Amazon revisa los modelos de autorización inaceptables.
Credenciales compartidas por el seller.
Es una violación de la política de Amazon que un sellercomparta sus credenciales. Como se muestra en la Figura 2, el selleringresa sus propias credenciales de aplicación de Amazon SP-API en la interfaz de su aplicación para realizar la llamada de Amazon SP-API. Esto viola la cláusula de la Política de uso aceptable (AUP, por sus siglas en inglés) nunca solicite ni acepte las secret keys de un seller para ningún propósito. Incluso si la aplicación client_id
y client_secret
no son accesibles para usted, la seguridad de los datos PII de los clientes de Amazon está en riesgo. Es posible que los sellers no tengan el conocimiento o las herramientas para garantizar que los datos estén protegidos y encriptados a través de todos los canales de su aplicación.
Riesgos del modelo de credenciales compartidas de seller:
- Las credenciales de la aplicación SP-API se comparten entre varias instancias de su aplicación o repositorio público. Esto presenta un riesgo de incumplimiento, dando acceso a la información de Amazon para todos sus sellers.
- La información de Amazon se almacena en su aplicación de desktop en la computadora del seller. Esto significa que no tiene la capacidad de controlar y proteger la información de Amazon.
Figura 2: Autoautorización: no aprobada
Credenciales compartidas del desarrollador
Es una violación de la política de Amazon que un desarrollador comparta credenciales. En la Figura 3, la aplicación SP-API client_id
y client_secret
están codificados o incrustados en el componente de desktop de la aplicación o se comparten en un repositorio público como GitHub. Esto deja las credenciales de la aplicación Amazon SP-API expuestas en el dispositivo del sellero en un repositorio público. Esto viola la cláusula AUP nunca compartir claves o contraseñas.
Riesgos del modelo de credenciales compartidas del desarrollador:
- Las credenciales de la aplicación SP-API se comparten entre varias instancias de su aplicación o repositorio público. Esto presenta un riesgo de incumplimiento, dando a todos sus sellers acceso a la información de Amazon.
- La información de Amazon se almacena en la computadora del selleren la aplicación de desktop que desarrolló. Esto significa que no tiene la capacidad de controlar y proteger la información de Amazon.
Figura 3: modelo de autorización que expone las claves de aplicación SP-API de un desarrollador:
No aprovado
Cifrado y retención de datos
Todos los desarrolladores de Amazon SP-API deben cumplir con la Política de protección de datos (DPP), independientemente del tipo de aplicación. Amazon responsabiliza a los desarrolladores de la protección de la información de Amazon en sus aplicaciones.
Las solicitudes deben cumplir con lo siguiente:
- Cifrar datos en tránsito
- Cifrar datos en reposo
- Automatice las políticas de ciclo de vida y retención de datos
Cifrado de datos en tránsito
Los datos en tránsito son cualquier dato que se transmite de un sistema a otro. Esto incluye la comunicación entre los recursos dentro de su entorno, así como la comunicación entre los componentes de desktop nativos instalados en el dispositivo de un seller. Al proporcionar el nivel adecuado de protección para los datos en tránsito, preserva la confidencialidad e integridad de la información de Amazon.
Seleccionar protocolos seguros como Transport Layer Security (TLS), SSH File Transfer Protocol (SFTP) es una buena práctica común. Por ejemplo, los servicios de AWS proporcionan puntos de enlace HTTPS mediante TLS para la comunicación, que proporciona cifrado en tránsito cuando se comunica con las API de AWS. Los protocolos de cifrado del lado del servidor y del lado del cliente también le permiten proteger los datos mediante una capa de sockets seguros (SSL) o mediante el cifrado de datos del lado del cliente y la carga de los datos cifrados en su almacén de datos.
Cifrado de datos en reposo
Los datos en reposo son cualquier dato que persista durante cualquier duración. Esto incluye el almacenamiento en bloques, el almacenamiento de objetos, las bases de datos y cualquier otro medio de almacenamiento en el que se conserven los datos. La protección de sus datos en reposo con cifrado y controles de acceso reduce el riesgo de acceso no autorizado. Si sus aplicaciones basadas en clientes permiten que los datos de Amazon PII se descarguen localmente en el dispositivo de un seller,estas descargas deben cifrarse y deben tener controles de acceso como se define en el DPP.
Se debe considerar el cifrado de datos a nivel de mensaje cuando los datos persisten a través de múltiples canales. Por ejemplo, debe considerar cifrar datos a nivel de atributo en una base de datos, en un servidor web y en una aplicación de desktop en la computadora de un seller. El cifrado de datos a nivel de atributo elimina cualquier dependencia del almacén de datos para cifrar los datos.
Políticas automatizadas de retención de datos y ciclo de vida
Su aplicación debe cumplir con los requisitos de retención de datos. Según la AUP, "los desarrolladores retendrán la PII solo durante el tiempo que sea necesario para cumplir con los pedidos (no más de 30 días después del envío del pedido)... este almacenamiento archivado debe ser cold o offline...". Amazon recomienda que no se almacenen datos de Amazon PII en el dispositivo del seller. Si las aplicaciones de desktop permiten la persistencia de los datos de Amazon PII, debe implementar un mecanismo de eliminación de datos automatizado al final del período de retención.
Debe desarrollar un mecanismo de verificación para su aplicación de desktop para garantizar la eliminación de datos después de que haya expirado el período de retención. Por ejemplo, Amazon S3 le permite configurar una retención hasta la fecha para una versión del objeto y protege la versión del objeto hasta que vence el período de retención.
Registro y monitoreo
Registro de aplicaciones
Configure el registro en toda su pila de aplicaciones, incluidos los registros de aplicaciones, servicios y recursos. Todos los registros deben recopilarse de forma centralizada y analizarse automáticamente para detectar anomalías e indicadores de actividad maliciosa o compromiso. Para las aplicaciones de desktop, puede usar herramientas basadas en agentes para recopilar registros. Por ejemplo, puede usar Amazon CloudWatch en una arquitectura híbrida usando el agente o la API de CloudWatch para agregar archivos de registro de sus recursos y monitorear sus aplicaciones de desktop. Implemente registros detallados que contengan contenido importante, como cambios y acceso a datos de Amazon PII. El registro automático de cambios en su entorno le permite auditar e identificar rápidamente acciones que podrían haber afectado la confiabilidad.
Implemente un mecanismo de registro en archivo en el que solicite a los sellers que recuperen registros y envíen los archivos de registro a su entorno cuando haya un problema. El registro seguro directamente en el registro de eventos de su sistema operativo es otra forma rápida y confiable de iniciar sesión en una aplicación de desktop. Implemente un mecanismo automatizado para reconocer una excepción o bloqueo, y envíe los detalles del archivo de registro de excepción de forma segura a un servidor designado. Desacople sus alertas de sus sistemas tanto como sea posible.
Monitoreo y alarmas
El monitoreo es fundamental para garantizar que cumple con los requisitos de disponibilidad. Supervise todos sus puntos finales externos desde ubicaciones remotas para asegurarse de que sean independientes de su implementación base. Supervise todas las instancias de su aplicación de desktop. Hemos visto mejoras en el tiempo de detección de problemas con el uso de aplicaciones Canary del usuario . Estos se pueden implementar tanto en aplicaciones de desktop como web.
Canary deployment es la práctica de dirigir a un pequeño número de sus clientes a la nueva versión y examinar cualquier cambio de comportamiento o error que se genere. Puede eliminar el tráfico de la implementación de Canary y enviar a sus sellers a la versión anterior si tiene problemas críticos. Seleccione estas tareas de implementación con cuidado y complételas en muy poco tiempo, para que la aplicación no se sobrecargue. La razón para usar tareas con duraciones cortas es para poder ejecutar pruebas en un período corto de tiempo. Esto le permite detectar un problema antes de que sea visible para los usuarios.
Actualizaciones de software y parches de seguridad
Es importante mantener el software actualizado. Las actualizaciones de software se lanzan para abordar problemas de seguridad cuando ocurren, corregir errores menores descubiertos en la aplicación, mejorar el funcionamiento del hardware o los periféricos y agregar compatibilidad con nuevos modelos de computadora. Las actualizaciones de seguridad son actualizaciones comunes del sistema operativo que se emiten para proteger su computadora contra vulnerabilidades que pueden ser aprovechadas por piratas informáticos y virus.
Es importante instalar actualizaciones de seguridad cuando se publiquen para garantizar que su sistema esté lo más protegido posible contra amenazas que cambian constantemente. Si las aplicaciones de desktop no siempre están conectadas a Internet, lo que impide las actualizaciones obligatorias, es posible que la aplicación permanezca desactualizada sin un mecanismo de cumplimiento. Es posible que una aplicación web nunca enfrente este problema, pero una aplicación de desktop descargada aún puede tener instaladas versiones antiguas.
Puede aplicar la aplicación de parches si es el propietario del host en el que se ejecuta la aplicación. Para las aplicaciones de desktop que se ejecutan en la computadora de un seller,es necesario un esfuerzo caso por caso para instalar actualizaciones de software en cada instancia. Debe haber una verificación de validación en la aplicación de desktop para garantizar que el software sea la última versión. Por ejemplo, cuando AWS Systems Manager Patch Manager está instalado en un sistema operativo, los parches relacionados con la seguridad se actualizan en los servidores de forma predeterminada.
Conclusión
Este documento técnico de la aplicación de desktop proporciona las mejores prácticas arquitectónicas con respecto a la seguridad de los datos y el modelo de autorización aprobado. Muestra la forma correcta de desarrollar sus aplicaciones híbridas. Los sólidos controles de autenticación y autorización, las respuestas automatizadas a los eventos de seguridad, la protección de la infraestructura en varios niveles y la gestión y el cifrado de datos adecuados proporcionan la protección que requiere cada aplicación SP-API.
Recursos adicionales
- Política de uso aceptable
- Política de protección de datos de Amazon
- Marco de buena arquitectura de AWS
- Token de datos de recursos (RDT)
- Pilar de seguridad de AWS
Historia del documento
Fecha | Descripción |
---|---|
julio 2022 | Segunda Publicación |
diciembre 2019 | Primera publicación |
Avisos
Los sellers y desarrolladores de Amazon son responsables de realizar su propia evaluación independiente de la información de este documento. Este documento: (a) es solo para fines informativos, (b) representa las prácticas actuales, que están sujetas a cambios sin previo aviso, y (c) no crea ningún compromiso ni garantía por parte de Amazon.com Services LLC (Amazon) y sus afiliados. , vendors o licenciantes. Los productos o servicios de la API de Amazon Services se proporcionan "tal cual" sin garantías, representaciones o condiciones de ningún tipo, ya sean expresas o implícitas. Las responsabilidades y obligaciones de Amazon con respecto a la API de servicios de Amazon están controladas por los acuerdos de API de servicios de Amazon (incluido el Acuerdo de desarrollador de API de servicios de Amazon o el Acuerdo de soluciones comerciales de servicios de Amazon), y este documento no es parte ni modifica ningún acuerdo entre Amazon y cualquier fiesta.
© 2022 Amazon.com Services LLC o sus afiliados. Reservados todos los derechos.
Updated over 1 year ago