

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Melhores práticas de construção AMIs para uso com AWS Marketplace
<a name="best-practices-for-building-your-amis"></a>

Este tópico fornece as melhores práticas e referências para ajudá-lo a criar Amazon Machine Images (AMIs) para uso com AWS Marketplace. AMIs criado e enviado para, AWS Marketplace deve seguir todas as políticas AWS Marketplace do produto. Para obter mais informações, consulte as seções a seguir.

**Topics**
+ [Proteção dos direitos de revenda](#rights)
+ [Criação de uma AMI](#building-an-ami)
+ [Preparando e protegendo sua AMI para AWS Marketplace](#securing-an-ami)
+ [Verificação da AMI quanto aos requisitos de publicação](#self-service-scanning)
+ [Verificando se o software está sendo executado na sua AMI AWS Marketplace](#verifying-ami-runtime)

## Proteção dos direitos de revenda
<a name="rights"></a>

Para distribuições Linux não gratuitas, você é responsável por garantir os direitos de revenda delas, com exceção dos AWS Amazon Linux, RHEL e SUSE fornecidos. Você não precisa garantir os direitos de revenda do Windows AMIs.

## Criação de uma AMI
<a name="building-an-ami"></a>

Use as seguintes diretrizes para construir AMIs:
+ Certifique-se de que sua AMI atenda a todas [AWS Marketplace as políticas](https://docs.aws.amazon.com/marketplace/latest/userguide/product-and-ami-policies.html).
+ Crie a AMI na região Leste dos EUA (Norte da Virgínia). 
+ Crie produtos a partir de produtos existentes e bem mantidos, AMIs apoiados pelo Amazon Elastic Block Store (Amazon EBS) com um ciclo de vida claramente definido, fornecido por fontes confiáveis e confiáveis, como. AWS Marketplace
+ Crie AMIs usando a maioria dos sistemas up-to-date operacionais, pacotes e software. 
+  Verifique se a AMI se baseia em uma AMI do Amazon EC2, que usa a virtualização de máquina virtual de hardware (HVM) e a arquitetura de 64 bits.
+ Desenvolva um processo repetível para criar, atualizar e republicar. AMIs 
+ Use um nome de usuário do sistema operacional (SO) consistente em todas as versões e produtos. Os nomes de usuário padrão recomendados são `ec2-user` para Linux e outros sistemas semelhantes ao UNIX e `Administrator` para Windows.
+ Antes de enviar uma AMI final para AWS Marketplace publicação, execute e teste uma instância da sua AMI para verificar a experiência pretendida do usuário final. Teste todos os métodos de instalação, atributos e desempenho nessa instância.
+ Verifique as configurações da porta da seguinte forma:
  + Como [melhor prática de configuração de segurança](https://aws.amazon.com/blogs/security/defense-in-depth-open-firewalls-reverse-proxies-ssrf-vulnerabilities-ec2-instance-metadata-service/) contra firewalls abertos, proxies reversos e vulnerabilidades de SSRF, a opção de **suporte do IMDS** deve ser definida como somente. **IMDSv2** A seguinte CLI pode ser usada durante o registro de uma nova AMI na fase de compilação 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 obter mais informações sobre a criação de uma AMI, consulte os seguintes recursos:
+  [Crie uma AMI baseada no Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) no *Guia do usuário do Amazon EC2*
+  [Crie uma AMI do Amazon EC2 usando o Windows Sysprep](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-create-win-sysprep.html) no *Guia do usuário do Amazon EC2* 
+  [Como criar uma Imagem de máquina da Amazon (AMI) usando uma instância baseada em EBS?](https://aws.amazon.com/premiumsupport/knowledge-center/create-ami-ebs-backed/) 
+  [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/) 
+  [Tipos de instância do Amazon EC2](https://aws.amazon.com/ec2/instance-types/) e [Tipos de instância](http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/instance-types.html?r=2153) 
+  [Configuração de uma AMI para uso do IMDS V2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) por padrão 

## Preparando e protegendo sua AMI para AWS Marketplace
<a name="securing-an-ami"></a>

Recomendamos as seguintes diretrizes para criar segurança AMIs:
+ Use as [diretrizes para Linux compartilhado AMIs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/building-shared-amis.html) no Guia do *usuário do Amazon EC2*
+ Projete sua AMI par implantação como instalação mínima para reduzir a superfície de ataque. Desative ou remova serviços e programas desnecessários. 
+ Sempre que possível, use end-to-end criptografia para tráfego de rede. Por exemplo, use Secure Sockets Layer (SSL) para proteger sessões HTTP entre você e seus compradores. Certifique-se de que seu serviço use somente up-to-date certificados válidos. 
+ Ao documentar o produto da AMI, faça recomendações do grupo de segurança para que os compradores controlem o acesso do tráfego de entrada às instâncias. As recomendações devem especificar o seguinte:
  + O conjunto mínimo de portas necessário para que os serviços funcionem.
  + As portas recomendadas e os intervalos de endereços IP de origem para acesso administrativo.

  Essas recomendações do grupo de segurança ajudam compradores a implementar os controles de acesso indicados. Para obter mais informações sobre como adicionar uma nova versão ao produto de AMI, consulte [Adicionar uma nova versão](single-ami-versions.md#single-ami-adding-version).
+ Considere realizar um teste de penetração em seu ambiente de AWS computação em intervalos regulares ou considere contratar um terceiro para realizar esses testes em seu nome. Para obter mais informações, incluindo um formulário de solicitação de teste de penetração, consulte [Testes de penetração da AWS](https://aws.amazon.com/security/penetration-testing/). 
+ Esteja ciente das dez principais vulnerabilidades para aplicativos web e crie seus aplicativos adequadamente. Para saber mais, consulte [Open Web Application Security Project (OWASP) - Top 10 Web Application Security Risks](https://owasp.org/www-project-top-ten/). Quando novas vulnerabilidades da Internet são descobertas, atualize prontamente qualquer aplicativo web enviado na AMI. Exemplos de recursos que incluem essas informações são [SecurityFocus](http://www.securityfocus.com/vulnerabilities)e o Banco de [Dados Nacional de Vulnerabilidades do NIST](http://nvd.nist.gov/).

Para obter mais informações sobre segurança, consulte os seguintes recursos relacionados:
+  [Segurança da Nuvem 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): Guia de referência rápida de práticas de codificação seguras](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/) 
+  [SANS (SysAdmin, auditoria, rede e segurança) Common Weakness Enumeration (CWE) Os 25 erros de software mais perigosos](http://www.sans.org/top25-software-errors/) 
+  [Security Focus](http://www.securityfocus.com/vulnerabilities) 
+  [NIST National Vulnerability Database](http://nvd.nist.gov/) 

## Verificação da AMI quanto aos requisitos de publicação
<a name="self-service-scanning"></a>

Para publicar sua AMI no AWS Marketplace catálogo, você deve concluir a verificação da AMI. O escaneamento de AMI verifica vulnerabilidades e exposições comuns não corrigidas (CVEs) e verifica se sua AMI segue as melhores práticas de segurança. Para obter mais informações, consulte [Preparando e protegendo sua AMI para AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html#securing-an-ami)

 Para realizar a verificação da AMI, escolha uma das seguintes opções: 

**Opção 1: menu Ativos**

Esse método permite a digitalização AMIs fora do fluxo de criação do produto. Ele também é útil para vendedores de SaaS que usam o Início Rápido de SaaS e precisam verificar ativos sem criar um produto AMI.

1. No [Portal de gerenciamento do AWS Marketplace](https://aws.amazon.com/marketplace/management/homepage), navegue até **Ativos** e escolha **Imagem de máquina da Amazon**. 

1. Para iniciar o processo de verificação, escolha **Adicionar AMI**. 

1. Você pode ver o status do AMIs escaneamento retornando a esta página. 

**Opção 2: menu Solicitar alterações**

Essa opção está disponível para vendedores que já criaram um produto AMI. Saiba mais em [Criação de produtos baseados em AMI](ami-single-ami-products.md) 

1. No [Portal de gerenciamento do AWS Marketplace](https://aws.amazon.com/marketplace/management/homepage), navegue até o menu **Produtos** e escolha **Servidor**. 

1. Selecione o produto em **Produtos de servidor**. Ele deve ser um produto baseado em AMI. O produto pode estar em qualquer estado e não precisa estar no estado publicado **Público** para as próximas etapas.

1. Navegue até o menu **Solicitar alterações** e selecione **Atualizar versões**. 

1. Selecione **Testar “Adicionar versão**”. Siga os prompts para enviar uma solicitação com os detalhes da AMI. Se a solicitação for bem-sucedida, isso indicará que a AMI passou pela verificação com êxito. Diferentemente da opção **Adicionar nova versão**, **Testar “Adicionar versão”** não adicionará uma nova versão ao produto baseado em AMI se a verificação for bem-sucedida.

**nota**  
Para saber mais sobre como dar AWS Marketplace acesso à sua AMI, consulte[Dando AWS Marketplace acesso à sua AMI](single-ami-marketplace-ami-access.md).

## Verificando se o software está sendo executado na sua AMI AWS Marketplace
<a name="verifying-ami-runtime"></a>

É altamente recomendável que o software seja verificado em runtime se está em execução em uma instância do Amazon EC2 criada a partir do produto da AMI.

Para verificar se a instância do Amazon EC2 foi criada a partir do seu produto de AMI, use o serviço de metadados da instância incorporado ao Amazon EC2. As etapas a seguir conduzem você por essa validação. Para obter mais informações sobre como usar o serviço de metadados, consulte [Metadados de instância e dados do usuário](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) no *Guia do usuário do Amazon Elastic Compute Cloud*.

1. *Obter o documento de identidade da instância*

   Cada instância em execução tem um documento de identidade acessível na instância que fornece dados sobre a própria instância. O exemplo a seguir mostra o uso do curl da instância para recuperar o documento de identidade da instância.

   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. *Verificar o documento de identidade da instância*

   Você pode verificar se a identidade da instância está correta usando a assinatura. Para obter detalhes sobre esse processo, consulte [Documentos de identidade da instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-identity-documents.html) no *Guia do usuário do Amazon Elastic Compute Cloud*.

1. *Verificar o código do produto*

   Quando você envia inicialmente seu produto de AMI para publicação, seu produto recebe um [código de produto](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-getting-started.html#ami-product-codes) do AWS Marketplace. Você pode verificar o código do produto verificando o campo `marketplaceProductCodes` no documento de identidade da instância ou pode obtê-lo diretamente do serviço de metadados:

   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
   ```

   Se o código do produto corresponder ao do produto de AMI, a instância foi criada a partir do seu produto.