

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.

# Mejores prácticas de construcción AMIs para su uso con AWS Marketplace
<a name="best-practices-for-building-your-amis"></a>

En este tema se proporcionan prácticas recomendadas y referencias que le ayudarán a crear Amazon Machine Images (AMIs) para utilizarlas con AWS Marketplace. AMIs creado y enviado AWS Marketplace debe cumplir con todas las políticas del AWS Marketplace producto. Para obtener más información, consulte las siguientes secciones.

**Topics**
+ [Garantizar los derechos de reventa](#rights)
+ [Creación de una AMI](#building-an-ami)
+ [Preparación y protección de su AMI para AWS Marketplace](#securing-an-ami)
+ [Escaneo de la AMI para comprobar los requisitos de publicación](#self-service-scanning)
+ [Verificar que el software se ejecuta en la AMI AWS Marketplace](#verifying-ami-runtime)

## Garantizar los derechos de reventa
<a name="rights"></a>

En el caso de las distribuciones de Linux que no son libres, usted es responsable de garantizar sus derechos de reventa, con la excepción de AWS Amazon Linux, RHEL y SUSE, que se proporcionan. No necesita asegurarse los derechos de reventa de Windows. AMIs

## Creación de una AMI
<a name="building-an-ami"></a>

Utilice las siguientes pautas para crear AMIs:
+ Asegúrese de que su AMI cumpla con todas [AWS Marketplace las políticas](https://docs.aws.amazon.com/marketplace/latest/userguide/product-and-ami-policies.html).
+ Cree su AMI en la región Este de EE. UU. (Norte de Virginia). 
+ Cree productos a partir de productos existentes y bien mantenidos, AMIs respaldados por Amazon Elastic Block Store (Amazon EBS) con un ciclo de vida claramente definido proporcionado por fuentes confiables y acreditadas, como. AWS Marketplace
+ Cree AMIs con la mayoría de los sistemas up-to-date operativos, paquetes y software. 
+  Asegúrese de que todas las AMI se basen en un AMI pública de Amazon EC2 que utilice una virtualización de máquina virtual de hardware (HVM) y una arquitectura de 64 bits.
+ Desarrolle un proceso repetible para crear, actualizar y volver AMIs a publicar. 
+ Utilice un nombre de usuario del sistema operativo (SO) coherente en todas las versiones y los productos. Los nombres de usuario predeterminados recomendados son `ec2-user` para Linux y otros sistemas similares a Unix, y `Administrator` para Windows.
+ Antes de enviar una AMI final a la AWS Marketplace publicación, lance y pruebe una instancia de su AMI para comprobar la experiencia prevista para el usuario final. Pruebe todos los métodos de instalación, las características y el rendimiento en esta instancia.
+ Compruebe la configuración del puerto de la siguiente manera:
  + Como [práctica recomendada de configuración de seguridad](https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/) contra firewalls abiertos, proxies inversos y vulnerabilidades de SSRF, la opción de **compatibilidad con IMDS** debe configurarse únicamente en. **IMDSv2** Se puede usar la siguiente CLI al registrar una nueva AMI en la fase de compilación final: 
    + `aws ec2 register-image --name my-image --root-device-name /dev/xvda --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0123456789example} --architecture x86_64 --imds-support v2.0`

Para obtener más información acerca de la creación de una AMI, consulte los siguientes recursos:
+  [Creación de una AMI basada en Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) en la *Guía del usuario de Amazon EC2*
+  [Creación de una AMI de Amazon EC2 con Windows Sysprep](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-create-win-sysprep.html) en la *Guía del usuario de Amazon EC2* 
+  [¿Cómo puedo crear una imagen de máquina de Amazon (AMI) a partir de una instancia con respaldo de EBS?](https://aws.amazon.com/premiumsupport/knowledge-center/create-ami-ebs-backed/) 
+  [AMI de Amazon Linux](https://aws.amazon.com/amazon-linux-ami/) 
+  [Tipos de instancias Amazon EC2](https://aws.amazon.com/ec2/instance-types/) y [tipos de instancias](http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/instance-types.html?r=2153) 
+  [Configuración de una AMI para el uso de IMDS V2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) de forma predeterminada 

## Preparación y protección de su AMI para AWS Marketplace
<a name="securing-an-ami"></a>

Recomendamos las siguientes pautas para crear un entorno seguro AMIs:
+ Utilice las [directrices para Linux compartido](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/building-shared-amis.html) de AMIs la Guía del *usuario de Amazon EC2*
+ Construya la AMI para que se implemente como una instalación mínima para reducir la superficie expuesta a ataques. Deshabilite o elimine los servicios y programas innecesarios. 
+ Siempre que sea posible, utilice el end-to-end cifrado para el tráfico de red. Por ejemplo, utilice la capa de conexión segura (SSL) para proteger las sesiones HTTP entre usted y sus compradores. Asegúrese de que su servicio utilice únicamente up-to-date certificados AND válidos. 
+ Cuando documente su producto de AMI, proporcione recomendaciones de grupos de seguridad para que los compradores controlen el acceso del tráfico entrante a las instancias. Sus recomendaciones deben especificar lo siguiente:
  + El conjunto mínimo de puertos necesario para que sus servicios funcionen.
  + Los puertos y los intervalos de direcciones IP de origen recomendados para el acceso administrativo.

  Estas recomendaciones de grupos de seguridad ayudan a los compradores a implementar los controles de acceso adecuados. Para obtener más información acerca de cómo agregar una versión nueva a su producto de AMI, consulte [Agregar una nueva versión](single-ami-versions.md#single-ami-adding-version).
+ Considere la posibilidad de realizar una prueba de penetración en su entorno AWS informático a intervalos regulares o considere la posibilidad de contratar a un tercero para que realice dichas pruebas en su nombre. Para obtener más información, incluido el formulario de solicitud de pruebas de penetración, consulte [Pruebas de penetración de AWS](https://aws.amazon.com/security/penetration-testing/). 
+ Tenga en cuenta las 10 principales vulnerabilidades de las aplicaciones web y cree sus aplicaciones en consecuencia. Para obtener más información, consulte el sitio sobre el [Proyecto de seguridad de aplicaciones web abiertas (OWASP) - Los 10 principales riesgos para las aplicaciones web](https://owasp.org/www-project-top-ten/). Cuando se detecten nuevas vulnerabilidades de Internet, actualice sin dilación todas las aplicaciones web que se suministran con su AMI. Algunos ejemplos de recursos que incluyen esta información son la [base [SecurityFocus](http://www.securityfocus.com/vulnerabilities)de datos nacional sobre vulnerabilidades del NIST](http://nvd.nist.gov/).

Para obtener más información relacionada con la seguridad, consulte los siguientes recursos:
+  [Seguridad en la nube de AWS](https://aws.amazon.com/security/) 
+  [The Center for Internet Security (CIS): Security Benchmarks](http://benchmarks.cisecurity.org/downloads/benchmarks/) 
+  [The Open Web Application Security Project (OWASP): Secure Coding Practices Quick Reference Guide](https://owasp.org/www-project-secure-coding-practices-quick-reference-guide/) 
+  [OWASP Top 10 Web Application Security Risks](https://owasp.org/www-project-top-ten/) 
+  [Los 25 errores de software más peligrosos de SANS (SysAdminauditoría, redes y seguridad) Enumeración de debilidades comunes (CWE)](http://www.sans.org/top25-software-errors/) 
+  [Security Focus](http://www.securityfocus.com/vulnerabilities) 
+  [NIST National Vulnerability Database](http://nvd.nist.gov/) 

## Escaneo de la AMI para comprobar los requisitos de publicación
<a name="self-service-scanning"></a>

Para publicar su AMI en el AWS Marketplace catálogo, debe completar el escaneo de la AMI. El análisis de la AMI comprueba si hay vulnerabilidades y exposiciones comunes no parcheadas (CVEs) y verifica que la AMI siga las mejores prácticas de seguridad. Para obtener más información, consulte [Preparación y protección de la AMI para AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html#securing-an-ami)

 Para realizar el escaneo de AMI, elija una de las siguientes opciones: 

**Opción 1: menú Activos**

Este método permite escanear AMIs fuera del flujo de creación del producto. También es útil para los vendedores de SaaS que utilizan Lanzamiento rápido de SaaS y necesitan escanear activos sin crear un producto AMI.

1. Desde el [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management/homepage), seleccione **Imagen de máquina de Amazon** en el menú **Activos**. 

1. Seleccione **Agregar AMI** para iniciar el proceso de escaneado. 

1. Puede ver el estado del AMIs escaneo volviendo a esta página. 

**Opción 2: menú de solicitud de cambios**

Esta opción está disponible para los vendedores que ya hayan creado un producto AMI. Encontrará más información en [Creación de productos basados en AMI](ami-single-ami-products.md) 

1. Desde el [AWS Marketplace Management Portal](https://aws.amazon.com/marketplace/management/homepage), navegue hasta el menú **Productos** y seleccione **Servidor**. 

1. Seleccione su producto de entre los **Productos de servidor**. Debe ser un producto basado en AMI. El producto puede estar en cualquier estado y no es necesario que esté en estado de publicación **pública** para los siguientes pasos.

1. Vaya al menú **Solicitar cambios** y seleccione **Actualizar versiones**. 

1. Seleccione **Probar “Agregar versión”**. Siga las instrucciones para enviar una solicitud con los detalles de su AMI. Si la solicitud se realiza correctamente, esto indica que la AMI ha superado el análisis correctamente. A diferencia de la opción **Agregar nueva versión**, **Probar “agregar versión”** no añade una nueva versión al producto basado en AMI si el escaneo se realiza correctamente.

**nota**  
Para obtener información sobre cómo dar AWS Marketplace acceso a su AMI, consulte[Dar AWS Marketplace acceso a su AMI](single-ami-marketplace-ami-access.md).

## Verificar que el software se ejecuta en la AMI AWS Marketplace
<a name="verifying-ami-runtime"></a>

Recomendamos encarecidamente que su software compruebe en tiempo de ejecución que se está ejecutando en una instancia de Amazon EC2 creada a partir de su producto de AMI.

Para comprobar que la instancia de Amazon EC2 se haya creado a partir de su producto de AMI, utilice el servicio de metadatos de instancias integrado en Amazon EC2. Los siguientes pasos le guiarán a través de esta validación. Para obtener información sobre el uso del servicio de metadatos, consulte [Metadatos de instancia y datos de usuario](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) en la *Guía del usuario de Amazon Elastic Compute Cloud*.

1. *Obtenga el documento de identidad de la instancia*

   Cada instancia en ejecución tiene un documento de identidad al que se puede acceder desde la instancia y que proporciona datos sobre la propia instancia. En el siguiente ejemplo, se muestra el uso de curl de la instancia para recuperar el documento de identidad de la instancia.

   IMDSv2: (Recomendado)

   ```
   TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
   && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/dynamic/instance-identity/document
    {
      "accountId" : "0123456789",
      "architecture" : "x86_64",
      "availabilityZone" : "us-east-1e",
      "billingProducts" : null,
      "devpayProductCodes" : null,
      "marketplaceProductCodes" : [ "0vg0000000000000000000000" ],
      "imageId" : "ami-0123456789abcdef1",
      "instanceId" : "i-0123456789abcdef0",
      "instanceType" : "t2.medium",
      "kernelId" : null,
      "pendingTime" : "2020-02-25T20:23:14Z",
      "privateIp" : "10.0.0.2",
      "ramdiskId" : null,
      "region" : "us-east-1",
      "version" : "2017-09-30"
   }
   ```

   IMDSv1:

   ```
   curl http://169.254.169.254/latest/dynamic/instance-identity/document{
      "accountId" : "0123456789",
      "architecture" : "x86_64",
      "availabilityZone" : "us-east-1e",
      "billingProducts" : null,
      "devpayProductCodes" : null,
      "marketplaceProductCodes" : [ "0vg0000000000000000000000" ],
      "imageId" : "ami-0123456789abcdef1",
      "instanceId" : "i-0123456789abcdef0",
      "instanceType" : "t2.medium",
      "kernelId" : null,
      "pendingTime" : "2020-02-25T20:23:14Z",
      "privateIp" : "10.0.0.2",
      "ramdiskId" : null,
      "region" : "us-east-1",
      "version" : "2017-09-30"
   }
   ```

1. *Verifique el documento de identidad de la instancia*

   Puede comprobar que la identidad de la instancia es correcta mediante la firma. Para obtener más información sobre este proceso, consulte [Documentos de identidad de las instancias](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-identity-documents.html) en la *Guía del usuario de Amazon Elastic Compute Cloud*.

1. *Verifique el código del producto*

   Cuando envía por primera vez su producto de AMI para su publicación, se le asigna un [código de producto](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-getting-started.html#ami-product-codes) por parte de AWS Marketplace. Puede verificar el código de producto consultando el campo `marketplaceProductCodes` del documento de identidad de la instancia o puede obtenerlo directamente del servicio de metadatos:

   IMDSv2:

   ```
   TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/product-codes
   ```

   Si el código de producto coincide con el de su producto de AMI, significa que la instancia se creó a partir de su producto.