

# Imagens de máquina da Amazon no Amazon EC2
<a name="AMIs"></a>

Uma Imagem de máquina da Amazon (AMI) é uma imagem que fornece o software necessário para configurar e inicializar uma instância do Amazon EC2. Cada AMI também contém um mapeamento de dispositivos de blocos que especifica os dispositivos de blocos a serem anexados às instâncias que você executa. Especifique uma AMI ao iniciar uma instância. Essa AMI deve ser compatível com o tipo de instância que você escolhe para a sua instância. É possível usar uma AMI fornecida pela AWS, uma AMI pública, uma AMI que alguém compartilhou com você ou uma AMI que você comprou no AWS Marketplace.

Uma AMI é específica para o seguinte:
+ Região
+ Sistema operacional
+ Arquitetura do processador
+ Tipo do volume de raiz
+ Tipo de virtualização

É possível iniciar várias instâncias em uma única AMI quando precisar de várias instâncias com a mesma configuração. É possível usar AMIs diferentes para executar instâncias quando precisar de instâncias com configurações diferentes, conforme mostrado no diagrama a seguir.

![\[Executar várias instâncias a partir de uma AMI.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/launch-from-ami.png)


É possível criar uma AMI de suas instâncias do Amazon EC2 e então usá-la para executar instâncias com a mesma configuração. É possível copiar uma AMI para outra região da AWS e usá-la para executar instâncias nessa região. Você também pode compartilhar uma AMI que você criou com outras contas para que elas possam executar instâncias com a mesma configuração. É possível vender sua AMI usando o AWS Marketplace.

**Topics**
+ [Características da AMI](ComponentsAMIs.md)
+ [Encontrar uma AMI](finding-an-ami.md)
+ [AMIs pagas no AWS Marketplace](paid-amis.md)
+ [Ciclo de vida da AMI](ami-lifecycle.md)
+ [Modos de inicialização](ami-boot.md)
+ [Criptografia da AMI](AMIEncryption.md)
+ [AMIs compartilhadas](sharing-amis.md)
+ [Monitorar eventos da AMI](monitor-ami-events.md)
+ [Noções básicas sobre o faturamento da AMI](ami-billing-info.md)
+ [Cotas de AMI](ami-quotas.md)

# Características e tipos de AMI no Amazon EC2
<a name="ComponentsAMIs"></a>

Ao executar uma instância, a AMI que você escolher deve ser compatível com o tipo de instância que você escolher. É possível selecionar uma AMI para uso com base nas seguintes características:
+ [Região](using-regions-availability-zones.md)
+ Sistema operacional
+ Arquitetura do processador
+ [Permissões de execução](#launch-permissions)
+ [Tipo do volume de raiz](#storage-for-the-root-device)
+ [Tipos de virtualização](#virtualization_types)

## Permissões de execução
<a name="launch-permissions"></a>

As permissões de execução determinam quem pode usar uma AMI para executar instâncias. É possível pensar nas permissões de execução como [compartilhar uma AMI](sharing-amis.md) — ao conceder permissões de execução, você está compartilhando a AMI com outros usuários. Somente o proprietário de uma AMI pode determinar sua disponibilidade especificando permissões de execução. As permissões de execução entram nas seguintes categorias.


| Permissão de execução | Descrição | 
| --- | --- | 
| pública | O proprietário concede permissões de execução a todas as contas da AWS. | 
| explícita | O proprietário concede permissões de execução a contas, organizações ou unidades organizacionais (UOs) específicas da AWS.  | 
| implícita | O proprietário tem permissões de execução implícitas para uma AMI. | 

A Amazon e a comunidade do Amazon EC2 fornecem uma grande seleção de AMIs públicas. Para obter mais informações, consulte [Saiba mais sobre o uso da AMI compartilhada no Amazon EC2](sharing-amis.md). Os desenvolvedores podem cobrar por suas AMIs. Para obter mais informações, consulte [AMIs pagas no AWS Marketplace para instâncias do Amazon EC2](paid-amis.md).

## Tipo do volume de raiz
<a name="storage-for-the-root-device"></a>

Todas as AMIs são categorizadas como *baseadas no Amazon EBS* ou *baseadas no Amazon S3*.
+ AMI baseada no Amazon EBS: o volume raiz de uma instância iniciada com a AMI corresponde a um volume do Amazon Elastic Block Store (Amazon EBS) criado a partir de um snapshot do Amazon EBS. Compatível com as AMIs do Linux e do Windows.
+ AMI baseada no Amazon S3: o volume raiz de uma instância iniciada com a AMI corresponde a um volume de armazenamento de instância criado a partir de um modelo armazenado no Amazon S3. Compatível somente com as AMIs do Linux. As AMIs do Windows não são compatíveis com o armazenamento de instância para o volume raiz.

Para obter mais informações, consulte [Volumes raiz para as instâncias do Amazon EC2](RootDeviceStorage.md).

**nota**  
As AMIs baseadas no Amazon S3 estão no fim da vida útil e recomendamos não as usar em novos projetos. Elas são aceitas somente nos seguintes tipos de instância mais antigos: C1, C3, D2, I2, M1, M2, M3, R3 e X1.

A tabela a seguir resume as diferenças importantes ao usar os dois tipos de AMIs.


| Característica | AMI baseada no Amazon EBS | AMI baseada no Amazon S3 | 
| --- | --- | --- | 
| Volume raiz | Volume do EBS | Volumes de armazenamento de instâncias | 
| Tempo de inicialização para uma instância | Geralmente menos que 1 minuto | Geralmente menos que 5 minutos | 
| Persistência de dados  |  Por padrão, o volume raiz é excluído quando a instância é encerrada.\$1 Os dados em todos os outros volumes do EBS persistem após o encerramento da instância, por padrão.  |  Os dados em qualquer volume do armazenamento de instâncias persistem apenas durante a vida útil da instância.  | 
| Estado parado |  Pode estar em um estado interrompido. Mesmo quando a instância é interrompida e não está em execução, o volume-raiz persiste no Amazon EBS.  |  Não pode estar em um estado interrompido; as instâncias estão em execução ou foram encerradas.  | 
| Modificações |  O tipo de instância, o kernel, o disco da RAM e os dados do usuário podem ser alterados enquanto a instância está parada.  |  Os atributos de instância são fixos durante a vida útil de uma instância.  | 
| Cobranças |  Você é cobrado pelo uso de instância, uso de volume do EBS; e pelo armazenamento da AMI como um snapshot do EBS.  |  Você é cobrado pelo uso da instância e pelo armazenamento da AMI no Amazon S3.  | 
| Criação/empacotamento da AMI | Usa um único comando/chamada | Requer instalação e uso de ferramentas de AMI | 

\$1 Por padrão, os volumes raiz do EBS têm o sinalizador `DeleteOnTermination` definido como `true`. Para obter informações sobre como alterar esse sinalizador para que o volume persista depois do encerramento, consulte [Manter um volume raiz do Amazon EBS após o encerramento de uma instância do Amazon EC2](configure-root-volume-delete-on-termination.md).

\$1\$1 Compatível apenas com `io2` EBS Block Express. Para obter mais informações, consulte [Volumes SSD do Block Express com IOPS provisionadas](https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html#io2-block-express) no *Guia do usuário do Amazon EBS*.

# Identificação do tipo de volume raiz determinado pela AMI
<a name="display-ami-root-device-type"></a>

A AMI que você usa para executar uma instância do EC2 determina o tipo de volume raiz. O volume raiz de uma instância do EC2 é um volume do EBS ou um volume de armazenamento de instância.

[Instâncias baseadas em Nitro](instance-types.md#instance-hypervisor-type) são compatíveis somente com volumes raiz do EBS. Os seguintes tipos de instância de geração anterior são os únicos tipos de instância compatíveis com volumes raiz de armazenamento de instância: C1, C3, D2, I2, M1, M2, M3, R3 e X1.

------
#### [ Console ]

**Para identificar o tipo de volume raiz determinado por uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **AMIs** e, em seguida, selecione a AMI.

1. Na guia **Details** (Detalhes), marque o valor de **Root Device Type** (Tipo de dispositivo raiz) da seguinte maneira:
   + `ebs`: instâncias iniciadas usando esta AMI receberão um volume raiz do EBS.
   + `instance store`: instâncias iniciadas usando esta AMI receberão um volume raiz de armazenamento de instância.

------
#### [ AWS CLI ]

**Para identificar o tipo de volume raiz determinado por uma AMI**  
Use o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[].RootDeviceType
```

O seguinte é um exemplo de saída.

```
ebs
```

------
#### [ PowerShell ]

**Para identificar o tipo de volume raiz determinado por uma AMI**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image `
    -ImageId ami-0abcdef1234567890).RootDeviceType.Value
```

O seguinte é um exemplo de saída.

```
ebs
```

------

## Tipos de virtualização
<a name="virtualization_types"></a>

As Imagens de máquina da Amazon usam um dos dois tipos de virtualização: paravirtual (PV) ou máquina virtual de hardware (HVM). As diferenças principais entre as AMIs PV e HVM são a maneira como elas inicializam e se podem aproveitar extensões especiais de hardware (CPU, rede e armazenamento) para melhor performance. As AMIs do Windows são AMIs HVM.

A tabela a seguir compara AMIs de HVM e PV.


| Característica | HVM | PV | 
| --- | --- | --- | 
| Descrição | As AMIs HVM são apresentadas com um conjunto totalmente virtualizado de hardware e inicialização ao executar o registro de inicialização mestre do dispositivo de blocos raiz da sua imagem. Esse tipo de virtualização permite a execução de um sistema operacional diretamente em uma máquina virtual, sem qualquer modificação, como se tivesse sido executada em hardware bare metal. O sistema do host Amazon EC2 emula algum ou todos os hardwares subjacentes apresentados ao guest. | As AMIs PV são inicializadas com um bootloader especial chamado PV-GRUB, que começa o ciclo de inicialização e encadeia e carrega o kernel especificado no arquivo menu.lst da sua imagem. Os convidados paravirtuais podem ser executados em hardware de host que não é explicitamente compatível para virtualização. Para obter mais informações sobre o PV-GRUB e seu uso no Amazon EC2, consulte [User provided kernels](https://docs.aws.amazon.com/linux/al2/ug/UserProvidedKernels.html). | 
| Tipos de instâncias compatíveis | Todos os tipos de instância da geração atual são compatíveis com AMIs HVM. | Os seguintes tipos de instância da geração anterior são compatíveis com AMIs PV: C1, C3, M1, M3, M2 e T1. Os tipos de instância da geração atual não são compatíveis com AMIs PV. | 
| Suporte para extensões de hardware | Os guests HVM podem aproveitar as extensões de hardware que fornecem acesso rápido ao hardware subjacente no sistema host. Eles são necessários para usar rede aperfeiçoada e processamento de GPU. Para passar instruções à rede especializada e aos dispositivos de GPU, o SO precisa ter acesso à plataforma de hardware nativa; a virtualização de HVM fornece esse acesso. Para obter mais informações, consulte [Redes aperfeiçoadas para instâncias do Amazon EC2](enhanced-networking.md). | Não, eles não podem se beneficiar de extensões de hardware especiais, como rede aperfeiçoada ou processamento de GPU. | 
| [Como encontrar](finding-an-ami.md) | Verifique se o tipo de virtualização da AMI está definido como hvm usando o console ou o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html). | Verifique se o tipo de virtualização da AMI está definido como paravirtual usando o console ou o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html). | 

**PV em HVM**  
Os guests paravirtuais tradicionalmente se saem melhor com operações de armazenamento e rede que os guests de HVM, pois podem aproveitar drivers especiais para E/S que evitaram as despesas gerais de emulação de hardware de rede e de disco, enquanto os guests HVM tiveram de converter essas instruções para o hardware emulado. Agora, esses drivers PV estão disponíveis para guests HVM, de forma que os sistemas operacionais que não puderem ser movidos para execução em um ambiente paravirtualizado ainda poderão ver vantagens de performance no armazenamento e na E/S de rede usando-os. Com esses drivers de PV em HVM, os convidados recebem performance igual, ou melhor, que os guests paravirtuais.

# Encontrar uma AMI que atenda aos requisitos da instância do EC2
<a name="finding-an-ami"></a>

Uma AMI inclui os componentes e as aplicações, como o sistema operacional e o tipo de volume raiz, necessários para iniciar uma instância. Para executar uma instância, você precisa encontrar uma AMI atenda às suas necessidades.

Ao selecionar uma AMI, considere os seguintes requisitos que você pode ter para as instâncias que deseja iniciar:
+ A região da AWS da AMI já que os IDs da AMI são exclusivos de cada região.
+ O sistema operacional (por exemplo, Linux ou Windows).
+ A arquitetura (por exemplo, 32 bits, 64 bits ou ARM de 64 bits).
+ O tipo de volume raiz (por exemplo, Amazon EBS ou armazenamento de instância).
+ O provedor (por exemplo, Amazon Web Services).
+ Software adicional (por exemplo, SQL Server).

------
#### [ Console ]

É possível selecionar uma AMI da lista ao usar o assistente de inicialização de instâncias, ou pesquisar todas as AMIs disponíveis usando a página **Imagens**.

**Como encontrar uma AMI do Quick Start usando o assistente de inicialização de instâncias**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Na barra de navegação, selecione a região na qual executar as instâncias. Selecione qualquer região que estiver disponível para você, independentemente do seu local. Os IDs da AMI são exclusivos de cada região da AWS.

1. No painel do console, selecione **Launch instance (Executar instância)**.

1. Em **Application and OS Images (Amazon Machine Image)** (Imagens de aplicações e SO [imagem de máquina da Amazon]), escolha **Quick Start** (Início rápido), escolha o sistema operacional (SO) para sua instância e, em **Amazon Machine Image (AMI)** (Imagem de máquina da Amazon [AMI]), selecione uma das AMIs mais usadas na lista. Caso não veja a AMI que deseja usar, escolha **Browse more AMIs** (Pesquisar mais AMIs) para navegar pelo catálogo completo de AMIs. Para obter mais informações, consulte [Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)](ec2-instance-launch-parameters.md#liw-ami).

**Para encontrar uma AMI usando a página de AMIs**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Na barra de navegação, selecione a região na qual executar as instâncias. Selecione qualquer região que estiver disponível para você, independentemente do seu local. Os IDs da AMI são exclusivos de cada região da AWS.

1. No painel de navegação, selecione **AMIs**.

1. (Opcional) Use as opções de filtro e pesquisa para restringir o escopo da lista de AMIs exibidas e ver somente as AMIs correspondentes ao seu critério.

   Por exemplo, para listar todas as AMIs fornecidas pela AWS, escolha **Imagens públicas**. Em seguida, use as opções de pesquisa para aumentar o escopo da lista de AMIs exibidas. Escolha a barra de **Pesquisa** e, no menu, escolha **Owner alias** (Alias do proprietário), depois o operador **=** e, em seguida, o valor **amazon**. Para encontrar AMIs que correspondam a uma plataforma específica, por exemplo, Linux ou Windows, escolha novamente a barra **Pesquisar** para escolher **Plataforma**, depois o operador **=** e, em seguida, o sistema operacional na lista fornecida.

1. (Opcional) Escolha o ícone **Preferências** para definir quais atributos da imagem serão exibidos, como o tipo do volume raiz. Como alternativa, é possível selecionar uma AMI na lista e visualizar suas propriedades na guia **Details** (Detalhes).

1. Antes de selecionar uma AMI, é importante que você verifique se ela é baseada em um armazenamento de instâncias ou no Amazon EBS e se você está ciente dos efeitos dessa diferença. Para obter mais informações, consulte [Tipo do volume de raiz](ComponentsAMIs.md#storage-for-the-root-device).

1. Para iniciar uma instância a partir dessa AMI, selecione-a e escolha **Iniciar instância a partir da imagem**. Para obter informações sobre como iniciar uma instância usando o console, consulte [Executar uma instância do EC2 usando o assistente de inicialização de instâncias no console](ec2-launch-instance-wizard.md). Se você não estiver pronto para executar a instância agora, anote o ID da AMI para consultar depois.

------
#### [ AWS CLI ]

Use o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) para encontrar uma AMI que atenda aos seus requisitos. Por padrão, esse comando retorna todas as AMIs públicas, de sua propriedade e compartilhadas com você.

**Para encontrar uma AMI de propriedade da Amazon**  
Use o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) com a opção `--owners`.

```
aws ec2 describe-images --owners amazon
```

**Para encontrar uma AMI do Windows**  
Adicione o seguinte filtro para exibir somente AMIs do Windows.

```
--filters "Name=platform,Values=windows"
```

**Para encontrar uma AMI baseada no EBS**  
Adicione o seguinte filtro para exibir somente AMIs baseadas no Amazon EBS.

```
--filters "Name=root-device-type,Values=ebs"
```

------
#### [ PowerShell ]

Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) para encontrar uma AMI que atenda aos seus requisitos. Por padrão, esse cmdlet retorna todas as AMIs públicas, de sua propriedade ou compartilhadas com você.

**Para encontrar uma AMI de propriedade da Amazon**  
Use o comando [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) com o parâmetro `-Owner`.

```
Get-EC2Image -Owner amazon
```

**Para encontrar uma AMI do Windows**  
Adicione o seguinte filtro para exibir somente AMIs do Windows.

```
-Filter @{Name="platform"; Values="windows"}
```

Para mais exemplos, consulte [Find an Amazon Machine Image Using Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-ec2-get-amis.html) no *Guia do usuário do Ferramentas da AWS para PowerShell*.

------

**Recursos relacionados**

Para obter mais informações sobre AMIs para um sistema operacional específico, consulte o seguinte:
+ Amazon Linux 2023: [AL2023 on Amazon EC2](https://docs.aws.amazon.com/linux/al2023/ug/ec2.html) no *Guia do usuário do Amazon Linux 2023*
+ Ubuntu: [Amazon EC2 AMI Locator](https://cloud-images.ubuntu.com/locator/ec2/) no *site sobre o Ubuntu da Canonical*
+ RHEL: [Red Hat Enterprise Linux Images (AMI) Available on Amazon Web Services (AWS)](https://access.redhat.com/solutions/15356) no site da Red Hat
+ Windows Server: [Referência da AMI do Windows da AWS](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/windows-amis.html)

Para obter informações sobre AMIs que você pode assinar no AWS Marketplace, consulte [AMIs pagas no AWS Marketplace para instâncias do Amazon EC2](paid-amis.md).

Para obter informações sobre como usar o Systems Manager para ajudar seus usuários a encontrar a AMI mais recente que devem usar ao iniciar uma instância, consulte o seguinte:
+ [Referência às AMIs usando parâmetros do Systems Manager](using-systems-manager-parameter-to-find-AMI.md)
+ [Referência às AMIs mais recentes usando parâmetros públicos do Systems Manager](finding-an-ami-parameter-store.md)

# Referência às AMIs usando parâmetros do Systems Manager
<a name="using-systems-manager-parameter-to-find-AMI"></a>

Quando você inicia uma instância usando o assistente de inicialização de instâncias do EC2 no console do Amazon EC2, pode selecionar uma AMI da lista ou selecionar um parâmetro do AWS Systems Manager que aponta para um ID de AMI (descrito nesta seção). Se usar o código de automação para executar as instâncias, será possível especificar o parâmetro do Systems Manager em vez do ID de AMI.

Um parâmetro do Systems Manager é um par de chave-valor definido pelo cliente que pode ser criado no repositório de parâmetros do Systems Manager. O repositório de parâmetros fornece um armazenamento central para externalizar os valores de configuração da aplicação. Para obter mais informações, consulte o [Parameter Store do AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) no *Guia do usuário do AWS Systems Manager*.

Ao criar um parâmetro que aponte para um ID de AMI, especifique o tipo de dado como `aws:ec2:image`. Especificar esse tipo de dado garante que, quando o parâmetro for criado, modificado ou validado, o valor dele será validado como um ID da AMI. Para obter mais informações, consulte [Suporte a parâmetro nativo para IDs de imagem de máquina da Amazon](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html) no *Guia do usuário do AWS Systems Manager*.

**Topics**
+ [Casos de uso](#systems-manager-parameter-use-case)
+ [Permissões](#systems-manager-permissions)
+ [Limitações](#AMI-systems-manager-parameter-limitations)
+ [Executar uma instância usando um parâmetro de Systems Manager](#systems-manager-parameter-launch-instance)

## Casos de uso
<a name="systems-manager-parameter-use-case"></a>

Ao usar os parâmetros do Systems Manager para apontar para IDs de AMI, é mais fácil para os usuários selecionar a AMI correta ao iniciar instâncias. Os parâmetros do Systems Manager também podem simplificar a manutenção do código de automação.

**Mais fácil para os usuários**

Se você precisar que as instâncias sejam iniciadas usando uma AMI específica, e se essa AMI for atualizada regularmente, recomendamos que você exija que os usuários selecionem um parâmetro do Systems Manager para localizar a AMI. Exigir que os usuários selecionem um parâmetro do Systems Manager garante que a AMI mais recente seja usada para iniciar instâncias.

Por exemplo, todo mês é possível criar em sua organização uma versão da AMI que tenha os patches mais recentes do sistema operacional e da aplicação. Além disso, exija que os usuários executem instâncias usando a versão mais recente da AMI. Para garantir que os usuários usem a versão mais recente, é possível criar um parâmetro do Systems Manager (por exemplo, `golden-ami`) que aponte para o ID da AMI correta. Toda vez que uma versão da AMI é criada, você atualiza o valor do ID de AMI no parâmetro para que ele sempre aponte para a AMI mais recente. Os usuários não precisam saber sobre as atualizações periódicas da AMI, porque eles continuarão selecionando sempre o mesmo parâmetro do Systems Manager todas as vezes. Usando um parâmetro do Systems Manager para a AMI, você facilita a seleção da AMI correta para uma inicialização da instância.

**Simplificar a manutenção do código de automação**

Se usar o código de automação para executar as instâncias, será possível especificar o parâmetro do Systems Manager em vez do ID de AMI. Se uma versão da AMI for criada, altere o valor do ID da AMI no parâmetro para que ele aponte para a AMI mais recente. O código de automação que faz referência ao parâmetro não precisa ser modificado toda vez que uma versão da AMI for criada. Isso simplifica a manutenção da automação e ajuda a reduzir os custos de implantação.

**nota**  
As instâncias em execução não são afetadas quando você altera o ID da AMI para o qual o parâmetro do Systems Manager aponta.

## Permissões
<a name="systems-manager-permissions"></a>

Se você usar parâmetros do Systems Manager que direcionem para IDs de AMI no assistente de inicialização de instâncias, deverá adicionar as seguintes permissões à política do IAM:
+ `ssm:DescribeParameters`: concede permissão para visualizar e selecionar os parâmetros do Systems Manager.
+ `ssm:GetParameters`: concede permissão para recuperar os valores dos parâmetros do Systems Manager. 

Também é possível restringir o acesso a parâmetros específicos do Systems Manager. Para obter mais informações e exemplos de políticas do IAM, consulte [Exemplo: uso do assistente de início de instância do EC2](iam-policies-ec2-console.md#ex-launch-wizard).

## Limitações
<a name="AMI-systems-manager-parameter-limitations"></a>

As AMIs e os parâmetros do Systems Manager são específicos da região. Para usar o mesmo nome de parâmetro do Systems Manager entre regiões, crie um parâmetro do Systems Manager em cada região com o mesmo nome (por exemplo, `golden-ami`). Em cada região, aponte o parâmetro do Systems Manager para uma AMI nessa região.

Os nomes dos parâmetros diferenciam maiúsculas de minúsculas. As barras invertidas para o nome do parâmetro só são necessárias quando o parâmetro faz parte de uma hierarquia, por exemplo, `/amis/production/golden-ami`. Será possível omitir a barra invertida se o parâmetro não fizer parte de uma hierarquia.

## Executar uma instância usando um parâmetro de Systems Manager
<a name="systems-manager-parameter-launch-instance"></a>

Quando você inicia uma instância, em vez de especificar um ID de AMI, pode especificar um parâmetro do Systems Manager que aponta para um ID de AMI.

Para especificar o parâmetro no programa, use a sintaxe a seguir, onde `resolve:ssm` é o prefixo padrão e `parameter-name` é o nome exclusivo do parâmetro.

```
resolve:ssm:parameter-name
```

Os parâmetros do Systems Manager são compatíveis com versão. Cada iteração de um parâmetro recebe um número de versão exclusivo. É possível referenciar a versão do parâmetro como se segue, onde `version` é o número exclusivo da versão. Por padrão, a versão mais recente do parâmetro é usada quando nenhuma versão é especificada.

```
resolve:ssm:parameter-name:version
```

Para iniciar uma instância usando um parâmetro público fornecido pela AWS, consulte [Referência às AMIs mais recentes usando parâmetros públicos do Systems Manager](finding-an-ami-parameter-store.md).

------
#### [ Console ]

**Para encontrar uma AMI usando um parâmetro do Systems Manager**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Na barra de navegação, selecione a região na qual executar as instâncias. Selecione qualquer região que estiver disponível para você, independentemente do seu local.

1. No painel do console, selecione **Launch instance (Executar instância)**.

1. Em **Application and OS Images (Amazon Machine Image)** (Imagens de aplicações e sistemas operacionais [imagem de máquina da Amazon]), escolha **Browse more AMIs** (Procurar mais AMIs).

1. Escolha o botão de seta à direita da barra de pesquisa e escolha **Search by Systems Manager parameter** (Pesquisar por parâmetro do Systems Manager).

1. Em **Systems Manager parameter (Parâmetro do Systems Manager)**, selecione um parâmetro. O ID da AMI correspondente é exibido abaixo de **Currently resolves to** (Resolve atualmente para).

1. Escolha **Pesquisar**. As AMIs correspondentes ao ID da AMI são exibidas na lista.

1. Selecione a AMI na lista e escolha **Select (Selecionar)**.

Para obter mais informações sobre como iniciar uma instância usando o assistente de inicialização de instância, consulte [Executar uma instância do EC2 usando o assistente de inicialização de instâncias no console](ec2-launch-instance-wizard.md).

------
#### [ AWS CLI ]

**Para iniciar uma instância usando um parâmetro de Systems Manager**  
Use o comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) com a opção `--image-id`. Este exemplo usa um parâmetro do Systems Manager denominado **golden-ami**, que especifica um ID de AMI.

```
--image-id resolve:ssm:/golden-ami
```

É possível criar versões de um parâmetro do Systems Manager. O exemplo a seguir especifica a versão 2 do parâmetro **golden-ami**.

```
--image-id resolve:ssm:/golden-ami:2
```

------
#### [ PowerShell ]

**Para iniciar uma instância usando um parâmetro de Systems Manager**  
Use o cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) com o parâmetro `-ImageId`. Este exemplo usa um parâmetro do Systems Manager denominado **golden-ami**, que especifica um ID de AMI.

```
-ImageId "resolve:ssm:/golden-ami"
```

É possível criar versões de um parâmetro do Systems Manager. O exemplo a seguir especifica a versão 2 do parâmetro **golden-ami**.

```
-ImageId "resolve:ssm:/golden-ami:2"
```

------

# Referência às AMIs mais recentes usando parâmetros públicos do Systems Manager
<a name="finding-an-ami-parameter-store"></a>

O AWS Systems Manager fornece parâmetros públicos para as AMIs públicas mantidas pela AWS. É possível usar os parâmetros públicos ao iniciar instâncias para garantir que está usando as AMIs mais recentes. Por exemplo, o parâmetro público `/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-arm64` está disponível em todas as regiões e sempre direciona para a versão mais recente da AMI do Amazon Linux 2023 para a arquitetura de arm64 em uma determinada região.

Os parâmetros públicos estão disponíveis ao usar os seguintes caminhos:
+ **Linux** – `/aws/service/ami-amazon-linux-latest`
+ **Windows** – `/aws/service/ami-windows-latest`

Para obter mais informações, consulte [Trabalhar com parâmetros públicos](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-public-parameters.html) no *Guia do usuário do AWS Systems Manager*

## Listar as AMIs do Amazon Linux
<a name="list-ami-amazon-linux-latest"></a>

------
#### [ AWS CLI ]

**Para listar as AMIs do Linux na região atual da AWS**  
Use o seguinte comando [get-parameters-by-path](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html). O valor do parâmetro `--path` é específico para as AMIs do Linux.

```
aws ssm get-parameters-by-path \
    --path /aws/service/ami-amazon-linux-latest \
    --query "Parameters[].Name"
```

------
#### [ PowerShell ]

**Para listar as AMIs do Linux na região atual da AWS**  
Use o cmdlet [Get-SSMParametersByPath](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-SSMParametersByPath.html).

```
Get-SSMParametersByPath `
    -Path "/aws/service/ami-amazon-linux-latest" | `
    Sort-Object Name | Format-Table Name
```

------

## Listar as AMIs do Windows
<a name="list-ami-windows-latest"></a>

------
#### [ AWS CLI ]

**Para listar as AMIs do Windows na região atual da AWS**  
Use o seguinte comando [get-parameters-by-path](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html). O valor do parâmetro `--path` é específico para as AMIs do Windows.

```
aws ssm get-parameters-by-path \
    --path /aws/service/ami-windows-latest \
    --query "Parameters[].Name"
```

------
#### [ PowerShell ]

**Para listar as AMIs do Windows na região atual da AWS**  
Use o cmdlet [Get-SSMParametersByPath](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-SSMParametersByPath.html).

```
Get-SSMParametersByPath `
    -Path "/aws/service/ami-windows-latest" | `
    Sort-Object Name | Format-Table Name
```

------

## Iniciar uma instância usando um parâmetro público
<a name="launch-instance-public-parameter"></a>

Para especificar o parâmetro público ao iniciar uma instância, use a seguinte sintaxe: `resolve:ssm:public-parameter`, onde `resolve:ssm` é o prefixo padrão e `public-parameter` é o caminho e o nome do parâmetro público.

------
#### [ AWS CLI ]

**Como executar uma instância usando um parâmetro público**  
Use o comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) com a opção `--image-id`. O exemplo especifica um parâmetro público do Systems Manager para o ID da imagem com a finalidade de iniciar uma instância usando a mais nova AMI do Amazon Linux 2023

```
--image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64
```

------
#### [ PowerShell ]

**Como executar uma instância usando um parâmetro público**  
Use o cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) com o parâmetro `-ImageId`. O exemplo especifica um parâmetro público do Systems Manager para o ID da imagem com a finalidade de iniciar uma instância usando a mais nova AMI do Windows Server 2022.

```
-ImageId "resolve:ssm:/aws/service/ami-windows-latest/Windows_Server-2022-English-Full-Base"
```

------

Para obter mais exemplos que usam parâmetros do Systems Manager, consulte [Query for the latest Amazon Linux AMI IDs Using AWS Systems Manager Parameter Store](https://aws.amazon.com/blogs/compute/query-for-the-latest-amazon-linux-ami-ids-using-aws-systems-manager-parameter-store/) e [Query for the Latest Windows AMI Using AWS Systems Manager Parameter Store](https://aws.amazon.com/blogs/mt/query-for-the-latest-windows-ami-using-systems-manager-parameter-store/).

# AMIs pagas no AWS Marketplace para instâncias do Amazon EC2
<a name="paid-amis"></a>

Uma *AMI paga* é uma AMI que está listada para venda no AWS Marketplace. O AWS Marketplace é uma loja online na qual é possível adquirir o software executado na AWS, incluindo as AMIs usadas na execução da instância do EC2. As AMIs do AWS Marketplace são organizadas em categorias, como Ferramentas para desenvolvedores, o que permite que você encontre produtos para atender às suas necessidades. Para obter mais informações sobre o AWS Marketplace, consulte o site do [AWS Marketplace](https://aws.amazon.com/marketplace).

É possível comprar AMIs no AWS Marketplace de terceiros, incluindo AMIs equipadas com contratos de serviço de organizações como a Red Hat. Além disso, é possível criar uma AMI e vendê-la no AWS Marketplace para outros usuários do Amazon EC2. A criação de uma AMI segura, protegida e utilizável para consumo público é um processo bastante direto, quando você segue algumas diretrizes simples. Para obter informações sobre como criar e usar AMIs compartilhadas, consulte [Saiba mais sobre o uso da AMI compartilhada no Amazon EC2](sharing-amis.md).

Executar uma instância de uma AMI paga é o mesmo que executar uma instância de qualquer outra AMI. Nenhum parâmetro adicional é necessário. A instância é cobrada de acordo com as taxas definidas pelo proprietário da AMI, bem como de acordo com as taxas de uso padrão dos serviços Web relacionados, por exemplo, a taxa por hora para a execução de um tipo de instância m5.small no Amazon EC2. Taxas adicionais também podem ser cobradas. O proprietário da AMI paga pode confirmar se uma determinada instância foi executada usando essa AMI paga. 

**Importante**  
O Amazon DevPay não está mais aceitando novos vendedores ou produtos. O AWS Marketplace agora é a única plataforma unificada de comércio eletrônico para vender software e serviços por meio da AWS. Para obter informações sobre como implantar e vender software do AWS Marketplace, consulte [Como vender no AWS Marketplace](https://aws.amazon.com/marketplace/partners/management-tour). O AWS Marketplace oferece suporte para AMIs com o Amazon EBS.

**Topics**
+ [Vender sua AMI no AWS Marketplace](#selling-your-ami)
+ [Localizar uma AMI paga](using-paid-amis-finding-paid-ami.md)
+ [Comprar uma AMI paga no AWS Marketplace](using-paid-amis-purchasing-paid-ami.md)
+ [Recuperar o código do produto do AWS Marketplace da sua instância](get-product-code.md)
+ [Usar suporte pago para as ofertas compatíveis do AWS Marketplace](using-paid-amis-support.md)
+ [Faturas para AMI pagas e compatíveis](#using-paid-amis-bills)
+ [Gerenciar suas assinaturas do AWS Marketplace](marketplace-manage-subscriptions.md)

## Vender sua AMI no AWS Marketplace
<a name="selling-your-ami"></a>

É possível vender a AMI usando o AWS Marketplace. O AWS Marketplace oferece uma experiência de compras organizada. Além disso, o AWS Marketplace também oferece suporte a recursos da AWS, como AMIs baseadas no Amazon EBS, instâncias reservadas e instâncias spot.

Para obter informações sobre como vender a AMI no AWS Marketplace, consulte [Como vender no AWS Marketplace](https://aws.amazon.com/marketplace/partners/management-tour). 

# Localizar uma AMI paga
<a name="using-paid-amis-finding-paid-ami"></a>

Uma AMI paga é uma Imagem de máquina da Amazon (AMI) que está disponível para compra. Uma AMI paga também tem um código de produto. É possível encontrar AMIs que estão disponíveis para compra no AWS Marketplace.

------
#### [ Console ]

**Para encontrar uma AMI paga**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**. 

1. No primeiro filtro, escolha **Imagens públicas**.

1. Execute um destes procedimentos:
   + Se você souber o código do produto, escolha **Product Code** (Código do produto), **=** e depois insira o código do produto.
   + Se você não souber o código do produto, na barra de pesquisa, especifique o seguinte filtro: **Owner alias=aws-marketplace**. Especifique filtros adicionais conforme necessário.

1. Salve o ID da AMI.

------
#### [ AWS CLI ]

**Para encontrar uma AMI paga**  
Use o seguinte comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images --owners aws-marketplace
```

A saída incluirá um grande número de imagens. É possível especificar filtros para ajudar você a determinar de qual AMI precisa. Após encontrar uma AMI, especifique seu ID no comando a seguir para obter o código do produto.

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[*].ProductCodes[].ProductCodeId
```

O seguinte é um exemplo de saída.

```
[
    "cdef1234abc567def8EXAMPLE"
]
```

Se você souber o código do produto, poderá filtrar os resultados por código do produto. Esse exemplo retorna a AMI mais recente com o código do produto especificado.

```
aws ec2 describe-images \
    --filters "Name=product-code,Values=cdef1234abc567def8EXAMPLE" \
    --query "sort_by(Images, &CreationDate)[-1].[ImageId]"
```

------
#### [ PowerShell ]

**Para encontrar uma AMI paga**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
Get-EC2Image -Owner aws-marketplace
```

A saída incluirá um grande número de imagens. É possível especificar filtros para ajudar você a determinar de qual AMI precisa. Após encontrar uma AMI, especifique seu ID no comando a seguir para obter o código do produto.

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).ProductCodes
```

O seguinte é um exemplo de saída.

```
ProductCodeId             ProductCodeType
-------------             ---------------
cdef1234abc567def8EXAMPLE marketplace
```

Se você souber o código do produto, poderá filtrar os resultados por código do produto. Esse exemplo retorna a AMI mais recente com o código do produto especificado.

```
(Get-EC2Image -Owner aws-marketplace -Filter @{"Name"="product-code";"Value"="cdef1234abc567def8EXAMPLE"} | sort CreationDate -Descending | Select-Object -First 1).ImageId
```

------

# Comprar uma AMI paga no AWS Marketplace
<a name="using-paid-amis-purchasing-paid-ami"></a>

Você deve primeiro se inscrever em (comprar) uma AMI paga para poder executar uma instância do Amazon EC2 usando a AMI.

Normalmente, um vendedor de uma AMI paga apresenta informações sobre as AMIs, incluindo o preço e um link no qual é possível comprá-las. Quando você clicar no link, será solicitado que você faça login na AWS e, em seguida, será possível comprar a AMI.

## Comprar uma AMI paga usando o console
<a name="purchase-paid-ami-console"></a>

É possível comprar uma AMI paga usando o assistente de execução do Amazon EC2. Para obter mais informações, consulte [Executar uma instância do Amazon EC2 em uma AMI do AWS Marketplace](launch-marketplace-console.md).

## Assinar um produto usando o AWS Marketplace
<a name="subscribe-to-paid-ami"></a>

Para usar o AWS Marketplace, você deve ter uma Conta da AWS. Para executar instâncias de produtos do AWS Marketplace, é necessário estar cadastrado para usar o serviço Amazon EC2 e ter assinado o produto do qual iniciar a instância. É possível usar um dos seguintes métodos para se inscrever em produtos no AWS Marketplace:
+ **Site do AWS Marketplace**: é possível executar o software pré-configurado rapidamente com o recurso de implantação de um clique. Para obter mais informações, consulte [AMI-based products no AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-server-products.html).
+ **Assistente de execução do Amazon EC2**: é possível procurar uma AMI e executar uma instância diretamente do assistente. Para obter mais informações, consulte [Executar uma instância do Amazon EC2 em uma AMI do AWS Marketplace](launch-marketplace-console.md).

# Recuperar o código do produto do AWS Marketplace da sua instância
<a name="get-product-code"></a>

Recupere o código do produto do AWS Marketplace para sua instância usando os metadados da instância. Se a instância tiver um código de produto, o Amazon EC2 o retornará. Para obter mais informações sobre como recuperar os metadados, consulte [Acessar metadados de instância para uma instância do EC2](instancedata-data-retrieval.md).

------
#### [ IMDSv2 ]

**Linux**  
Execute o seguinte comando em sua instância Linux.

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

**Windows**  
Execute os seguintes cmdlets na sua instância Windows.

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/product-codes
```

------
#### [ IMDSv1 ]

**Linux**  
Execute o seguinte comando em sua instância Linux.

```
curl http://169.254.169.254/latest/meta-data/product-codes
```

**Windows**  
Execute o seguinte comando em sua instância Windows.

```
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/product-codes
```

------

# Usar suporte pago para as ofertas compatíveis do AWS Marketplace
<a name="using-paid-amis-support"></a>

O Amazon EC2 também permite que desenvolvedores ofereçam suporte para o software (ou AMI derivadas). Os desenvolvedores podem criar produtos de suporte nos quais é possível se cadastrar para usar. Durante o cadastro no produto de suporte, o desenvolvedor oferece a você um código de produto, que é necessário associar à sua própria AMI. Isso permite ao desenvolvedor confirmar que sua instância está qualificada para suporte. Também garante que quando você executar instâncias do produto, você será cobrado de acordo com os termos do produto especificado pelo desenvolvedor. 

**Limitações**
+ Depois de definir o atributo de código de produto, ele não poderá ser alterado nem removido.
+ Você não pode usar um produto de suporte com Instâncias reservadas. Você sempre paga o preço que está especificado pelo vendedor do produto de suporte.

------
#### [ AWS CLI ]

**Para associar um código de produto à sua AMI**  
Use o comando [modify-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html).

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --product-codes "cdef1234abc567def8EXAMPLE"
```

------
#### [ PowerShell ]

**Para associar um código de produto à sua AMI**  
Use o cmdlet [Edit-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html).

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -ProductCode "cdef1234abc567def8EXAMPLE"
```

------

## Faturas para AMI pagas e compatíveis
<a name="using-paid-amis-bills"></a>

No final de cada mês, você recebe um e-mail com o valor que foi cobrado de seu cartão de crédito pelo uso de todas as AMIs pagas ou compatíveis durante o mês. Essa conta é separada de sua conta normal do Amazon EC2. Para obter mais informações, consulte [Pagamento de produtos](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-paying-for-products.html) no *Guia do comprador do AWS Marketplace*.

# Gerenciar suas assinaturas do AWS Marketplace
<a name="marketplace-manage-subscriptions"></a>

No site do AWS Marketplace, é possível verificar os detalhes de sua assinatura, visualizar as instruções de uso do fornecedor, gerenciar as assinaturas, etc.

## Verificar os detalhes da assinatura do
<a name="check-sub-details"></a>

**Para verificar os detalhes de sua assinatura**

1.  Faça login no [AWS Marketplace](https://aws.amazon.com/marketplace).

1. Escolha **Your Marketplace Account**.

1. Escolha **Manage your software subscriptions**. 

1. Todas as assinaturas atuais estão listadas. Escolha **Instruções de uso** para exibir as instruções específicas sobre o uso do produto, por exemplo, um nome de usuário para se conectar à instância em execução.

## Cancelamento de assinaturas
<a name="cancel-sub"></a>

**nota**  
O cancelamento de uma assinatura não encerra as instâncias executadas com essa AMI. Continuaremos cobrando suas instâncias em execução até que elas sejam encerradas. É necessário encerrar todas as instâncias executadas com a AMI para interromper o faturamento da assinatura.
Depois de cancelar sua assinatura, você não poderá mais executar nenhuma instância dessa AMI. Para usar essa AMI novamente, você precisará assiná-la novamente, no site do AWS Marketplace ou por meio do assistente de inicialização no console do Amazon EC2.

**Para cancelar a assinatura do AWS Marketplace**

1. Para interromper a cobrança da assinatura, certifique-se de ter encerrado todas as instâncias em execução referentes à assinatura.
**Atenção**  
**O encerramento de uma instância é permanente e irreversível.**  
Depois de encerrar uma instância, não será mais possível se conectar a ela e ela não poderá ser recuperada. Todos os volumes anexados do Amazon EBS configurados para serem excluídos no encerramento também serão excluídos permanentemente e não poderão ser recuperados. Todos os dados armazenados em volumes de armazenamento de instância serão perdidos permanentemente. Para obter mais informações, consulte [Como funciona o encerramento de uma instância](how-ec2-instance-termination-works.md).  
Antes de encerrar uma instância, certifique-se de ter feito backup de todos os dados que você precise reter após o encerramento no armazenamento persistente.

   1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. No painel de navegação, escolha **Instances (Instâncias)**.

   1. Selecione a instância e escolha **Estado da instância** e **Encerrar (excluir) instância**.

   1. Quando a confirmação for solicitada, escolha **Encerrar (excluir)**.

1. Inicie a sessão no [AWS Marketplace](https://aws.amazon.com/marketplace), escolha **Your Marketplace Account** (Sua conta do Marketplace) e, depois, **Manage your software subscriptions** (Gerenciar suas assinaturas de software).

1. Escolha **Cancel subscription**. Será solicitada a confirmação do cancelamento. 

# Ciclo de vida da AMI do Amazon EC2
<a name="ami-lifecycle"></a>

Uma Imagem de máquina da Amazon (AMI) é uma imagem que contém a configuração de software necessária para configurar e inicializar uma instância. Especifique uma AMI ao iniciar uma instância. É possível usar as AMIs fornecidas pela Amazon ou criar as suas próprias AMIs. A AMI deve estar localizada na Região da AWS em que você deseja iniciar a instância.

O ciclo de vida de uma AMI inclui sua criação, cópia, descontinuação, desabilitação e exclusão (cancelamento do registro).

**Criar AMIs.** Embora a Amazon forneça AMIs que podem ser usadas para iniciar as suas instâncias, você pode criar próprias AMIs personalizadas, de acordo com as suas necessidades. Para criar uma AMI personalizada, inicie uma instância em uma AMI existente, personalize a instância (por exemplo, instale software e defina as configurações do sistema operacional) e depois crie uma AMI na instância. Todas as personalizações da instância são salvas na nova AMI para que as instâncias iniciadas na nova AMI incluam essas personalizações.

**AMIs atestáveis.** Para criar uma AMI compatível com a atestação de instância do EC2, consulte [AMIs atestáveis](attestable-ami.md).

**Copiar AMIs.** É possível usar uma AMI para iniciar uma instância apenas na Região da AWS em que a AMI está localizada. Se você precisar iniciar instâncias com a mesma configuração em várias regiões, copie a AMI para as outras regiões.

**Descontinuar AMIs.** Para marcar uma AMI como superada ou desatualizada, você pode definir uma data de descontinuação imediata ou futura. As AMIs descontinuadas não constam das listagens de AMIs, mas os usuários e serviços podem continuar usando as AMIs descontinuadas se souberem seu ID.

**Desabilitar AMIs.** Para impedir temporariamente o uso de uma AMI, você pode desabilitá-la. Quando uma AMI é desabilitada, ela não pode ser usada para inicializar novas instâncias. No entanto, se você reabilitar a AMI, ela poderá ser usada para inicializar instâncias novamente. Observação: a desabilitação de uma AMI não afeta as instâncias existentes que já foram inicializadas a partir dela.

**Cancelar (excluir) o registro de AMIs.** Quando não precisar mais de uma AMI, será possível cancelar seu registro, evitando que ela seja usada para iniciar novas instâncias. Se a AMI atender a uma regra de retenção, ela será movida para a Lixeira, onde poderá ser restaurada antes que o período de retenção expire, depois do que será excluída permanentemente. Se não atender a nenhuma regra de retenção, ela será imediatamente excluída de modo permanente. Observe que cancelar o registro de uma AMI não afeta as instâncias que foram inicializadas na AMI.

**Automatizar o ciclo de vida da AMI.** É possível usar Amazon Data Lifecycle Manager para automatizar a criação, a retenção, a cópia, a defasagem e a exclusão de AMIs baseadas no Amazon EBS e seus snapshots de backup. Você também pode usar o EC2 Image Builder para automatizar a criação, o gerenciamento e a implantação das AMIs personalizadas. [Para obter mais informações, consulte [Automate backups with Amazon Data Lifecycle Manager](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-lifecycle.html) no *Amazon EBS User Guide* e no EC2 Image Builder User Guide](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html).

**Topics**
+ [Criar uma AMI](creating-an-ami-ebs.md)
+ [Criação de uma AMI baseada no Amazon S3](creating-an-ami-instance-store.md)
+ [Criar uma AMI usando o Sysprep do Windows](ami-create-win-sysprep.md)
+ [Copiar um AMI](CopyingAMIs.md)
+ [Armazenar e restaurar uma AMI](ami-store-restore.md)
+ [Ancestralidade da AMI](ami-ancestry.md)
+ [Uso de AMIs](ec2-ami-usage.md)
+ [Defasar uma AMI](ami-deprecate.md)
+ [Desabilitar uma AMI](disable-an-ami.md)
+ [Cancelar o registro de uma AMI](deregister-ami.md)

# Criação de uma AMI baseada no Amazon EBS
<a name="creating-an-ami-ebs"></a>

É possível criar sua própria AMI baseada no Amazon EBS com uma instância do Amazon EC2 ou com o snapshot do volume raiz de uma instância do Amazon EC2.

Para criar uma AMI baseada no Amazon EBS com uma instância, comece executando uma instância usando uma AMI baseada no Amazon EBS existente. Essa AMI pode ser uma que você obteve do AWS Marketplace, criada usando [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/what-is-vmimport.html) ou qualquer outra AMI que você possa acessar. Depois de personalizar a instância para atender aos seus requisitos específicos, crie e registre uma nova AMI. É possível usar a nova AMI para executar novas instâncias com suas personalizações.

**nota**  
Para criar uma AMI compatível com a atestação de instância do EC2, consulte [AMIs atestáveis](attestable-ami.md).

Os procedimentos descritos abaixo funcionam para instâncias do Amazon EC2 baseada em volumes do Amazon Elastic Block Store (Amazon EBS) criptografados (incluindo o volume raiz), bem como para volumes descriptografados.

O processo de criação de AMIs é diferente para AMIs baseadas no Amazon S3. Para obter mais informações, consulte [Criação de uma AMI baseada no Amazon S3](creating-an-ami-instance-store.md).

**Topics**
+ [Visão geral da criação de AMI usando uma instância](#process-creating-an-ami-ebs)
+ [Criação de uma AMI usando uma instância](#how-to-create-ebs-ami)
+ [Criar uma AMI de um snapshot](#creating-launching-ami-from-snapshot)

## Visão geral da criação de AMI usando uma instância
<a name="process-creating-an-ami-ebs"></a>

O diagrama a seguir resume o processo de criação de uma AMI baseada no Amazon EBS a partir de uma instância do EC2 em execução: comece com uma AMI existente, inicie uma instância, personalize-a, crie uma nova AMI a partir dela e, por fim, inicie uma instância de sua nova AMI. Os números no diagrama correspondem aos números na descrição a seguir.

![\[Fluxo de trabalho para a criação de uma AMI de uma instância\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/running-instance.png)


**1 – AMI \$11: comece com uma AMI existente**  
Encontre uma AMI existente semelhante à AMI que você deseja criar. Pode ser uma AMI que você obteve do AWS Marketplace, uma AMI que você criou usando [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/what-is-vmimport.html) ou qualquer outra AMI que você possa acessar. Você personalizará essa AMI para suas necessidades.  
No diagrama, **EBS root volume snapshot \$11** (Snapshot do volume raiz do EBS \$11) indica que a AMI é uma AMI baseada no Amazon EBS e que as informações sobre o volume raiz são armazenadas neste snapshot.

**2 – iniciar instância a partir da AMI existente**  
A maneira de configurar uma AMI é iniciar uma instância a partir da AMI na qual você gostaria de basear sua nova AMI e, em seguida, personalizar a instância (indicado em **3** no diagrama). Em seguida, você vai criar uma nova AMI que inclua as personalizações (indicado em **4** no diagrama).

**3 – instância do EC2 \$11: personalize a instância**  
Conecte-se à sua instância e personalize-a para suas necessidades. Sua nova AMI incluirá essas personalizações.  
É possível executar qualquer uma destas ações em sua instância para personalizá-la:  
+ Instalar o software e aplicações
+ Copiar dados
+ Reduzir o tempo de inicialização excluindo arquivos temporários e desfragmentando o disco rígido
+ Anexar volumes adicionais do EBS

**4 – Crie a imagem**  
Quando você cria uma AMI a partir de uma instância, o Amazon EC2 desativa a instância antes de criar a AMI para garantir que tudo na instância seja interrompido e esteja em um estado consistente durante o processo de criação. Se você estiver seguro de que sua instância está em um estado consistente e apropriado para a criação da AMI, poderá informar ao Amazon EC2 para não desativar e reiniciar a instância. Alguns sistemas de arquivos, como o XFS, podem congelar e descongelar atividades, tornando seguro criar a imagem sem reinicializar a instância.  
Durante o processo de criação da AMI, o Amazon EC2 cria snapshots do volume raiz de sua instância e de todos os outros volumes do EBS anexados à sua instância. Você é cobrado pelos snapshots até que você [cancele o registro da AMI](deregister-ami.md) e exclua os snapshots. Se qualquer volume anexado à instância estiver criptografado, a nova AMI só será iniciada com êxito em instâncias com suporte para a criptografia do Amazon EBS.  
Dependendo do tamanho dos volumes, pode levar vários minutos para que o processo de criação da AMI se complete (às vezes até 24 horas). É possível achar mais eficiente criar snapshots de seus volumes antes de criar sua AMI. Dessa forma, apenas snapshots pequenos e incrementais precisam ser criados quando a AMI é criada, e o processo é concluído mais rapidamente (o tempo total para a criação de snapshot permanece o mesmo.)

**5 – AMI \$12: nova AMI**  
Após a conclusão do processo, você terá novos AMI e snapshot (**snapshot \$12**) criados a partir do volume raiz da instância. Se você adicionou volumes de armazenamento de instância ou volumes do EBS à instância, além do volume raiz, o mapeamento de dispositivos de blocos para a nova AMI conterá informações sobre esses volumes.  
O Amazon EC2 registra automaticamente a AMI para você.

**6 – inicie uma instância a partir da nova AMI**  
É possível usar a nova AMI para iniciar uma instância.

**7 – instância do EC2 \$12: nova instância**  
Quando você inicia uma instância usando a nova AMI, o Amazon EC2 cria um novo volume do EBS para o volume raiz da instância usando o snapshot. Se você adicionou volumes de armazenamento de instância ou volumes do EBS ao personalizar a instância, o mapeamento de dispositivos de blocos para a nova AMI conterá informações sobre esses volumes, e os mapeamentos de dispositivos de blocos para as instâncias iniciadas usando a nova AMI também incluirão, de forma automática, informações sobre esses volumes. Os volumes de armazenamento de instâncias especificados no mapeamento de dispositivos de blocos para a nova instância são novos e não contêm dados dos volumes de armazenamento de instâncias da instância usada para criar a AMI. Os dados nos volumes do EBS persistem. Para obter mais informações, consulte [Mapeamento de dispositivos de blocos para volumes em instâncias do Amazon EC2](block-device-mapping-concepts.md).  
Ao criar uma nova instância de uma AMI com suporte do EBS, é necessário inicializar o volume raiz todo o armazenamento adicional EBS antes de colocá-lo em produção. Para obter mais informações, consulte [Inicializar volumes do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-initialize.html) no *Guia do usuário do Amazon EBS*.

## Criação de uma AMI usando uma instância
<a name="how-to-create-ebs-ami"></a>

Caso já tenha uma instância, você pode criar uma AMI dela.

------
#### [ Console ]

**Criar uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Selecione a instância da qual a AMI será criada e escolha **Actions** (Ações), **Image and templates** (Imagem e modelos), **Create image** (Criar imagem).
**dica**  
Se essa opção está desabilitada, sua instância não é uma instância baseada no Amazon EBS.

1. Na página **Create image** (Criar imagem), especifique as seguintes informações:

   1. Em **Image name** (Nome da imagem), insira um nome exclusivo para a imagem com até 127 caracteres.

   1. Em **Image description** (Descrição da imagem), insira uma descrição opcional da imagem, com até 255 caracteres.

   1. Em **Reinicializar instância**, mantenha a caixa de seleção marcada (o padrão) ou desmarque-a.
      + Se **Reinicializar instância** estiver desmarcado, quando o Amazon EC2 criar a nova AMI, ele reinicializará a instância para que ela possa obter snapshots dos volumes anexados enquanto os dados estiverem em repouso, a fim de garantir um estado consistente.
      + Se **Inicializar instância** estiver desmarcado, quando o Amazon EC2 criar a nova AMI, ele não fechará e reinicializará a instância.
**Atenção**  
Se você desmarcar **Inicializar instância**, não poderemos garantir a integridade do sistema de arquivos da imagem criada.

   1. **Volumes da instância**: você pode modificar o volume raiz e adicionar volumes do Amazon EBS e volumes com armazenamento de instância, como mostrado a seguir:

      1. O volume raiz é definido na primeira linha.
         + Para alterar o tamanho do volume raiz, em **Size** (Tamanho), insira o valor necessário.
         + Se você selecionar **Delete on Termination** (Excluir ao encerrar), quando encerrar a instância criada a partir desta AMI, o volume do EBS será excluído. Se você não selecionar **Delete on Termination** (Excluir ao encerrar), quando encerrar a instância, o volume do EBS não será excluído. Para obter mais informações, consulte [Preservação de dados quando uma instância for encerrada](preserving-volumes-on-termination.md).

      1. Para adicionar o volume do EBS; escolha **Add volume** (Adicionar volume) (que acrescenta uma nova linha). Em **Tipo de armazenamento**, escolha **EBS** e preencha os campos da linha. Quando você executa uma instância da nova AMI, os volumes adicionais são anexados automaticamente à instância. Os volumes vazios devem ser formatados e montados. Os volumes baseados em um snapshot devem ser montados.

      1. Para adicionar um volume de armazenamento de instância, consulte [Adicionar volumes de armazenamento de instância a uma AMI do Amazon EC2](adding-instance-storage-ami.md). Quando você executa uma instância da nova AMI, os volumes adicionais são automaticamente inicializados e montados. Esses volumes não contêm dados de volumes de armazenamento de instâncias da instância em execução na qual a AMI foi baseada.

   1. **Destino do snapshot**: se os volumes da instância estiverem em uma zona local que seja compatível com snapshots locais do EBS, escolha onde criar os snapshots da AMI:
      + **Região da AWS**: crie snapshots na região principal da zona local dos volumes.
      + **Zona local da AWS**: crie snapshots na mesma zona local dos volumes.
**nota**  
Essa opção aparece somente em zonas locais compatíveis com snapshots locais do EBS e apenas se a instância foi criada em uma zona local. Se o volume estiver em uma região, essa opção não aparecerá e o snapshot será criado automaticamente na mesma região que o volume. Para obter mais informações, consulte [Local snapshots in Local Zones](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-localzones.html) no *Guia do usuário do Amazon EBS*.
**Importante**  
Todos os snapshots dos volumes da instância devem estar no mesmo local. Verifique a localização dos snapshots existentes. Se algum snapshot existente estiver em um local diferente do destino selecionado, a criação da AMI falhará.

   1. **Tags**: é possível marcar a AMI e os snapshots com as mesmas tags ou pode marcá-los com tags diferentes.
      + Para marcar a AMI e os snapshots com as *mesmas* tags, escolha **Tag image and snapshots together** (Marcar Imagem e snapshots juntos). As mesmas tags são aplicadas à AMI e a cada snapshot criado.
      + Para marcar a AMI e os snapshots com tags *diferentes*, escolha **Tag image and snapshots separately** (Marcar imagem e snapshots separadamente). Diferentes tags são aplicadas à AMI e aos snapshots criados. No entanto, todos os snapshots obtêm as mesmas tags; não é possível marcar cada snapshot com uma tag diferente.

      (Opcional) Para adicionar uma tag, escolha **Add tag** (Adicionar tag) e digite a chave e o valor da tag. Repita esse procedimento para cada tag.

   1. Quando você estiver pronto para criar a AMI, escolha **Create image** (Criar imagem). 

1. Para visualizar o status da AMI enquanto ela estiver sendo criada:

   1. No painel de navegação, selecione **AMIs**.

   1. Defina o filtro como **Owned by me** (De minha propriedade) e encontre a AMI na lista.

      Inicialmente, o status será `pending`, mas deverá mudar para `available` após alguns minutos.

1. (Opcional) Para visualizar o snapshot que foi criado para a nova AMI:

   1. Anote o ID da AMI que você localizou na etapa anterior.

   1. No painel de navegação, escolha **Snapshots**.

   1. Defina o filtro como **Owned by me** (De minha propriedade) e, em seguida, localize o snapshot da novo ID da AMI na coluna **Description** (Descrição).

      Ao iniciar uma instância com essa AMI, o Amazon EC2 usa esse snapshot para criar o volume raiz da instância.

------
#### [ AWS CLI ]

**Criar uma AMI**  
Use o comando [create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html).

```
aws ec2 create-image \
    --instance-id i-1234567890abcdef0 \
    --name "my-web-server" \
    --description "My web server image" \
    --no-reboot
```

------
#### [ PowerShell ]

**Criar uma AMI**  
Use o cmdlet [New-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Image.html).

```
New-EC2Image `
    -InstanceId i-1234567890abcdef0 ` 
    -Name "my-web-server" `
    -Description "My web server image" `
    -NoReboot $true
```

------

## Criar uma AMI de um snapshot
<a name="creating-launching-ami-from-snapshot"></a>

Caso você tenha um snapshot do volume raiz de uma instância, será possível criar uma AMI usando esse snapshot.

**nota**  
Na maioria dos casos, as AMIs para Windows, Red Hat, SUSE e SQL Server exigem que as informações corretas de licenciamento estejam presentes na AMI. Para obter mais informações, consulte [Noções básicas sobre as informações de faturamento da AMI](ami-billing-info.md). Ao criar uma AMI de um snapshot, a operação `RegisterImage` obtém as informações de faturamento corretas dos metadados do snapshot, mas isso exige que os metadados apropriados estejam presentes. Para verificar se as informações de cobrança corretas foram aplicadas, verifique o campo **Detalhes da plataforma** na nova AMI. Se o campo estiver vazio ou não corresponder ao código esperado do sistema operacional (por exemplo, Windows, Red Hat, SUSE ou SQL), a criação da AMI não teve êxito e você deverá descartá-la e seguir as instruções em [Criação de uma AMI usando uma instância](#how-to-create-ebs-ami).

------
#### [ Console ]

**Criar uma AMI de um snapshot**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **Snapshots**.

1. Selecione o snapshot do qual a AMI será criada e escolha **Actions**, (Ações), **Create image from snapshot** (Criar imagem do snapshot).

1. Na página **Criar imagem de um snapshot**, especifique as seguintes informações:

   1. Em **Image name** (Nome da imagem), insira um nome descritivo para a imagem.

   1. Em **Description** (Descrição), insira uma breve descrição da imagem.

   1. Em **Architecture** (Arquitetura), escolha a arquitetura da imagem. Escolha **i386** para 32 bits, **x86\$164** para 64 bits, **arm64** para ARM de 64 bits ou **x86\$164** para macOS de 64 bits.

   1. Em **Nome do dispositivo raiz**, insira o nome do dispositivo que será usado para o volume raiz. Para obter mais informações, consulte [Nomes de dispositivos para volumes em instâncias do Amazon EC2](device_naming.md).

   1. Em **Virtualization type** (Tipo de virtualização), escolha o tipo de virtualização a ser usado por instâncias iniciadas partir dessa AMI. Para obter mais informações, consulte [Tipos de virtualização](ComponentsAMIs.md#virtualization_types).

   1. (Somente para virtualização paravirtual) Em **Kernel ID** (ID do kernel), selecione o kernel do sistema operacional para a imagem. Se você estiver usando um snapshot do volume raiz de uma instância, selecione o mesmo ID de kernel da instância original. Se não tiver certeza, use o kernel padrão.

   1. (Somente para virtualização paravirtual) Ema **RAM disk ID** (ID do disco de RAM), selecione o disco de RAM para a imagem. Se você selecionar um kernel específico, pode precisar selecionar um disco de RAM específico com os drivers que ofereçam suporte a ele.

   1. Em **Modo de inicialização**, escolha o modo de inicialização para a imagem ou escolha **Usar padrão** para que, quando uma instância for iniciada com essa AMI, ela seja inicializada com o modo de inicialização com suporte para o tipo de instância. Para obter mais informações, consulte [Definir o modo de inicialização de uma AMI do Amazon EC2](set-ami-boot-mode.md).

   1. (Opcional) Em **Mapeamentos de dispositivos de blocos**, personalize o volume raiz e adicione os demais volumes de dados. 

      Para cada volume, é possível especificar o tamanho, o tipo, as características de performance, o comportamento de exclusão ao término e o status da criptografia. Para o volume da raiz, o tamanho não pode ser menor do que o tamanho do snapshot. Para o tipo de volume, o SSD de uso geral `gp3` é a seleção padrão.

   1. (Opcional) Em **Tags**, você pode adicionar uma ou mais tags à nova AMI. (Opcional) Para adicionar uma tag, escolha **Add tag** (Adicionar tag) e digite a chave e o valor da tag. Repita esse procedimento para cada tag.

   1. Quando você estiver pronto para criar a AMI, escolha **Create image** (Criar imagem).

1. (Somente para Windows, Red Hat, SUSE e SQL Server) Para verificar se as informações de cobrança corretas foram aplicadas, verifique o campo **Detalhes da plataforma** na nova AMI. Se o campo estiver vazio ou não corresponder ao código esperado do sistema operacional (por exemplo, **Windows** ou **Red Hat**), a criação da AMI não teve êxito e você deverá descartá-la e seguir as instruções em [Criação de uma AMI usando uma instância](#how-to-create-ebs-ami).

------
#### [ AWS CLI ]

**Para criar uma AMI a partir de um snapshot usando a AWS CLI**  
Use o comando [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html).

```
aws ec2 register-image \
    --name my-image \
    --root-device-name /dev/xvda \
    --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0db2cf683925d191f}
```

------
#### [ PowerShell ]

**Para criar uma AMI a partir de um snapshot usando o PowerShell**  
Use o cmdlet [Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html).

```
$block = @{SnapshotId=snap-0db2cf683925d191f}
Register-EC2Image `
    -Name my-image `
    -RootDeviceName /dev/xvda `
    -BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block}
```

------

# Criação de uma AMI baseada no Amazon S3
<a name="creating-an-ami-instance-store"></a>

A AMI especificada no momento da inicialização da instância define o tipo do volume raiz para a instância.

Para criar uma AMI do Linux baseada no Amazon S3, comece com uma instância iniciada a partir de uma AMI do Linux baseada no Amazon S3 existente. Depois de personalizar a instância para atender às suas necessidades, empacote o volume e registre uma nova AMI, que é possível usar para executar novas instâncias com essas personalizações.

Não é possível criar uma AMI do Windows baseada no Amazon S3, já que as AMIs do Windows não permitem usar armazenamento de instância como volume raiz.

**Importante**  
Somente os seguintes tipos de instância são compatíveis com um volume de armazenamento de instância como volume raiz e exigem uma AMI baseada no Amazon S3: C1, C3, D2, I2, M1, M2, M3, R3 e X1.

O processo de criação da AMI é diferente para AMIs baseadas no Amazon EBS. Para obter mais informações, consulte [Criação de uma AMI baseada no Amazon EBS](creating-an-ami-ebs.md).

**Topics**
+ [Visão geral da criação de uma AMI](#process-creating-an-ami-instance-store)
+ [Pré-requisitos](#bundle-ami-prerequisites)
+ [Criar uma AMI de uma instância do Linux da Amazon](#amazon_linux_instructions)
+ [Configurar as ferramentas de AMIs do Amazon EC2](set-up-ami-tools.md)
+ [Referência de ferramentas de AMI do Amazon EC2](ami-tools-commands.md)
+ [Conversão da AMI baseada no Amazon S3 em uma AMI baseada no EBS](Using_ConvertingS3toEBS.md)

## Visão geral da criação de uma AMI
<a name="process-creating-an-ami-instance-store"></a>

O diagrama apresentado a seguir resume o processo de criação de uma AMI usando uma instância com volume raiz de armazenamento de instância.

![\[Processo de criação de uma AMI baseada no Amazon S3.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami_create_instance_store.png)


Primeiro, execute uma instância de uma AMI semelhante à AMI que você deseja criar. É possível conectá-la à sua instância e personalizá-la. Quando a instância estiver configurada da forma como você deseja, é possível empacotá-la. Demora vários minutos para o processo de empacotamento ser concluído. Depois de o processo ser concluído, você terá um pacote, que consiste em um manifesto de imagem (`image.manifest.xml`) e nos arquivos (`image.part.`*xx*) que contêm um modelo para o volume raiz. Em seguida, você carrega o pacote para seu bucket Amazon S3 e registra sua AMI.

**nota**  
Para fazer upload de objetos em um bucket do S3 da AMI do Linux baseada no Amazon S3, é necessário que as ACLs estejam habilitadas no bucket. Caso contrário, o Amazon EC2 não poderá definir ACLs nos objetos a serem carregados. Se o bucket de destino usar a configuração imposta pelo proprietário do bucket para propriedade de objeto do S3, isso não funcionará, porque as ACLs estarão desabilitadas. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html).

Quando você executa uma instância usando a nova AMI, criamos o volume do dispositivo raiz da instância usando o pacote que você carregou para o Amazon S3. O espaço de armazenamento usado pelo pacote no Amazon S3 gera cobranças na sua conta até que você o exclua. Para obter mais informações, consulte [Cancelar o registro de uma AMI do Amazon EC2](deregister-ami.md).

Se além do volume raiz, você adicionar volumes de armazenamento de instância à sua instância, o mapeamento de dispositivos de blocos da nova AMI conterá informações sobre esses volumes, e os mapeamentos de dispositivos de blocos das instâncias que você iniciar usando a nova AMI conterão automaticamente informações sobre esses volumes. Para obter mais informações, consulte [Mapeamento de dispositivos de blocos para volumes em instâncias do Amazon EC2](block-device-mapping-concepts.md).

## Pré-requisitos
<a name="bundle-ami-prerequisites"></a>

Antes que você crie uma AMI, é preciso concluir as tarefas seguir:
+ Instale as ferramentas da AMI. Para obter mais informações, consulte [Configurar as ferramentas de AMIs do Amazon EC2](set-up-ami-tools.md).
+ Instale o AWS CLI. Para obter mais informações, consulte [ Conceitos básicos do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).
+ Verifique se você tem um bucket do S3 para o pacote e se o bucket tem ACLs habilitadas. Para obter mais informações sobre a configuração de ACLs, consulte [Configuração de ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html).
  + Para criar um bucket do S3 usando o Console de gerenciamento da AWS, abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) e escolha **Criar bucket**.
  + Para criar um bucket do S3 com a AWS CLI, é possível usar o comando [mb](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html). Se a versão instalada das ferramentas da AMI for 1.5.18 ou posterior, também será possível usar o comando `ec2-upload-bundle` para criar o bucket do S3. Para obter mais informações, consulte [ec2-upload-bundle](ami-tools-commands.md#ami-upload-bundle).
+ Certifique-se de que os arquivos em seu pacote não estejam criptografados no bucket do S3. Caso precise de criptografia para sua AMI, será possível usar uma AMI baseada no EBS em vez disso. Para obter mais informações, consulte [Usar criptografia com AMIs com EBS](AMIEncryption.md).
+ Verifique se você tem seu ID de conta da AWS. Para obter mais informações, consulte [Visualizar identificadores de Conta da AWS](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html) no *Guia de referência de gerenciamento de contas da AWS*.
+ Certifique-se de ter credenciais para usar o AWS CLI. Para obter mais informações, consulte [Credenciais de acesso e autenticação para o AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html) no *Guia do usuário do AWS Command Line Interface*.
+ Verifique se você tem um certificado x.509 e a chave privada correspondente.
  + Se você precisar criar um certificado X.509, consulte [Gerenciar certificados de assinatura](set-up-ami-tools.md#ami-tools-managing-certs). O certificado X.509 e a chave privada são usados para criptografar e descriptografar sua AMI.
  + [China (Pequim)] Use o certificado `$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-cn-north-1.pem`.
  + [AWS GovCloud (US-West)] Use o certificado `$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pem`.
+ Conecte-se à sua instância e personalize-a. Por exemplo, é possível instalar softwares e aplicações, copiar dados, excluir arquivos temporários e modificar a configuração do Linux.

## Criar uma AMI de uma instância do Linux da Amazon
<a name="amazon_linux_instructions"></a>

Os procedimentos apresentados a seguir explicam como criar uma AMI usando uma instância com um volume raiz de armazenamento de instância que está executando o Amazon Linux 1. Eles podem não funcionar para instâncias em execução em outras distribuições do Linux.

**Para se preparar para usar as ferramentas da AMI (somente instâncias do HVM)**

1. As ferramentas de AMI exigem GRUB Legacy para inicializarem corretamente. Use o comando a seguir para instalar o GRUB:

   ```
   [ec2-user ~]$ sudo yum install -y grub
   ```

1. Instale os pacotes de gerenciamento de partição com o seguinte comando:

   ```
   [ec2-user ~]$ sudo yum install -y gdisk kpartx parted
   ```

**Para criar uma AMI usando uma instância do Amazon Linux com volume raiz de armazenamento de instância**

Este procedimento pressupõe que você atendeu aos pré-requisitos de [Pré-requisitos](#bundle-ami-prerequisites).

Nos comandos a seguir, substitua cada *espaço reservado para entrada do usuário* por suas próprias informações.

1. Carregue suas credenciais para sua instância. Usamos essas credenciais para garantir que só você e o Amazon EC2 possam acessar sua AMI.

   1. Crie um diretório temporário na sua instância para suas credenciais, da seguinte forma:

      ```
      [ec2-user ~]$ mkdir /tmp/cert
      ```

      Isso permite que você exclua suas credenciais da imagem criada.

   1. Copie o certificado X.509 e a chave privada correspondente do seu computador para o diretório `/tmp/cert` na sua instância usando uma ferramenta de cópia segura, como [scp](linux-file-transfer-scp.md). A opção `-i my-private-key.pem` no comando **scp** é a chave privada que você usa para se conectar à sua instância com o SSH, não a chave privada X.509. Por exemplo:

      ```
      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem /path/to/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com:/tmp/cert/
      pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem  100%  717     0.7KB/s   00:00
      cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem  100%  685     0.7KB/s   00:00
      ```

   Como alternativa, por serem arquivos de texto simples, é possível abrir o certificado e a chave em um editor de texto e copiar o conteúdo para novos arquivos em `/tmp/cert`.

1. <a name="step_with_bundle_path_amazon_linux"></a>Prepare o pacote para carregar para o Amazon S3 executando o comando [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol) em sua instância. Não se esqueça de especificar a opção `-e` para de excluir o diretório onde suas credenciais estão armazenadas. Por padrão, o processo de colocação em pacotes exclui arquivos que possam conter informações confidenciais. Esses arquivos incluem `*.sw`, `*.swo`, `*.swp`, `*.pem`, `*.priv`, `*id_rsa*`, `*id_dsa*` `*.gpg`, `*.jks`, `*/.ssh/authorized_keys` e `*/.bash_history`. Para incluir todos os arquivos, use a opção `--no-filter`. Para incluir alguns dos arquivos, use a opção `--include`.
**Importante**  
Por padrão, o processo de empacotamento da AMI cria um conjunto de arquivos compactados e criptografados no diretório `/tmp` que representa o volume raiz. Se você não tem o espaço em disco suficiente em `/tmp` para armazenar o pacote, precisa especificar um local diferente para o pacote ser armazenado com a opção `-d /path/to/bundle/storage`. Algumas instâncias têm armazenamento temporário montado em `/mnt` ou `/media/ephemeral0` que você pode usar, ou você pode também criar, associar e montar um novo volume do Amazon EBS para armazenar o pacote. Para obter mais informações, consulte [Criar um volume do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-volume.html) no *Guia do usuário do Amazon EC2*.

   1. Execute o comando **ec2-bundle-vol** como raiz. Na maioria dos comandos, é possível usar **sudo** para ganhar permissões elevadas, mas neste caso, é necessário executar **sudo -E su** para manter as variáveis do ambiente.

      ```
      [ec2-user ~]$ sudo -E su
      ```

      Observe que prompt bash agora identifica você como usuário raiz, e o cifrão foi substituído por uma hashtag, sinalizando que você está em um shell raiz:

      ```
      [root ec2-user]#
      ```

   1. Para criar o pacote de AMIs, execute o comando [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol) da seguinte forma:

      ```
      [root ec2-user]# ec2-bundle-vol -k /tmp/cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c /tmp/cert/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 123456789012 -r x86_64 -e /tmp/cert --partition gpt
      ```
**nota**  
Para as regiões China (Pequim) e AWS GovCloud (US-West), use o parâmetro `--ec2cert` e especifique os certificados de acordo com os [pré-requisitos](#bundle-ami-prerequisites).

      Pode demorar alguns minutos para criar a imagem. Quando esse comando for concluído, o diretório `/tmp` (ou não padrão) conterá o pacote (`image.manifest.xml`, além de vários arquivos `image.part.`*xx*).

   1. Saída do shell raiz.

      ```
      [root ec2-user]# exit
      ```

1. (Opcional) Para adicionar mais volumes de armazenamento de instâncias, edite os mapeamentos de dispositivos de blocos no arquivo `image.manifest.xml` para sua AMI. Para obter mais informações, consulte [Mapeamento de dispositivos de blocos para volumes em instâncias do Amazon EC2](block-device-mapping-concepts.md).

   1. Crie um backup do seu arquivo `image.manifest.xml`.

      ```
      [ec2-user ~]$ sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak
      ```

   1. Reformate o arquivo `image.manifest.xml` para que seja mais fácil ler e editar.

      ```
      [ec2-user ~]$ sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/image.manifest.xml
      ```

   1. Edite os mapeamentos de dispositivos de blocos em `image.manifest.xml` com um editor de texto. O exemplo abaixo mostra uma nova entrada para o volume do armazenamento de instâncias `ephemeral1`. 
**nota**  
Para obter uma lista dos arquivos excluídos, consulte [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol). 

      ```
          <block_device_mapping>
            <mapping>
              <virtual>ami</virtual>
              <device>sda</device>
            </mapping>
            <mapping>
              <virtual>ephemeral0</virtual>
              <device>sdb</device>
            </mapping>
            <mapping>
              <virtual>ephemeral1</virtual>
              <device>sdc</device>
            </mapping>
            <mapping>
              <virtual>root</virtual>
              <device>/dev/sda1</device>
            </mapping>
          </block_device_mapping>
      ```

   1. Salve o arquivo `image.manifest.xml` e saia do seu editor de texto.

1. Para fazer upload do pacote para o Amazon S3, execute o comando [ec2-upload-bundle](ami-tools-commands.md#ami-upload-bundle) da seguinte forma.

   ```
   [ec2-user ~]$ ec2-upload-bundle -b amzn-s3-demo-bucket/bundle_folder/bundle_name -m /tmp/image.manifest.xml -a your_access_key_id -s your_secret_access_key
   ```
**Importante**  
Para registrar a AMI em uma região diferente de US East (N. Virginia), é preciso especificar tanto a região de destino com a opção `--region` quanto um caminho do bucket que já exista na região de destino, ou um caminho de bucket exclusivo que possa ser criado na região de destino.

1. (Opcional) Depois de o pacote ser carregado para o Amazon S3, é possível removê-lo do diretório `/tmp` na instância usando o comando **rm** a seguir:

   ```
   [ec2-user ~]$ sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image
   ```
**Importante**  
Se você tiver especificado um caminho com a opção `-d /path/to/bundle/storage` em [Step 2](#step_with_bundle_path_amazon_linux), use esse caminho em vez de `/tmp`.

1. Para registrar a AMI, execute o comando [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) da seguinte maneira.

   ```
   [ec2-user ~]$ aws ec2 register-image --image-location amzn-s3-demo-bucket/bundle_folder/bundle_name/image.manifest.xml --name AMI_name --virtualization-type hvm
   ```
**Importante**  
Se você tiver especificado previamente uma região para o comando [ec2-upload-bundle](ami-tools-commands.md#ami-upload-bundle), especifique essa região novamente para esse comando.

# Configurar as ferramentas de AMIs do Amazon EC2
<a name="set-up-ami-tools"></a>

Você pode usar as ferramentas da AMI para criar e gerenciar AMIs do Linux baseadas no Amazon S3. Para usar as ferramentas, é necessário instalá-las na sua instância do Linux. As ferramentas das AMIs estão disponíveis como RPM e arquivo .zip para distribuições Linux incompatíveis com RPM. 

**Para definir as ferramentas da AMI usando RPM**

1. Instale o Ruby usando o gerenciador de pacotes para sua distribuição do Linux, como yum. Por exemplo:

   ```
   [ec2-user ~]$ sudo yum install -y ruby
   ```

1. Baixe o arquivo RPM usando uma ferramenta como wget ou curl. Por exemplo:

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm
   ```

1. Verifique se a assinatura do arquivo RPM está usando o seguinte comando:

   ```
   [ec2-user ~]$ rpm -K ec2-ami-tools.noarch.rpm
   ```

   O comando acima deve indicar que os hashes SHA1 e MD5 do arquivo estão `OK.` Se o comando indicar que os hashes estão `NOT OK`, use o seguinte comando para ver os hashes SHA1 e MD5 do cabeçalho do arquivo:

   ```
   [ec2-user ~]$ rpm -Kv ec2-ami-tools.noarch.rpm
   ```

   Em seguida, compare os hashes SHA1 e MD5 do cabeçalho do arquivo com os seguintes hashes das ferramentas de AMIs verificadas para confirmar a autenticidade do arquivo:
   + SHA1 do cabeçalho: a1f662d6f25f69871104e6a62187fa4df508f880
   + MD5: 9faff05258064e2f7909b66142de6782

   Se os hashes SHA1 e MD5 do cabeçalho do arquivo corresponder aos hashes das ferramentas de AMI verificadas, vá para a próxima etapa.

1. Instale o RPM usando o comando a seguir:

   ```
   [ec2-user ~]$ sudo yum install ec2-ami-tools.noarch.rpm
   ```

1. Verifique a instalação das suas ferramentas da AMI usando o comando [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version).

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```
**nota**  
Se você receber um erro de carregamento, como "não é possível carregar esse arquivo -- ec2/amitools/version (LoadError)", realize a próxima etapa para adicionar o local de instalação das suas ferramentas da AMI para seu `RUBYLIB` caminho.

1. (Opcional) Se você tiver recebido um erro na etapa anterior, adicione a localização das suas ferramentas da AMI para seu caminho `RUBYLIB`.

   1. Execute o comando a seguir para determinar os caminhos a adicionar.

      ```
      [ec2-user ~]$ rpm -qil ec2-ami-tools | grep ec2/amitools/version
      /usr/lib/ruby/site_ruby/ec2/amitools/version.rb
      /usr/lib64/ruby/site_ruby/ec2/amitools/version.rb
      ```

      No exemplo acima, o arquivo ausente no erro de carga anterior está localizado em `/usr/lib/ruby/site_ruby` e `/usr/lib64/ruby/site_ruby`.

   1. Adicione os locais da etapa anterior ao seu caminho de `RUBYLIB`.

      ```
      [ec2-user ~]$ export RUBYLIB=$RUBYLIB:/usr/lib/ruby/site_ruby:/usr/lib64/ruby/site_ruby
      ```

   1. Verifique a instalação das suas ferramentas da AMI usando o comando [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version).

      ```
      [ec2-user ~]$ ec2-ami-tools-version
      ```

**Para configurar as ferramentas da AMI usando o arquivo .zip**

1. Instale o Ruby e descompacte usando o gerenciador de pacotes para sua distribuição do Linux, como **apt-get**. Por exemplo:

   ```
   [ec2-user ~]$ sudo apt-get update -y && sudo apt-get install -y ruby unzip
   ```

1. Baixe o arquivo .zip usando uma ferramenta como wget ou curl. Por exemplo:

   ```
   [ec2-user ~]$ wget https://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.zip
   ```

1. Descompacte os arquivos em um diretório de instalação apropriado, como `/usr/local/ec2`.

   ```
   [ec2-user ~]$ sudo mkdir -p /usr/local/ec2
   $ sudo unzip ec2-ami-tools.zip -d /usr/local/ec2
   ```

   Observe que o arquivo .zip contém uma pasta ec2-ami-tools-*x*.*x*.*x*, em que *x*.*x*.*x* é o número da versão das ferramentas (por exemplo, `ec2-ami-tools-1.5.7`).

1. Ajuste a variável de ambiente `EC2_AMITOOL_HOME` para o diretório de instalação para as ferramentas. Por exemplo:

   ```
   [ec2-user ~]$ export EC2_AMITOOL_HOME=/usr/local/ec2/ec2-ami-tools-x.x.x
   ```

1. Adicione as ferramentas à sua variável de ambiente `PATH`. Por exemplo:

   ```
   [ec2-user ~]$ export PATH=$EC2_AMITOOL_HOME/bin:$PATH
   ```

1. É possível verificar a instalação das suas ferramentas da AMI usando o comando [ec2-ami-tools-version](ami-tools-commands.md#ami-tools-version).

   ```
   [ec2-user ~]$ ec2-ami-tools-version
   ```

## Gerenciar certificados de assinatura
<a name="ami-tools-managing-certs"></a>

Determinados comandos nas ferramentas da AMI exigem a assinatura de um certificado (também conhecido como certificado X.509). É necessário criar o certificado e, então, carregá-lo para a AWS. Por exemplo, é possível usar uma ferramenta de terceiros, como OpenSSL, para criar o certificado.

**Para criar um certificado de assinatura**

1. Instale e configure o OpenSSL.

1. Crie uma chave privada usando o comando `openssl genrsa` e salve a saída em um arquivo `.pem`. Recomendamos que você crie uma chave RSA de 2048 ou 4096 bits.

   ```
   openssl genrsa 2048 > private-key.pem
   ```

1. Gere um certificado usando o comando `openssl req`.

   ```
   openssl req -new -x509 -nodes -sha256 -days 365 -key private-key.pem -outform PEM -out certificate.pem
   ```

Para carregar o certificado para a AWS, use o comando [upload-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/upload-signing-certificate.html).

```
aws iam upload-signing-certificate --user-name user-name --certificate-body file://path/to/certificate.pem
```

Para listar os certificados para um usuário, use o comando [list-signing-certificates](https://docs.aws.amazon.com/cli/latest/reference/iam/list-signing-certificates.html):

```
aws iam list-signing-certificates --user-name user-name
```

Para desabilitar ou reabilitar um certificado de assinatura para um usuário, use o comando [update-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/update-signing-certificate.html). O comando a seguir desabilita o certificado:

```
aws iam update-signing-certificate --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE --status Inactive --user-name user-name
```

Para excluir um certificado, use o comando [delete-signing-certificate](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-signing-certificate.html):

```
aws iam delete-signing-certificate --user-name user-name --certificate-id OFHPLP4ZULTHYPMSYEX7O4BEXAMPLE
```

# Referência de ferramentas de AMI do Amazon EC2
<a name="ami-tools-commands"></a>

É possível usar os comandos das ferramentas da AMI para criar e gerenciar AMIs do Linux baseadas no Amazon S3. Para configurar as ferramentas, consulte [Configurar as ferramentas de AMIs do Amazon EC2](set-up-ami-tools.md).

Para obter mais informações sobre as chaves de acesso, consulte [Gerenciamento de chaves de acesso de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) no *Guia do usuário do IAM*.

**Topics**
+ [ec2-ami-tools-version](#ami-tools-version)
+ [ec2-bundle-image](#ami-bundle-image)
+ [ec2-bundle-vol](#ami-bundle-vol)
+ [ec2-delete-bundle](#ami-delete-bundle)
+ [ec2-download-bundle](#ami-download-bundle)
+ [ec2-migrate-manifest](#ami-migrate-manifest)
+ [ec2-unbundle](#ami-unbundle)
+ [ec2-upload-bundle](#ami-upload-bundle)
+ [Opções comuns de ferramentas da AMI](#common-args-ami)

## ec2-ami-tools-version
<a name="ami-tools-version"></a>

### Descrição
<a name="ami-tools-version-description"></a>

Descreve a versão das ferramentas da AMI.

### Sintaxe
<a name="ami-tools-version-request"></a>

**ec2-ami-tools-version**

### Resultado
<a name="ami-tools-version-output"></a>

As informações da versão.

### Exemplo
<a name="ami-tools-version-response"></a>

Este comando de exemplo exibe as informações da versão das ferramentas de AMI que você está usando.

```
[ec2-user ~]$ ec2-ami-tools-version
1.5.2 20071010
```

## ec2-bundle-image
<a name="ami-bundle-image"></a>

### Descrição
<a name="bundle-image-description"></a>

Cria uma AMI do Linux baseada no Amazon S3 usando uma imagem do sistema operacional gerada em um arquivo loopback.

### Sintaxe
<a name="bundle-image-request"></a>

****ec2-bundle-image** -c *path* -k *path* -u *account* -i *path* [-d *path*] [--ec2cert *path*] [-r *architecture*] [--productcodes *code1*,*code2*,...] [-B *mapping*] [-p *prefix*]** 

### Opções
<a name="bundle-image-parameters"></a>

`-c, --cert` *path*  
O arquivo de certificado de chave pública RSA codificado por PEM do usuário.  
Obrigatório: sim

`-k, --privatekey` *path*  
O caminho para um arquivo de chave RSA codificado por PEM. Será necessário especificar essa chave para desfazer esse pacote e, assim, mantê-lo em um lugar seguro. Observe que a chave não precisa estar registrada na conta da AWS.  
Obrigatório: sim

`-u, --user ` *account*  
O ID da conta da AWS do usuário, sem traços.  
Obrigatório: sim

`-i, --image` *path*  
O caminho até imagem para fazer o pacote.  
Obrigatório: sim

`-d, --destination` *path*  
O diretório no qual o pacote deve ser criado.  
Padrão: `/tmp`  
Exigido: Não

`--ec2cert` *path*  
O caminho até o certificado de chave pública X.509 do Amazon EC2 usado para criptografar o manifesto da imagem.  
As regiões `us-gov-west-1` e `cn-north-1` usam um certificado de chave pública não padrão e o caminho para esse certificado deve ser especificado com essa opção. O caminho para o certificado varia de acordo com o método de instalação das ferramentas da AMI. Para o Amazon Linux, os certificados estão localizados em `/opt/aws/amitools/ec2/etc/ec2/amitools/`. Se você tiver instalado as ferramentas da AMI do arquivo RPM ou ZIP em [Configurar as ferramentas de AMIs do Amazon EC2](set-up-ami-tools.md), os certificados estarão localizados em `$EC2_AMITOOL_HOME/etc/ec2/amitools/`.  
Obrigatório: apenas para as regiões `us-gov-west-1` e `cn-north-1`.

`-r, --arch` *architecture*  
Arquitetura da imagem. Se você não tiver fornecido a arquitetura na linha de comando, ela será solicitada quando o empacotamento for iniciado.  
Valores válidos: `i386` \$1 `x86_64`  
Exigido: Não

`--productcodes` *code1,code2,...*  
Os códigos de produto para associar à imagem no momento do registro, separado por vírgulas.  
Exigido: Não

`-B, --block-device-mapping` *mapping*  
Define como dispositivos de blocos são expostos a uma instância dessa AMI, caso esse tipo de instância seja compatível com o dispositivo especificado.  
Especifique uma lista separada por vírgulas de pares de valor-chave, nos quais cada chave é um nome virtual e cada valor é o nome do dispositivo correspondente. Os nomes virtuais incluem o seguinte:  
+ `ami` — o dispositivo do sistema de arquivos raiz, como visto pela instância
+ `root` — o dispositivo do sistema de arquivos raiz, como visto pelo kernel
+ `swap` — o dispositivo de troca, como visto pela instância
+ `ephemeralN` — o enésimo volume de armazenamento de instâncias
Exigido: Não

`-p, --prefix` *prefix*  
O prefixo do nome dos arquivos de AMI em pacote.  
Padrão: O nome de arquivo de imagem. Por exemplo: se o caminho da imagem for `/var/spool/my-image/version-2/debian.img`, o prefixo padrão será `debian.img`.  
Exigido: Não

`--kernel` *kernel\$1id*  
Suspenso. Use [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para configurar o kernel.  
Exigido: Não

`--ramdisk` *ramdisk\$1id*  
Suspenso. Use [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para configurar o disco RAM, se necessário.  
Obrigatório: Não

### Resultado
<a name="bundle-image-output"></a>

Mensagens de status que descrevem os estágios e o status do processo de empacotamento.

### Exemplo
<a name="bundle-image-response"></a>

Este exemplo cria uma AMI empacotada a partir de uma imagem de sistema operacional criada em um arquivo de loopback.

```
[ec2-user ~]$ ec2-bundle-image -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 111122223333 -i image.img -d bundled/ -r x86_64
Please specify a value for arch [i386]: 
Bundling image file...
Splitting bundled/image.gz.crypt...
Created image.part.00
Created image.part.01
Created image.part.02
Created image.part.03
Created image.part.04
Created image.part.05
Created image.part.06
Created image.part.07
Created image.part.08
Created image.part.09
Created image.part.10
Created image.part.11
Created image.part.12
Created image.part.13
Created image.part.14
Generating digests for each part...
Digests generated.
Creating bundle manifest...
ec2-bundle-image complete.
```

## ec2-bundle-vol
<a name="ami-bundle-vol"></a>

### Descrição
<a name="bundle-vol-description"></a>

Cria uma AMI do Linux baseada no Amazon S3 ao compactar, criptografar e assinar uma cópia do volume raiz da instância.

O Amazon EC2 tenta herdar códigos de produto, configurações de kernel, configurações do disco RAM e mapeamentos de dispositivos de blocos a partir da instância.

Por padrão, o processo de colocação em pacotes exclui arquivos que possam conter informações confidenciais. Esses arquivos incluem `*.sw`, `*.swo`, `*.swp`, `*.pem`, `*.priv`, `*id_rsa*`, `*id_dsa*` `*.gpg`, `*.jks`, `*/.ssh/authorized_keys` e `*/.bash_history`. Para incluir todos os arquivos, use a opção `--no-filter`. Para incluir alguns dos arquivos, use a opção `--include`.

Para obter mais informações, consulte [Criação de uma AMI baseada no Amazon S3](creating-an-ami-instance-store.md).

### Sintaxe
<a name="bundle-vol-request"></a>

****ec2-bundle-vol** -c *path* -k *path* -u *account* [-d *path*] [--ec2cert *path*] [-r *architecture*] [--productcodes *code1*,*code2*,...] [-B *mapping*] [--all] [-e *directory1*,*directory2*,...] [-i *file1*,*file2*,...] [--no-filter] [-p *prefix*] [-s *size*] [--[no-]inherit] [-v *volume*] [-P *type*] [-S *script*] [--fstab *path*] [--generate-fstab] [--grub-config *path*]** 

### Opções
<a name="bundle-vol-parameters"></a>

`-c, --cert` *path*  
O arquivo de certificado de chave pública RSA codificado por PEM do usuário.  
Obrigatório: sim

`-k, --privatekey ` *path*   
O caminho até o arquivo de chaves RSA codificado por PEM do usuário.  
Obrigatório: sim

`-u, --user` *account*  
O ID da conta da AWS do usuário, sem traços.  
Obrigatório: sim

`-d, --destination` *destination*  
O diretório no qual o pacote deve ser criado.  
Padrão: `/tmp`  
Exigido: Não

`--ec2cert` *path*  
O caminho até o certificado de chave pública X.509 do Amazon EC2 usado para criptografar o manifesto da imagem.  
As regiões `us-gov-west-1` e `cn-north-1` usam um certificado de chave pública não padrão e o caminho para esse certificado deve ser especificado com essa opção. O caminho para o certificado varia de acordo com o método de instalação das ferramentas da AMI. Para o Amazon Linux, os certificados estão localizados em `/opt/aws/amitools/ec2/etc/ec2/amitools/`. Se você tiver instalado as ferramentas da AMI do arquivo RPM ou ZIP em [Configurar as ferramentas de AMIs do Amazon EC2](set-up-ami-tools.md), os certificados estarão localizados em `$EC2_AMITOOL_HOME/etc/ec2/amitools/`.  
Obrigatório: apenas para as regiões `us-gov-west-1` e `cn-north-1`.

`-r, --arch ` *architecture*  
A arquitetura da imagem. Se você não tiver fornecido isso na linha de comando, ela será solicitada a fornecer quando o empacotamento for iniciado.  
Valores válidos: `i386` \$1 `x86_64`  
Exigido: Não

`--productcodes` *code1,code2,...*  
Os códigos de produto para associar à imagem no momento do registro, separado por vírgulas.  
Exigido: Não

`-B, --block-device-mapping` *mapping*  
Define como dispositivos de blocos são expostos a uma instância dessa AMI, caso esse tipo de instância seja compatível com o dispositivo especificado.  
Especifique uma lista separada por vírgulas de pares de valor-chave, nos quais cada chave é um nome virtual e cada valor é o nome do dispositivo correspondente. Os nomes virtuais incluem o seguinte:  
+ `ami` — o dispositivo do sistema de arquivos raiz, como visto pela instância
+ `root` — o dispositivo do sistema de arquivos raiz, como visto pelo kernel
+ `swap` — o dispositivo de troca, como visto pela instância
+ `ephemeralN` — o enésimo volume de armazenamento de instâncias
Exigido: Não

`-a, --all`  
Inclua todos os diretórios, incluindo aqueles em sistemas de arquivos montados remotamente.  
Exigido: Não

`-e, --exclude ` *directory1,directory2,...*  
Uma lista de caminhos absolutos e arquivos no diretório para excluir a operação de pacotes. Esse parâmetro substitui a opção `--all`. Quando a exclusão for especificada, os diretórios subdiretórios listados com esse parâmetro não serão reunidos com o volume.  
Exigido: Não

`-i, --include ` *file1,file2,...*  
Uma lista de arquivos a serem incluídos na operação de pacotes. Os arquivos especificados seriam excluídos da AMI, pois poderiam conter informações sigilosas.  
Exigido: Não

`--no-filter`  
Se especificado, não excluiremos os arquivos da AMI, pois eles podem conter informações sigilosas.  
Exigido: Não

`-p, --prefix ` *prefix*  
O prefixo do nome dos arquivos de AMI em pacote.  
Padrão: `image`  
Exigido: Não

`-s, --size` *size*  
O tamanho, em MB (1024 x 1024 bytes), do arquivo de imagem a ser criado. O tamanho máximo é de 10240 MB.   
Padrão: 10240  
Exigido: Não

`--[no-]inherit`  
Indica se a imagem deve herdar metadados da instância (o padrão é herdar). O empacotamento falhará se você habilitar `--inherit`, mas os metadados de instância não estiverem acessíveis.  
Exigido: Não

`-v, --volume ` *volume*  
O caminho absoluto até o volume montado, a partir do qual o pacote deve ser criado.  
Padrão: O diretório de raiz (/)  
Exigido: Não

`-P, --partition` *type*  
Indica se a imagem do disco deve usar uma tabela de partição. Se você não especificar um tipo de tabela de partição, o padrão será o tipo usado no dispositivo de blocos do volume, se aplicável; caso contrário, o padrão é `gpt`.  
Valores válidos: `mbr` \$1 `gpt` \$1 `none`  
Exigido: Não

`-S, --script` *script*  
Um script de personalização a ser sido executado logo antes do empacotamento. O script deve esperar um único argumento, o ponto de montagem do volume.  
Exigido: Não

`--fstab` *path*  
O caminho até fstab para empacotar na imagem. Se isso não estiver especificado, o Amazon EC2 empacotará /etc/fstab.  
Exigido: Não

`--generate-fstab`  
Empacote o volume usando um fstab fornecido pelo Amazon EC2.  
Exigido: Não

`--grub-config`  
O caminho para um arquivo alternativo de configuração do GRUB para empacotar na imagem. Por padrão, `ec2-bundle-vol` espera que `/boot/grub/menu.lst` ou `/boot/grub/grub.conf` exista na imagem clonada. Essa opção permite que você especifique um caminho para um arquivo alternativo de configuração do GRUB, que será então copiado para os padrões (se presente).  
Exigido: Não

`--kernel` *kernel\$1id*  
Suspenso. Use [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para configurar o kernel.  
Exigido: Não

`--ramdisk`*ramdisk\$1id*  
Suspenso. Use [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para configurar o disco RAM, se necessário.  
Obrigatório: Não

### Resultado
<a name="bundle-vol-output"></a>

Mensagens de status que descrevem os estágios e o status do empacotamento.

### Exemplo
<a name="bundle-vol-response"></a>

Esse exemplo criar uma AMI empacotada ao comprimir, criptografar e assinar um snapshot do sistema de arquivos raiz da máquina local. 

```
[ec2-user ~]$ ec2-bundle-vol -d /mnt -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 111122223333 -r x86_64
  Copying / into the image file /mnt/image...
  Excluding:
       sys
       dev/shm
       proc
       dev/pts
       proc/sys/fs/binfmt_misc
       dev
       media
       mnt
       proc
       sys
       tmp/image
       mnt/img-mnt
  1+0 records in
  1+0 records out
  mke2fs 1.38 (30-Jun-2005)
  warning: 256 blocks unused.

  Splitting /mnt/image.gz.crypt...
  Created image.part.00
  Created image.part.01
  Created image.part.02
  Created image.part.03
  ...
  Created image.part.22
  Created image.part.23
  Generating digests for each part...
  Digests generated.
  Creating bundle manifest...
  Bundle Volume complete.
```

## ec2-delete-bundle
<a name="ami-delete-bundle"></a>

### Descrição
<a name="delete-bundle-description"></a>

Exclui o pacote especificado do armazenamento Amazon S3. Após excluir um pacote, você não pode executar instâncias a partir da AMI correspondente.

### Sintaxe
<a name="delete-bundle-request"></a>

****ec2-delete-bundle** -b *bucket* -a *access\$1key\$1id* -s *secret\$1access\$1key* [-t *token*] [--url *url*] [--region *region*] [--sigv *version*] [-m *path*] [-p *prefix*] [--clear] [--retry] [-y]** 

### Opções
<a name="delete-bundle-parameters"></a>

`-b, --bucket `*bucket*  
O nome do bucket do Amazon S3 que contém a AMI empacotada, seguido por um prefixo de caminho opcional delimitado por '/'  
Obrigatório: sim

`-a, --access-key` *access\$1key\$1id*  
O ID da chave de acesso da AWS.  
Obrigatório: sim

`-s, --secret-key` *secret\$1access\$1key*  
A chave de acesso secreta da AWS.  
Obrigatório: sim

`-t, --delegation-token` *token*  
O token de delegação para repassar à solicitação da AWS. Para obter mais informações, consulte [Credenciais de segurança temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) no *Guia do usuário do IAM*.  
Obrigatório: Somente quando você usar credenciais temporárias de segurança.  
Padrão: O valor da variável de ambiente `AWS_DELEGATION_TOKEN` (se definida).

`--region`*region*  
A região a ser usada na assinatura da solicitação.  
Padrão: `us-east-1`  
Obrigatório: Sim se estiver usando a assinatura versão 4

`--sigv`*versão*  
A versão da assinatura a ser usada ao assinar a solicitação.  
Valores válidos: `2` \$1 `4`  
Padrão: `4`  
Exigido: Não

`-m, --manifest`*path*  
O caminho até o arquivo manifesto.  
Obrigatório: Especifique `--prefix` ou `--manifest`.

`-p, --prefix` *prefix*  
O prefixo do nome de arquivo da AMI empacotada. Forneça o prefixo inteiro. Por exemplo, se o prefixo for image.img, use `-p image.img`, não. `-p image`  
Obrigatório: Especifique `--prefix` ou `--manifest`.

`--clear`  
Exclui o bucket Amazon S3 se estiver vazio depois do pacote especificado.  
Exigido: Não

`--retry`  
Tenta novamente mais uma vez todos os erros de Amazon S3, até cinco vezes por operação.  
Exigido: Não

`-y, --yes`  
Pressupõe automaticamente que a resposta a todos os avisos é sim.  
Obrigatório: Não

### Resultado
<a name="delete-bundle-output"></a>

O Amazon EC2 exibe mensagens de status indicando os estágios e o status do processo de exclusão.

### Exemplo
<a name="delete-bundle-response"></a>

Este exemplo exclui um pacote do Amazon S3.

```
[ec2-user ~]$ ec2-delete-bundle -b amzn-s3-demo-bucket -a your_access_key_id -s your_secret_access_key
Deleting files:
amzn-s3-demo-bucket/image.manifest.xml
amzn-s3-demo-bucket/image.part.00
amzn-s3-demo-bucket/image.part.01
amzn-s3-demo-bucket/image.part.02
amzn-s3-demo-bucket/image.part.03
amzn-s3-demo-bucket/image.part.04
amzn-s3-demo-bucket/image.part.05
amzn-s3-demo-bucket/image.part.06
Continue? [y/n]
y
Deleted amzn-s3-demo-bucket/image.manifest.xml
Deleted amzn-s3-demo-bucket/image.part.00
Deleted amzn-s3-demo-bucket/image.part.01
Deleted amzn-s3-demo-bucket/image.part.02
Deleted amzn-s3-demo-bucket/image.part.03
Deleted amzn-s3-demo-bucket/image.part.04
Deleted amzn-s3-demo-bucket/image.part.05
Deleted amzn-s3-demo-bucket/image.part.06
ec2-delete-bundle complete.
```

## ec2-download-bundle
<a name="ami-download-bundle"></a>

### Descrição
<a name="download-bundle-description"></a>

Realiza download das AMIs do Linux baseadas no Amazon S3 especificadas usando o armazenamento do Amazon S3.

### Sintaxe
<a name="download-bundle-request"></a>

****ec2-download-bundle** -b *bucket* -a *access\$1key\$1id* -s *secret\$1access\$1key* -k *path* [--url *url*] [--region *region*] [--sigv *version*] [-m *file*] [-p *prefix*] [-d *directory*] [--retry]** 

### Opções
<a name="download-bundle-parameters"></a>

`-b, --bucket` *bucket*  
O nome do bucket Amazon S3 no qual o pacote está localizado, seguido por um prefixo de caminho opcional delimitado por '/'.  
Obrigatório: sim

`-a, --access-key` *access\$1key\$1id*  
O ID da chave de acesso da AWS.  
Obrigatório: sim

`-s, --secret-key` *secret\$1access\$1key*  
A chave de acesso secreta da AWS.  
Obrigatório: sim

`-k, --privatekey` *path*  
A chave privada usada para descriptografar o manifesto.  
Obrigatório: sim

`--url` *url*  
O URL do serviço Amazon S3.  
Padrão: `https://s3.amazonaws.com/`  
Exigido: Não

`--region` *region*  
A região a ser usada na assinatura da solicitação.  
Padrão: `us-east-1`  
Obrigatório: Sim se estiver usando a assinatura versão 4

`--sigv` *version*  
A versão da assinatura a ser usada ao assinar a solicitação.  
Valores válidos: `2` \$1 `4`  
Padrão: `4`  
Exigido: Não

`-m, --manifest` *file*  
O nome do arquivo manifesto (sem o caminho). Recomendamos que você especifique o manifesto (`-m`) ou um prefixo (`-p`).  
Exigido: Não

`-p, --prefix ` *prefix*  
O prefixo do nome dos arquivos de AMI em pacote.  
Padrão: `image`  
Exigido: Não

`-d, --directory ` *directory*  
O diretório no qual o pacote baixado é salvo. O diretório deve existir.  
Padrão: O diretório de trabalho atual.  
Exigido: Não

 `--retry`   
Tenta novamente mais uma vez todos os erros de Amazon S3, até cinco vezes por operação.  
Obrigatório: Não

### Resultado
<a name="download-bundle-output"></a>

São exibidas as mensagens de status que indicam os vários estágios do processo de download.

### Exemplo
<a name="download-bundle-response"></a>

Este exemplo cria o diretório `bundled` (usando o comando Linux **mkdir**) e faz download do pacote do bucket `amzn-s3-demo-bucket` do Amazon S3.

```
[ec2-user ~]$ mkdir bundled
[ec2-user ~]$ ec2-download-bundle -b amzn-s3-demo-bucket/bundles/bundle_name -m image.manifest.xml -a your_access_key_id -s your_secret_access_key -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d mybundle
Downloading manifest image.manifest.xml from amzn-s3-demo-bucket to mybundle/image.manifest.xml ...
Downloading part image.part.00 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.00 ...
Downloaded image.part.00 from amzn-s3-demo-bucket
Downloading part image.part.01 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.01 ...
Downloaded image.part.01 from amzn-s3-demo-bucket
Downloading part image.part.02 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.02 ...
Downloaded image.part.02 from amzn-s3-demo-bucket
Downloading part image.part.03 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.03 ...
Downloaded image.part.03 from amzn-s3-demo-bucket
Downloading part image.part.04 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.04 ...
Downloaded image.part.04 from amzn-s3-demo-bucket
Downloading part image.part.05 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.05 ...
Downloaded image.part.05 from amzn-s3-demo-bucket
Downloading part image.part.06 from amzn-s3-demo-bucket/bundles/bundle_name to mybundle/image.part.06 ...
Downloaded image.part.06 from amzn-s3-demo-bucket
```

## ec2-migrate-manifest
<a name="ami-migrate-manifest"></a>

### Descrição
<a name="migrate-manifest-description"></a>

Modifica uma AMI do Linux baseada no Amazon S3 (por exemplo, o certificado, o kernel e o disco de RAM) para que a AMI se torne compatível com uma região diferente.

### Sintaxe
<a name="migrate-manifest-request"></a>

****ec2-migrate-manifest** -c *path* -k *path* -m *path* \$1(-a *access\$1key\$1id* -s *secret\$1access\$1key* --region *region*) \$1 (--no-mapping)\$1 [--ec2cert *ec2\$1cert\$1path*] [--kernel *kernel-id*] [--ramdisk *ramdisk\$1id*]** 

### Opções
<a name="migrate-manifest-parameters"></a>

`-c, --cert` *path*  
O arquivo de certificado de chave pública RSA codificado por PEM do usuário.  
Obrigatório: sim

`-k, --privatekey` *path*  
O caminho até o arquivo de chaves RSA codificado por PEM do usuário.  
Obrigatório: sim

`--manifest` *path*  
O caminho até o arquivo manifesto.  
Obrigatório: sim

`-a, --access-key` *access\$1key\$1id*  
O ID da chave de acesso da AWS.  
Obrigatório: Obrigatório se estiver usando o mapeamento automático.

`-s, --secret-key ` *secret\$1access\$1key*  
A chave de acesso secreta da AWS.  
Obrigatório: Obrigatório se estiver usando o mapeamento automático.

`--region` *region*  
A região a pesquisar no arquivo de mapeamento.  
Obrigatório: Obrigatório se estiver usando o mapeamento automático.

`--no-mapping`  
Desabilita o mapeamento automático de kernels e discos RAM.  
 Durante a migração, o Amazon EC2 substitui o kernel e o disco RAM no arquivo manifesto por um kernel e disco RAM projetados para a região de destino. A menos que o parâmetro `--no-mapping` seja fornecido, `ec2-migrate-bundle` poderá usar as operações `DescribeRegions` e `DescribeImages` para executar mapeamentos automatizados.   
Obrigatório: Obrigatório se não fornecer as opções `-a`, `-s` e `--region` usadas para mapeamento automático.

`--ec2cert` *path*  
O caminho até o certificado de chave pública X.509 do Amazon EC2 usado para criptografar o manifesto da imagem.  
As regiões `us-gov-west-1` e `cn-north-1` usam um certificado de chave pública não padrão e o caminho para esse certificado deve ser especificado com essa opção. O caminho para o certificado varia de acordo com o método de instalação das ferramentas da AMI. Para o Amazon Linux, os certificados estão localizados em `/opt/aws/amitools/ec2/etc/ec2/amitools/`. Se você tiver instalado as ferramentas da AMI do arquivo ZIP em [Configurar as ferramentas de AMIs do Amazon EC2](set-up-ami-tools.md), os certificados estarão localizados em `$EC2_AMITOOL_HOME/etc/ec2/amitools/`.  
Obrigatório: apenas para as regiões `us-gov-west-1` e `cn-north-1`.

`--kernel` *kernel\$1id*  
O ID do kernel para selecionar.  
Recomendamos que você use PV-GRUB em vez de kernels e discos RAM. Para obter mais informações, consulte [User provided kernels](https://docs.aws.amazon.com/linux/al2/ug/UserProvidedKernels.html) no *Amazon Linux 2 User Guide*.
Obrigatório: Não

`--ramdisk` *ramdisk\$1id*  
O ID do disco RAM para selecionar.  
Recomendamos que você use PV-GRUB em vez de kernels e discos RAM. Para obter mais informações, consulte [User provided kernels](https://docs.aws.amazon.com/linux/al2/ug/UserProvidedKernels.html) no *Amazon Linux 2 User Guide*.
Obrigatório: Não

### Resultado
<a name="migrate-manifest-output"></a>

Mensagens de status que descrevem os estágios e o status do processo de empacotamento.

### Exemplo
<a name="migrate-manifest-response"></a>

Este exemplo copia a AMI especificada no manifesto `my-ami.manifest.xml` dos EUA para a União Europeia.

```
[ec2-user ~]$ ec2-migrate-manifest --manifest my-ami.manifest.xml --cert cert-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem --privatekey pk-HKZYKTAIG2ECMXYIBH3HXV4ZBZQ55CLO.pem --region eu-west-1 

Backing up manifest...
Successfully migrated my-ami.manifest.xml It is now suitable for use in eu-west-1.
```

## ec2-unbundle
<a name="ami-unbundle"></a>

### Descrição
<a name="unbundle-description"></a>

Recria o pacote usando uma AMI do Linux baseada no Amazon S3.

### Sintaxe
<a name="unbundle-request"></a>

****ec2-unbundle** -k *path* -m *path* [-s *source\$1directory*] [-d *destination\$1directory*]** 

### Opções
<a name="unbundle-parameters"></a>

`-k, --privatekey` *path*  
O caminho para seu arquivo de chave RSA codificado por PEM.  
Obrigatório: sim

`-m, --manifest` *path*  
O caminho até o arquivo manifesto.  
Obrigatório: sim

`-s, --source` *source\$1directory*  
O diretório que contém o pacote.  
Padrão: O diretório atual.  
Exigido: Não

`-d, --destination` *destination\$1directory*  
O diretório no qual o pacote da AMI deve ser desfeito. O diretório de destino deve existir.   
Padrão: O diretório atual.  
Obrigatório: Não

### Exemplo
<a name="unbundle-response"></a>

Este exemplo de Linux e UNIX desfaz o pacote da AMI especificado no arquivo `image.manifest.xml`.

```
[ec2-user ~]$ mkdir unbundled
$ ec2-unbundle -m mybundle/image.manifest.xml -k pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -s mybundle -d unbundled
$ ls -l unbundled
total 1025008
-rw-r--r-- 1 root root 1048578048 Aug 25 23:46 image.img
```

### Resultado
<a name="unbundle-output"></a>

São exibidas mensagens de status indicando os vários estágios do processo de desempacotamento.

## ec2-upload-bundle
<a name="ami-upload-bundle"></a>

### Descrição
<a name="upload-bundle-description"></a>

Faz upload do pacote de uma AMI do Linux baseada no Amazon S3 para o Amazon S3 e define as listas de controle de acesso (ACLs) apropriadas nos objetos carregados. Para obter mais informações, consulte [Criação de uma AMI baseada no Amazon S3](creating-an-ami-instance-store.md).

**nota**  
Para fazer upload de objetos em um bucket do S3 da AMI do Linux baseada no Amazon S3, é necessário que as ACLs estejam habilitadas no bucket. Caso contrário, o Amazon EC2 não poderá definir ACLs nos objetos a serem carregados. Se o bucket de destino usar a configuração imposta pelo proprietário do bucket para propriedade de objeto do S3, isso não funcionará, porque as ACLs estarão desabilitadas. Para obter mais informações, consulte [Controlar a propriedade de objetos e desabilitar ACLs para seu bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html).

### Sintaxe
<a name="upload-bundle-request"></a>

****ec2-upload-bundle** -b *bucket* -a *access\$1key\$1id* -s *secret\$1access\$1key* [-t *token*] -m *path* [--url *url*] [--region *region*] [--sigv *version*] [--acl *acl*] [-d *directory*] [--part *part*] [--retry] [--skipmanifest]** 

### Opções
<a name="upload-bundle-parameters"></a>

`-b, --bucket` *bucket*  
O nome do bucket Amazon S3 no qual armazenar o pacote, seguido por um prefixo de caminho opcional delimitado por '/'. Se o bucket não existir, ele será criado se o nome do bucket estiver disponível. Além disso, se o bucket não existir e a versão das ferramentas da AMI for 1.5.18 ou posterior, esse comando definirá as ACLs para o bucket.  
Obrigatório: Sim

`-a, --access-key` *access\$1key\$1id*  
Seu ID de chave de acesso da AWS.  
Obrigatório: sim

`-s, --secret-key` *secret\$1access\$1key*  
Sua chave de acesso secreta da AWS.  
Obrigatório: sim

`-t, --delegation-token` *token*  
O token de delegação para repassar à solicitação da AWS. Para obter mais informações, consulte [Credenciais de segurança temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) no *Guia do usuário do IAM*.  
Obrigatório: Somente quando você usar credenciais temporárias de segurança.  
Padrão: O valor da variável de ambiente `AWS_DELEGATION_TOKEN` (se definida).

`-m, --manifest` *path*  
O caminho até o arquivo manifesto. O arquivo manifesto é criado durante o processo de empacotamento e pode ser localizado no diretório que contém o pacote.  
Obrigatório: sim

`--url` *url*  
Suspenso. Use a opção `--region` a menos que seu bucket esteja restrito ao local `EU` (e não `eu-west-1`). A marca `--location` é uma única forma de destinar essa restrição específica de local.  
O URL do serviço de endpoint do Amazon S3.  
Padrão: `https://s3.amazonaws.com/`  
Exigido: Não

`--region` *region*  
A região a ser usada na assinatura da solicitação para o bucket do S3 de destino.  
+ Se o bucket não existir e você não especificar uma região, a ferramenta criará o bucket sem uma restrição de local (em `us-east-1`).
+ Se o bucket não existir e você especificar uma região, a ferramenta criará o bucket na região especificada.
+ Se o bucket existir e você não especificar uma região, a ferramenta usará o local do bucket.
+ Se o bucket existir e você especificar `us-east-1` como região, a ferramenta usará o local real do bucket sem nenhuma mensagem de erro e todos os arquivos correspondentes serão substituídos.
+ Se o bucket existir e você especificar uma região (além de `us-east-1`) que não corresponde ao local real do bucket, a ferramenta sairá com um erro.
Se seu bucket estiver restrito ao local `EU` (e não `eu-west-1`), use a marca `--location`. A marca `--location` é uma única forma de destinar essa restrição específica de local.  
Padrão: `us-east-1`  
Obrigatório: Sim se estiver usando a assinatura versão 4

`--sigv` *version*  
A versão da assinatura a ser usada ao assinar a solicitação.  
Valores válidos: `2` \$1 `4`  
Padrão: `4`  
Exigido: Não

`--acl` *acl*  
A política de lista de controle de acesso da imagem empacotada.  
Valores válidos: `public-read` \$1 `aws-exec-read`  
Padrão: `aws-exec-read`  
Exigido: Não

`-d, --directory` *directory*  
O diretório que contém as partes da AMI empacotadas.  
Padrão: O diretório que contém o arquivo manifesto (veja a opção `-m`).  
Exigido: Não

`--part` *part*  
Inicia a transferência da parte especificada e de todas as partes subsequentes. Por exemplo, `--part 04`.  
Exigido: Não

`--retry`  
Tenta novamente mais uma vez todos os erros de Amazon S3, até cinco vezes por operação.  
Exigido: Não

`--skipmanifest`  
Não faz upload do manifesto.  
Exigido: Não

`--location` *location*  
Suspenso. Use a opção `--region`, a menos que seu bucket esteja restrito ao local `EU` (e não `eu-west-1`). A marca `--location` é uma única forma de destinar essa restrição específica de local.  
A restrição do local do bucket Amazon S3 de destino. Se o bucket existir e você especificar um local que não corresponde ao local real do bucket, a ferramenta sairá com um erro. Se o bucket existir e você não especificar um local, a ferramenta usará o local do bucket. Se o bucket não existir e você especificar um local, a ferramenta criará o bucket no local especificado. Se o bucket não existir e você não especificar um local, a ferramenta criará o bucket sem uma restrição de local (em `us-east-1`).   
Padrão: se `--region` for especificado, o local será definido para essa região especificada. Se `--region` não for especificado, o local padrão será `us-east-1`.  
Obrigatório: Não

### Resultado
<a name="upload-bundle-output"></a>

O Amazon EC2 exibe mensagens de status que indicam os estágios e o status do processo de upload.

### Exemplo
<a name="upload-bundle-response"></a>

Esse exemplo faz uploads do pacote especificado pelo manifesto `image.manifest.xml`.

```
[ec2-user ~]$ ec2-upload-bundle -b amzn-s3-demo-bucket/bundles/bundle_name -m image.manifest.xml -a your_access_key_id -s your_secret_access_key
Creating bucket...
Uploading bundled image parts to the S3 bucket amzn-s3-demo-bucket ...
Uploaded image.part.00
Uploaded image.part.01
Uploaded image.part.02
Uploaded image.part.03
Uploaded image.part.04
Uploaded image.part.05
Uploaded image.part.06
Uploaded image.part.07
Uploaded image.part.08
Uploaded image.part.09
Uploaded image.part.10
Uploaded image.part.11
Uploaded image.part.12
Uploaded image.part.13
Uploaded image.part.14
Uploading manifest ...
Uploaded manifest.
Bundle upload completed.
```

## Opções comuns de ferramentas da AMI
<a name="common-args-ami"></a>

A maioria das ferramentas da AMI aceita os parâmetros opcionais a seguir.

`--help, -h`  
Exibe a mensagem de ajuda.

`--version`  
Exibe a notificação de versão e direitos autorais.

`--manual`  
Exibe a entrada manual.

`--batch`  
Executa no modo em lote, suprimindo prompts interativos.

`--debug`  
Exibe informações que podem ser úteis ao resolver problemas.

# Conversão da AMI baseada no Amazon S3 em uma AMI baseada no EBS
<a name="Using_ConvertingS3toEBS"></a>

É possível converter uma AMI do Linux de sua propriedade, que é baseada no Amazon S3, em uma AMI do Linux baseada no Amazon EBS. 

**Importante**  
Não é possível converter uma AMI que não lhe pertença.

**Para converter uma AMI baseada no Amazon S3 em uma AMI baseada no Amazon EBS**

1. Execute uma instância do Amazon Linux a partir de uma AMI baseada no Amazon EBS. Para obter mais informações, consulte [Executar uma instância do EC2 usando o assistente de inicialização de instâncias no console](ec2-launch-instance-wizard.md). As instâncias do Amazon Linux têm a AWS CLI e as ferramentas da AMI pré-instaladas.

1. Faça upload da chave privada X.509 usada para criar a AMI baseada no Amazon S3 para a instância. Usamos essa chave para garantir que só você e o Amazon EC2 possam acessar sua AMI.

   1. Crie um diretório temporário na sua instância para a chave privada X.509 da seguinte forma:

      ```
      [ec2-user ~]$ mkdir /tmp/cert
      ```

   1. Copie a chave privada X.509 do seu computador para o diretório `/tmp/cert` na sua instância usando uma ferramenta de cópia segura, como a [scp](linux-file-transfer-scp.md). O parâmetro *my-private-key* no comando a seguir é a chave privada que você usa para se conectar à sua instância com o SSH. Por exemplo:

      ```
      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com:/tmp/cert/
      pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem  100%  717     0.7KB/s   00:00
      ```

1. Configure as variáveis de ambiente para usar o AWS CLI. Para obter mais informações, consulte [Environment variables](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html).

   1. (Recomendado) Defina as variáveis de ambiente para sua chave de acesso, chave secreta e token de sessão da AWS.

      ```
      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id
      [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key
      [ec2-user ~]$ export AWS_SESSION_TOKEN=your_session_token
      ```

   1. Defina as variáveis de ambiente para sua chave de acesso da AWS e uma chave secreta.

      ```
      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id
      [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key
      ```

1. Prepare um volume do Amazon Elastic Block Store (Amazon EBS) para sua nova AMI.

   1. Crie um o volume do EBS vazio na mesma zona de disponibilidade que sua instância usando o comando [create-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-volume.html). Observe o ID do volume na saída do comando.
**Importante**  
 Esse volume do EBS deve ter tamanho igual ou superior ao volume do dispositivo raiz do armazenamento de instâncias original.

      ```
      aws ec2 create-volume \
          --size 10 \
          --region us-west-2 \
          --availability-zone us-west-2b
      ```

   1. Associe o volume à sua instância baseada no Amazon EBS usando o comando [attach-volume](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-volume.html).

      ```
      aws ec2 attach-volume \
          --volume-id vol-01234567890abcdef \
          --instance-id i-1234567890abcdef0 \
          --region us-west-2
      ```

1. Crie uma pasta para o seu pacote.

   ```
   [ec2-user ~]$ mkdir /tmp/bundle
   ```

1. Baixe o pacote para sua AMI com armazenamento de instâncias para `/tmp/bundle` usando o comando [ec2-download-bundle](ami-tools-commands.md#ami-download-bundle).

   ```
   [ec2-user ~]$ ec2-download-bundle -b amzn-s3-demo-bucket/bundle_folder/bundle_name -m image.manifest.xml -a $AWS_ACCESS_KEY_ID -s $AWS_SECRET_ACCESS_KEY --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d /tmp/bundle
   ```

1. Reconstitua o arquivo de imagem do pacote usando o comando [ec2-unbundle](ami-tools-commands.md#ami-unbundle).

   1. Altere os diretórios para a pasta de pacotes.

      ```
      [ec2-user ~]$ cd /tmp/bundle/
      ```

   1. Execute o comando [ec2-unbundle](ami-tools-commands.md#ami-unbundle).

      ```
      [ec2-user bundle]$ ec2-unbundle -m image.manifest.xml --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
      ```

1. Copie os arquivos da imagem não empacotada para o novo volume do EBS.

   ```
   [ec2-user bundle]$ sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M
   ```

1. Teste o volume quanto a quaisquer novas partições não empacotadas.

   ```
   [ec2-user bundle]$ sudo partprobe /dev/sdb1
   ```

1. Liste os dispositivos de blocos para encontrar o nome do dispositivo para montar.

   ```
   [ec2-user bundle]$ lsblk
   NAME         MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
   /dev/sda    202:0    0   8G  0 disk
   └─/dev/sda1 202:1    0   8G  0 part /
   /dev/sdb    202:80   0  10G  0 disk
   └─/dev/sdb1 202:81   0  10G  0 part
   ```

   Neste exemplo, a partição a montar é `/dev/sdb1`, mas o nome do seu dispositivo provavelmente será diferente. Se seu volume não estiver particionado, o dispositivo para montar será semelhante a `/dev/sdb` (sem um dígito final de partição do dispositivo).

1. Crie um ponto de montagem para o novo volume do EBS e monte o volume.

   ```
   [ec2-user bundle]$ sudo mkdir /mnt/ebs
   [ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs
   ```

1. Abra o arquivo `/etc/fstab` no volume do EBS com seu editor de texto favorito (como o **vim** ou o **nano**) e remova todas as entradas dos volumes de armazenamento de instâncias (temporários). Como o volume do EBS é montado em `/mnt/ebs`, o arquivo `fstab` é localizado em `/mnt/ebs/etc/fstab`.

   ```
   [ec2-user bundle]$ sudo nano /mnt/ebs/etc/fstab
   #
   LABEL=/     /           ext4    defaults,noatime  1   1
   tmpfs       /dev/shm    tmpfs   defaults        0   0
   devpts      /dev/pts    devpts  gid=5,mode=620  0   0
   sysfs       /sys        sysfs   defaults        0   0
   proc        /proc       proc    defaults        0   0
   /dev/sdb        /media/ephemeral0       auto    defaults,comment=cloudconfig    0       2
   ```

   Neste exemplo, a última linha deve ser removida.

1. Desmonte o volume e separe-o da instância.

   ```
   [ec2-user bundle]$ sudo umount /mnt/ebs
   [ec2-user bundle]$ aws ec2 detach-volume --volume-id vol-01234567890abcdef --region us-west-2
   ```

1. Crie uma AMI a partir do novo volume do EBS, da seguinte forma.

   1. Crie um snapshot do novo volume do EBS.

      ```
      [ec2-user bundle]$ aws ec2 create-snapshot --region us-west-2 --description "your_snapshot_description" --volume-id vol-01234567890abcdef
      ```

   1. Verifique se seu snapshot está concluído.

      ```
      [ec2-user bundle]$ aws ec2 describe-snapshots --region us-west-2 --snapshot-id snap-0abcdef1234567890
      ```

   1. Identifique a arquitetura do processador, o tipo de virtualização e a imagem do kernel (`aki`) usados na AMI original com o comando **describe-images**. Nesta etapa, você precisará do ID da AMI correspondente à AMI original que é baseada no Amazon S3.

      ```
      [ec2-user bundle]$ aws ec2 describe-images --region us-west-2 --image-id ami-0abcdef1234567890 --output text
      IMAGES	x86_64	amazon/amzn-ami-pv-2013.09.2.x86_64-s3	ami-8ef297be	amazon	available	public	machine	aki-fc8f11cc	instance-store	paravirtual	xen
      ```

      Neste exemplo, arquitetura é `x86_64` e o ID da imagem do kernel é `aki-fc8f11cc`. Use os valores a seguir na próxima etapa. Se a saída do comando acima também listar um ID `ari`, anote isso também.

   1. Registre sua nova AMI com o ID do snapshot do seu novo volume do EBS e os valores da etapa anterior. Se a saída do comando anterior listou um ID `ari`, inclua-o no comando seguinte com `--ramdisk-id ari_id`.

      ```
      [ec2-user bundle]$ aws ec2 register-image --region us-west-2 --name your_new_ami_name --block-device-mappings DeviceName=device-name,Ebs={SnapshotId=snap-0abcdef1234567890} --virtualization-type paravirtual --architecture x86_64 --kernel-id aki-fc8f11cc --root-device-name device-name
      ```

1. (Opcional) Depois de ter testado que pode executar uma instância a partir da nova AMI, é possível excluir o volume do EBS criado para esse procedimento.

   ```
   aws ec2 delete-volume --volume-id vol-01234567890abcdef
   ```

# Criar uma AMI do Amazon EC2 usando o Sysprep do Windows
<a name="ami-create-win-sysprep"></a>

A ferramenta Preparação do sistema da Microsoft (Sysprep do Windows) cria uma versão generalizada do sistema operacional, com a configuração do sistema específica da instância removida antes de capturar uma nova imagem.

Recomendamos que você use o [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html) para automatizar a criação, o gerenciamento e a implantação de imagens de servidor “douradas” personalizadas, seguras e atualizadas que são pré-instaladas e pré-configuradas com software e configurações.

Você também pode usar o Sysprep do Windows para criar uma AMI padronizada usando os agentes de inicialização do Windows: EC2Launch v2, EC2Launch e EC2Config.

**Importante**  
Não use o Sysprep do Windows para criar um backup da instância. O Sysprep do Windows remove informações específicas do sistema; a remoção dessas informações pode ter consequências não intencionais para um backup da instância.

Para solucionar problemas do Sysprep do Windows, consulte [Solucionar problemas de Sysprep com instâncias do Windows do Amazon EC2](sysprep-troubleshoot.md).

**Topics**
+ [Fases do Sysprep do Windows](#sysprep-phases)
+ [Antes de começar](#sysprep-begin)
+ [Usar o Sysprep do Windows com o EC2Launch v2](sysprep-using-ec2launchv2.md)
+ [Usar o Sysprep do Windows com o EC2Launch](ec2launch-sysprep.md)
+ [Usar o Sysprep do Windows com o EC2Config](sysprep-using.md)

## Fases do Sysprep do Windows
<a name="sysprep-phases"></a>

O Sysprep do Windows é executado nas seguintes fases:
+ **Generalizar**: a ferramenta Sysprep remove informações e configurações específicas da imagem. Por exemplo, o Sysprep do Windows remove o identificador de segurança (SID), o nome do computador, os logs de evento e drivers específicos, entre outros. Após essa fase ser encerrada, o sistema operacional (SO) estará pronto para criar a AMI.
**nota**  
Quando você executa o Sysprep do Windows com os agentes de inicialização do Windows, o sistema impede que os drivers sejam removidos porque, por padrão, `PersistAllDeviceInstalls` é definida como verdadeira.
+ **Especializar**: o plug and play examina o computador e instala drivers para todos os dispositivos detectados. A ferramenta Sysprep gera requisitos do SO, como o nome do computador e o SID. Opcionalmente, é possível executar comandos nessa fase.
+ **Experiência Out-of-Box (OOBE)**: o sistema executa uma versão abreviada da configuração do Windows e pede para o usuário inserir informações como o idioma do sistema, o fuso horário e a organização registrada. Quando você executa o Sysprep do Windows com os agentes de inicialização do Windows, o arquivo de resposta automatiza essa fase.

## Antes de começar
<a name="sysprep-begin"></a>
+ Antes da execução do Sysprep do Windows, recomendamos que você remova todas as contas de usuário locais e todos os perfis de conta, exceto uma única conta de administrador em que o Sysprep do Windows será executado. Caso execute o Sysprep do Windows com contas e perfis adicionais, poderá ocorrer um comportamento inesperado, inclusive a perda de dados de perfil ou a falha de conclusão do Sysprep do Windows.
+ Saiba mais em [Visão geral do Sysprep](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep--system-preparation--overview).
+ Saiba quais [perfis do servidor são compatíveis com o Sysprep](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/sysprep-support-for-server-roles).

# Criar uma AMI usando o Sysprep do Windows com o EC2Launch v2
<a name="sysprep-using-ec2launchv2"></a>

Quando você cria uma imagem de uma instância com o agente EC2Launch v2 instalado, ele realiza tarefas específicas à medida que a imagem é preparada. Isso inclui trabalhar com o Sysprep do Windows. Para obter mais informações, consulte [Fases do Sysprep do Windows](ami-create-win-sysprep.md#sysprep-phases).

**Topics**
+ [Ações do Sysprep do Windows](#sysprep-actions-ec2launchv2)
+ [Após Sysprep](#sysprep-post-ec2launchv2)
+ [Executar o Sysprep do Windows com o EC2Launch v2](#sysprep-gui-procedure-ec2launchv2)

## Ações do Sysprep do Windows
<a name="sysprep-actions-ec2launchv2"></a>

O Sysprep do Windows e o EC2Launch v2 executam as ações a seguir na preparação de uma imagem.

1. Quando você escolhe **Shutdown with Sysprep (Desligar com Sysprep)** na caixa de diálogo **EC2Launch settings (Configurações do EC2Launch)**, o sistema executa o comando `ec2launch sysprep`.

1. O EC2Launch v2 edita o conteúdo do arquivo `unattend.xml` lendo o valor do registro em `HKEY_USERS\.DEFAULT\Control Panel\International\LocaleName`. O arquivo está localizado no seguinte diretório: `C:\ProgramData\Amazon\EC2Launch\sysprep`.

1. O sistema executa o `BeforeSysprep.cmd`. Esse comando cria uma chave de registro da seguinte maneira:

   **reg add "HKEY\$1LOCAL\$1MACHINE\$1SYSTEM\$1CurrentControlSet\$1Control\$1Terminal Server" /v fDenyTSConnections /t REG\$1DWORD /d 1 /f**

   A chave de registro desabilita as conexões RDP até serem re-habilitadas. Desabilitar as conexões RDP é uma medida de segurança necessária, pois, na primeira sessão de inicialização após o Sysprep do Windows ser executado, há um breve período no qual o RDP permite conexões e a senha do Administrador fica em branco.

1. O serviço do EC2Launch v2 chama o Sysprep do Windows ao executar o seguinte comando:

   **sysprep.exe /oobe /generalize /shutdown /unattend: "C:\$1ProgramData\$1Amazon\$1EC2Launch\$1sysprep\$1unattend.xml"**

### Generalizar a fase
<a name="sysprep-generalize-ec2launchv2"></a>
+ O EC2Launch v2 remove informações e configurações específicas da imagem, como o nome do computador e o SID. Se a instância pertencer a um domínio, ela será removida do domínio. O arquivo de resposta `unattend.xml` inclui as seguintes configurações que afetam a fase: 
  + **PersistAllDeviceInstalls**: essa configuração impede que a Configuração do Windows remova e reconfigure dispositivos, o que acelera o processo de preparação de imagem, pois as AMIs da Amazon exigem a execução de determinados drivers e a nova detecção desses drivers tomaria o tempo.
  + **DoNotCleanUpNonPresentDevices**: essa configuração retém informações de plug and play para dispositivos que não estão presentes no momento.
+ O Sysprep do Windows fecha o SO à medida que se prepara para criar a AMI. O sistema executa uma nova instância ou inicia a instância original.

### Fase especializada
<a name="sysprep-specialize-ec2launchv2"></a>

O sistema gera requisitos específicos do sistema operacional, como um nome de computador e um SID. O sistema também executa as ações a seguir com base nas configurações que você especifica no arquivo de resposta `unattend.xml`.
+ **CopyProfile**: o Sysprep do Windows pode ser configurado para excluir todos os perfis de usuário, incluindo o perfil incorporado do Administrador. Essa configuração retém a conta incorporada do administrador, de forma que todas as personalizações que você fizer nessa conta serão transferidas para a nova imagem. O valor padrão é `True`.

  **CopyProfile** substitui o perfil padrão pelo perfil de administrador local existente. Todas as contas em que você faz login depois da execução do Sysprep do Windows recebem uma cópia desse perfil e do conteúdo dele no primeiro login. 

  Se você não tiver personalizações específicas do perfil do usuário que deseja transferir para a nova imagem, altere essa configuração para `False`. O Sysprep do Windows removerá todos os perfis de usuário (isso economiza tempo e espaço em disco).
+ **TimeZone**: o fuso horário é definido como Coordinated Universal Time (UTC – Tempo universal coordenado), por padrão.
+ **Comando síncrono com pedido 1**: o sistema executa o comando a seguir, que habilita a conta do administrador e especifica o requisito de senha:

  ```
  net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES
  ```
+ **Comando síncrono com pedido 2**: o sistema vasculha a senha do administrador. Essa medida de segurança foi criada para impedir que a instância seja acessível após a conclusão do Sysprep do Windows, caso você não tenha configurado a tarefa `setAdminAccount`.

  O sistema executa o seguinte comando no diretório local do agente de inicialização (`C:\Program Files\Amazon\EC2Launch\`).

  ```
  EC2Launch.exe internal randomize-password --username Administrator
  ```
+ Para habilitar conexões de área de trabalho remota, o sistema define a chave de registro `fDenyTSConnections` do Terminal Server como false.

### Fase OOBE
<a name="sysprep-oobe-ec2launchv2"></a>

1. O sistema especifica as seguintes configurações usando o arquivo de resposta do EC2Launch v2:
   + `<InputLocale>en-US</InputLocale>`
   + `<SystemLocale>en-US</SystemLocale>`
   + `<UILanguage>en-US</UILanguage>`
   + `<UserLocale>en-US</UserLocale>`
   + `<HideEULAPage>true</HideEULAPage>`
   + `<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>`
   + `<ProtectYourPC>3</ProtectYourPC>`
   + `<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>`
   + `<TimeZone>UTC</TimeZone>`
   + `<RegisteredOrganization>Amazon.com</RegisteredOrganization>`
   + `<RegisteredOwner>EC2</RegisteredOwner>`
**nota**  
Durante as fases de generalização e de especialização, o EC2Launch v2 monitora o status do sistema operacional. Se o EC2Launch v2 detectar que o sistema operacional está na fase Sysprep, ele publicará a seguinte mensagem no log do sistema:  
O Windows está sendo configurado. SysprepState=IMAGE\$1STATE\$1UNDEPLOYABLE

1. O sistema executa o EC2Launch v2.

## Após Sysprep
<a name="sysprep-post-ec2launchv2"></a>

Após a conclusão do Sysprep do Windows, o EC2Launch v2 envia a seguinte mensagem para a saída do console:

```
Windows sysprep configuration complete.
```

Depois, o EC2Launch v2 executa as ações a seguir:

1. Lê o conteúdo do arquivo `agent-config.yml` e executa as tarefas configuradas. 

1. Executa todas as tarefas no estágio `preReady`.

1. Após a conclusão, envia uma mensagem `Windows is ready` para os logs do sistema de instância.

1. Executa todas as tarefas no estágio `PostReady`.

Para obter mais informações sobre o EC2Launch v2, consulte [Usar o agente do EC2Launch v2 para realizar tarefas durante a execução da instância EC2 Windows](ec2launch-v2.md).

## Executar o Sysprep do Windows com o EC2Launch v2
<a name="sysprep-gui-procedure-ec2launchv2"></a>

Use o procedimento a seguir para criar uma AMI padronizada usando o Sysprep do Windows com o EC2Launch v2.

1. No console do Amazon EC2, localize uma AMI que você deseja duplicar.

1. Execute e conecte-se à sua instância do Windows.

1. Personalizar configurações

   1. No menu **Start (Iniciar)** do Windows, procure e escolha **Amazon EC2Launch settings (Configurações do Amazon EC2Launch)**. Para obter mais informações sobre as opções e configurações na caixa de diálogo **Amazon EC2Launch settings (Configurações do Amazon EC2Launch)**, consulte [Definição das configurações do EC2Launch v2 para instâncias do Windows](ec2launch-v2-settings.md).

   1. Se você fez alterações, escolha **Salvar** antes de desligar.

1. Selecione **Desligar com Sysprep** ou **Desligar sem Sysprep**.

Quando você receber uma solicitação para confirmar que deseja executar o Sysprep do Windows e desativar a instância, clique em **Sim**. O EC2Launch v2 executa o Sysprep do Windows. Você é desconectado da instância, e a instância é desligada. Se você verificar a página **Instances** (Instâncias) no console do Amazon EC2, o estado da instância será alterado de `Running` para `Stopping` e para `Stopped`. Nesse momento, é seguro criar uma AMI com base nessa instância.

Você pode invocar manualmente a ferramenta Sysprep do Windows pela linha de comando usando o seguinte comando:

```
"%programfiles%\amazon\ec2launch\ec2launch.exe" sysprep --shutdown=true
```

# Criar uma AMI usando o Sysprep do Windows com o EC2Launch
<a name="ec2launch-sysprep"></a>

Quando você cria uma imagem de uma instância com o agente EC2Launch instalado, ele realiza tarefas específicas à medida que a imagem é preparada. Isso inclui trabalhar com o Sysprep do Windows. Para obter mais informações, consulte [Fases do Sysprep do Windows](ami-create-win-sysprep.md#sysprep-phases).

O EC2Launch oferece um arquivo de resposta padrão e arquivos em lote para o Sysprep do Windows que automatizam e protegem o processo de preparação de imagem na AMI. A modificação desses arquivos é opcional. Esses arquivos estão localizados no seguinte diretório por padrão: `C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep`.

**Importante**  
Não use o Sysprep do Windows para criar um backup da instância. O Sysprep do Windows remove as informações específicas do sistema. Se você remover essas informações, poderá haver consequências não intencionais em um backup da instância.

**Topics**
+ [Arquivos de resposta e em lotes do EC2Launch para o Sysprep do Windows](#ec2launch-sysprep-answer-batch)
+ [Executar o Sysprep do Windows com o EC2Launch](#ec2launch-sysprep-running)
+ [Para atualizar rotas de metadados/KMS para o Server 2016 e posterior ao iniciar uma AMI personalizada](#update-metadata-KMS)

## Arquivos de resposta e em lotes do EC2Launch para o Sysprep do Windows
<a name="ec2launch-sysprep-answer-batch"></a>

O arquivo de resposta e os arquivos em lote do EC2Launch para o Sysprep incluem o seguinte:

`Unattend.xml`  
Esse é o arquivo de resposta padrão. Se você executar o `SysprepInstance.ps1` ou escolher **ShutdownWithSysprep** na interface do usuário, o sistema lerá a configuração nesse arquivo.

`BeforeSysprep.cmd`  
Personalize esse arquivo em lote para executar comandos antes que o EC2Launch execute o Sysprep do Windows.

`SysprepSpecialize.cmd`  
Personalize esse arquivo em lotes para executar comandos durante a fase de especialização do Sysprep do Windows.

## Executar o Sysprep do Windows com o EC2Launch
<a name="ec2launch-sysprep-running"></a>

Na instalação completa do Windows Server 2016 e posterior (com uma experiência de desktop), é possível executar o Sysprep do Windows com o EC2Launch manualmente ou usando a aplicação **Configurações do EC2Launch**.

**Executar o Sysprep do Windows usando a aplicação Configurações do EC2Launch**

1. No console do Amazon EC2, localize ou crie uma AMI do Windows Server 2016 ou posterior.

1. Execute uma instância do Windows a partir da AMI.

1. Conecte-se à sua instância do Windows e personalize-a.

1. Pesquise e execute a aplicação **EC2LaunchSettings**. Por padrão, ele está localizado no seguinte diretório: `C:\ProgramData\Amazon\EC2-Windows\Launch\Settings`.  
![\[Aplicação de configurações de execução do EC2\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ec2launch-sysprep.png)

1. Selecione ou limpe as opções conforme for necessário. Essas configurações são armazenadas no arquivo `LaunchConfig.json`.

1. Em **Administrator password**, faça uma das seguintes ações:
   + Escolha **Random**. O EC2Launch gera uma senha e criptografa-a usando a chave de usuário. O sistema desativa essa configuração depois da execução da instância, portanto, essa senha persistirá se a instância for reinicializada ou parada e iniciada.
   + Escolha **Specify** e digite a senha que atende aos requisitos do sistema. A senha é armazenada em `LaunchConfig.json` como texto não criptografado e será excluída depois que o Sysprep do Windows definir a senha de administrador. Se você fechar agora, a senha será definida imediatamente. O EC2Launch criptografa a senha usando a chave de usuário.
   + Escolha **DoNothing** e especifique uma senha no arquivo `unattend.xml`. Se você não especificar uma senha em `unattend.xml`, a conta de administrador ficará desativada.

1. Escolha **Shutdown with Sysprep (Desligar com Sysprep)**.

**Executar o Sysprep do Windows manualmente usando o EC2Launch**

1. No console do Amazon EC2, localize ou crie uma AMI Datacenter Edition do Windows Server 2016 ou posterior que você deseja duplicar.

1. Execute e conecte-se à sua instância do Windows.

1. Personalize a instância.

1. Especifique as configurações no arquivo `LaunchConfig.json`. Por padrão, esse arquivo está localizado no diretório `C:\ProgramData\Amazon\EC2-Windows\Launch\Config`.

   Para `adminPasswordType`, especifique um dos seguintes valores:  
`Random`  
O EC2Launch gera uma senha e criptografa-a usando a chave de usuário. O sistema desativa essa configuração depois da execução da instância, portanto, essa senha persistirá se a instância for reinicializada ou parada e iniciada.  
`Specify`  
O EC2Launch usa a senha que você especifica `adminPassword`. Se a senha não atender aos requisitos de sistema, o EC2Launch gera uma senha aleatória. A senha é armazenada em `LaunchConfig.json` como texto não criptografado e será excluída depois que o Sysprep do Windows definir a senha de administrador. O EC2Launch criptografa a senha usando a chave de usuário.  
`DoNothing`  
O EC2Launch usa a senha que você especifica o arquivo `unattend.xml`. Se você não especificar uma senha em `unattend.xml`, a conta de administrador ficará desativada.

1. (Opcional) Especifique as configurações em `unattend.xml` e em outros arquivos de configuração. Se o plano atender à instalação, você não precisará fazer alterações nesses arquivos. Por padrão, os arquivos estão localizados no seguinte diretório: `C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep`.

1. No Windows PowerShell, execute `./InitializeInstance.ps1 -Schedule`. Por padrão, o script está localizado no seguinte diretório: `C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts`. Esse script agenda a instância para ser inicializada durante a próxima inicialização. Execute esse script antes de executar o script `SysprepInstance.ps1` na próxima etapa.

1. No Windows PowerShell, execute `./SysprepInstance.ps1`. Por padrão, o script está localizado no seguinte diretório: `C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts`. 

Você é desconectado da instância, e a instância é encerrada. Se você verificar a página **Instances** (Instâncias) no console do Amazon EC2, o estado da instância será alterado de `Running` para `Stopping` e, em seguida, para `Stopped`. Nesse momento, é seguro criar uma AMI com base nessa instância.

## Para atualizar rotas de metadados/KMS para o Server 2016 e posterior ao iniciar uma AMI personalizada
<a name="update-metadata-KMS"></a>

Para atualizar rotas de metadados/KMS para o Server 2016 e posterior ao iniciar uma AMI personalizada, siga estas etapas:
+ Execute a GUI EC2LaunchSettings (C:\$1ProgramData\$1Amazon\$1EC2-Windows\$1Launch\$1Settings\$1Ec2LaunchSettings.exe) e selecione a opção para encerrar com o Sysprep do Windows.
+ Execute EC2LaunchSettings e desligue sem o Sysprep do Windows antes de criar a AMI. Isso configura as tarefas de inicialização do EC2 para serem executadas na próxima inicialização, que definirá as rotas com base na sub-rede da instância.
+ Reprograme manualmente as tarefas de inicialização do EC2 antes de criar uma AMI do [PowerShell](ec2launch-config.md#ec2launch-inittasks). 
**Importante**  
Observe o comportamento padrão de redefinição de senha antes de reprogramar as tarefas.
+ Para atualizar as rotas em uma instância em execução que está passando por ativação do Windows ou comunicação com falhas de metadados de instância, consulte [“Não é possível ativar o Windows”](common-messages.md#activate-windows).

# Criar uma AMI usando o Sysprep do Windows com o EC2Config
<a name="sysprep-using"></a>

Quando você cria uma imagem de uma instância com o serviço EC2Config instalado, ele realiza tarefas específicas à medida que a imagem é preparada. Isso inclui trabalhar com o Sysprep do Windows. Para obter mais informações, consulte [Fases do Sysprep do Windows](ami-create-win-sysprep.md#sysprep-phases).

**Topics**
+ [Ações do Sysprep do Windows](#sysprep-actions)
+ [Após Sysprep](#sysprep-post)
+ [Executar o Sysprep do Windows com o serviço do EC2Config](#sysprep-gui-procedure)

## Ações do Sysprep do Windows
<a name="sysprep-actions"></a>

O Sysprep do Windows e o serviço do EC2Config executam as ações a seguir na preparação de uma imagem.

1. Quando você escolhe **Encerrar com o Sysprep** na caixa de diálogo **Propriedades do EC2 Service)**, o sistema executa o comando **ec2config.exe -sysprep**.

1. O serviço EC2Config lê o conteúdo do arquivo `BundleConfig.xml`. Esse arquivo está localizado no diretório a seguir, por padrão: `C:\Program Files\Amazon\Ec2ConfigService\Settings`.

    O arquivo `BundleConfig.xml` inclui as seguintes configurações. É possível alterar essas configurações:
   + **AutoSysprep**: indica se o Sysprep do Windows deve ser usado automaticamente. Você não precisará mudar esse valor se estiver executando o Sysprep do Windows pela caixa de diálogo de propriedades do serviço do EC2. O valor padrão é `No`.
   + **SetRDPCertificate**: define um certificado autoassinado para o servidor de Desktop Remoto. Isso permite que você use com segurança o Remote Desktop Protocol (RDP) para se conectar à instância. Altere o valor para `Yes` se as novas instâncias precisarem usar um certificado. Essa configuração não é usada com instâncias Windows Server 2012 porque esses sistemas operacionais podem gerar seus próprios certificados. O valor padrão é `No`.
   + **SetPasswordAfterSysprep**: define uma senha aleatória em uma instância recém-executada, criptografa-a com a chave de execução do usuário e gera a senha criptografada no console. Altere o valor para `No` se novas instâncias não precisarem ser definidas com uma senha criptografada aleatória. O valor padrão é `Yes`.
   +  **PreSysprepRunCmd**: o local do comando para execução. Por padrão, o comando está localizado no seguinte diretório:: `C:\Program Files\Amazon\Ec2ConfigService\Scripts\BeforeSysprep.cmd`

1. O sistema executa o `BeforeSysprep.cmd`. Esse comando cria uma chave de registro da seguinte maneira:

   ```
   reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
   ```

   A chave de registro desabilita as conexões RDP até serem re-habilitadas. Desabilitar as conexões RDP é uma medida de segurança necessária, pois, na primeira sessão de inicialização após o Sysprep do Windows ser executado, há um breve período no qual o RDP permite conexões e a senha do Administrador fica em branco.

1. O serviço do EC2Config chama o Sysprep do Windows ao executar o seguinte comando:

   ```
   sysprep.exe /unattend: "C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml" /oobe /generalize /shutdown
   ```

### Generalizar a fase
<a name="sysprep-generalize"></a>
+ A ferramenta remove informações específicas da imagem e as configurações, como nome de computador e SID. Se a instância pertencer a um domínio, ela será removida do domínio. O arquivo de resposta `sysprep2008.xml` inclui as seguintes configurações que afetam a fase: 
  + **PersistAllDeviceInstalls**: essa configuração impede que a Configuração do Windows remova e reconfigure dispositivos, o que acelera o processo de preparação de imagem, pois as AMIs da Amazon exigem a execução de determinados drivers e a nova detecção desses drivers tomaria o tempo.
  + **DoNotCleanUpNonPresentDevices**: essa configuração retém informações de plug and play para dispositivos que não estão presentes no momento.
+ O Sysprep do Windows fecha o SO à medida que se prepara para criar a AMI. O sistema executa uma nova instância ou inicia a instância original.

### Fase especializada
<a name="sysprep-specialize"></a>

O sistema gera requisitos específicos de SO, como um nome de computador e um SID. O sistema também executa as ações a seguir com base em configurações que você especifica no arquivo de resposta sysprep2008.xml.
+ **CopyProfile**: o Sysprep do Windows pode ser configurado para excluir todos os perfis de usuário, incluindo o perfil incorporado do Administrador. Essa configuração retém a conta de Administrador incorporada, de forma que todas as personalizações que você fizer nessa conta serão transferidas para a nova imagem. O valor padrão é Verdadeiro.

  **CopyProfile** substitui o perfil padrão pelo perfil de administrador local existente. Todas as contas conectadas depois da execução de Sysprep do Windows receberão uma cópia desse perfil e do conteúdo dele no primeiro login. 

  Se você não tiver personalizações específicas do perfil do usuário que deseja transferir para a nova imagem, altere essa configuração para falso. O Sysprep do Windows removerá todos os perfis de usuário; isso economiza tempo e espaço em disco. 
+ **TimeZone**: o fuso horário é definido como Coordinated Universal Time (UTC – Tempo universal coordenado), por padrão.
+ **Comando síncrono com pedido 1**: o sistema executa o comando a seguir, que habilita a conta do administrador e especifica o requisito de senha.

  **net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES**
+ **Comando síncrono com pedido 2**: o sistema vasculha a senha do administrador. Essa medida de segurança é criada para impedir que a instância fique acessível após o Sysprep do Windows ser concluído, caso você não tenha habilitado a configuração ec2setpassword.

  C:\$1Program Files\$1Amazon\$1Ec2ConfigService\$1ScramblePassword.exe" -u Administrator
+ **Comando síncrono com pedido 3**: o sistema executa o seguinte comando:

  C:\$1Program Files\$1Amazon\$1Ec2ConfigService\$1Scripts\$1SysprepSpecializePhase.cmd

   Esse comando adiciona a seguinte chave de registro, que re-habilita a RDP:

  reg add "HKEY\$1LOCAL\$1MACHINE\$1SYSTEM\$1CurrentControlSet\$1Control\$1Terminal Server" /v fDenyTSConnections /t REG\$1DWORD /d 0 /f

### Fase OOBE
<a name="sysprep-oobe"></a>

1. Usando o arquivo de resposta do serviço EC2Config, o sistema especifica as seguintes configurações:
   + <InputLocale>en-US</InputLocale>
   + <SystemLocale>en-US</SystemLocale>
   + <UILanguage>en-US</UILanguage>
   + <UserLocale>en-US</UserLocale>
   + <HideEULAPage>true</HideEULAPage>
   + <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
   + <NetworkLocation>Other</NetworkLocation>
   + <ProtectYourPC>3</ProtectYourPC>
   + <BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
   + <TimeZone>UTC</TimeZone>
   + <RegisteredOrganization>Amazon.com</RegisteredOrganization>
   + <RegisteredOwner>Amazon</RegisteredOwner>
**nota**  
Durante as fases de generalização e especialização, o serviço EC2Config monitora o status do SO. Se o EC2Config detectar que o sistema operacional está na fase Sysprep, ele publicará a seguinte mensagem no log do sistema:  
EC2ConfigMonitorState: 0 O Windows está sendo configurado. SysprepState=IMAGE\$1STATE\$1UNDEPLOYABLE

1. Após a conclusão da fase OOBE, o sistema executa `SetupComplete.cmd` a partir do seguinte local: `C:\Windows\Setup\Scripts\SetupComplete.cmd`. Na AMIs públicas da Amazon antes de abril de 2015 este arquivo estava vazio e não executava nada na imagem. Em AMIs públicas posteriores a abril de 2015, o arquivo inclui o seguinte valor: **call "C:\$1Program Files\$1Amazon\$1Ec2ConfigService\$1Scripts\$1PostSysprep.cmd"**.

1. O sistema executa `PostSysprep.cmd`, que realiza as seguintes operações:
   + Define a senha do Administrador para não expirar. Se a senha expirou, os Administradores podem não conseguir fazer login.
   + Define o nome da máquina MSSQLServer (se instalada) para que o nome esteja em sincronia com a AMI.

## Após Sysprep
<a name="sysprep-post"></a>

Após o Sysprep do Windows ser concluído, os serviços do EC2Config enviam a seguinte mensagem para a saída do console:

```
Windows sysprep configuration complete.
			Message: Sysprep Start
			Message: Sysprep End
```

O EC2Config então executa as ações a seguir:

1. Lê o conteúdo do arquivo config.xml e lista todos os plug-ins habilitados. 

1. Executa todos os plug-ins "Antes que o Windows esteja pronto" ao mesmo tempo.
   + Ec2SetPassword
   + Ec2SetComputerName
   + Ec2InitializeDrives
   + Ec2EventLog
   + Ec2ConfigureRDP
   + Ec2OutputRDPCert
   + Ec2SetDriveLetter
   + Ec2WindowsActivate
   + Ec2DynamicBootVolumeSize

1. Após estar concluído, envia uma mensagem "O Windows está pronto" para os logs do sistema de instância.

1. Executa todos os plug-ins "Após o Windows estar pronto" ao mesmo tempo.
   + Amazon CloudWatch Logs 
   + UserData
   + AWS Systems Manager (Systems Manager) 

Para obter mais informações sobre plug-ins do Windows, consulte [Usar o serviço EC2Config para realizar tarefas durante a execução da instância herdada do sistema operacional Windows do EC2](ec2config-service.md).

## Executar o Sysprep do Windows com o serviço do EC2Config
<a name="sysprep-gui-procedure"></a>

Use o procedimento a seguir para criar uma AMI padronizada usando o Sysprep do Windows e o serviço do EC2Config.

1. No console do Amazon EC2, localize ou [crie](creating-an-ami-ebs.md) a AMI que deseja duplicar.

1. Execute e conecte-se à sua instância do Windows.

1. Personalize-a.

1. Especifique as definições de configuração no arquivo de resposta do serviço EC2Config:

   `C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml`

1. No menu **Iniciar** do Windows, escolha **Todos os Programas** e **Configurações do EC2ConfigService**. 

1. Escolha a guia **Image (Imagem)** na caixa de diálogo **Ec2 Service Properties (Propriedades do serviço Ec2)**. Para obter mais informações sobre as opções e as configurações da caixa de diálogo Ec2 Service Properties (Propriedades do serviço Ec2), consulte [Propriedades do serviço Ec2](ec2config-service.md).

1. Selecione uma opção para a senha do Administrador e selecione **Shutdown with Sysprep (Desativação com Sysprep)** ou **Shutdown without Sysprep (Desativação sem Sysprep)**. O EC2Config edita os arquivos de configuração com base na opção de senha selecionada.
   + **Random (Aleatório)**: o EC2Config gera uma senha, criptografa-a com a chave do usuário e exibe a senha criptografada no console. Nós desabilitamos essa configuração depois da primeira execução, de forma que essa senha persistirá se a instância for reinicializada ou parada e inicializada.
   + **Especificar**: a senha é armazenada no arquivo de resposta do Sysprep do Windows de forma não criptografada (texto não criptografado). Quando o Sysprep do Windows é executado em seguida, ele define a senha do Administrador. Se você fechar agora, a senha será definida imediatamente. Quando o serviço é reiniciado novamente, a senha do Administrador é removida. É importante recordar essa senha, pois você não poderá recuperá-la depois.
   + **Manter existente**: a senha existente para a conta do Administrador não muda quando o Sysprep do Windows é executado ou o EC2Config é reiniciado. É importante recordar essa senha, pois você não poderá recuperá-la depois.

1. Escolha **OK**.

Quando você receber uma solicitação para confirmar que deseja executar o Sysprep do Windows e desativar a instância, clique em **Sim**. Você verá que o EC2Config executa o Sysprep do Windows. Em seguida, você é desconectado da instância e a instância é desligada. Se você verificar a página **Instances** (Instâncias) no console do Amazon EC2, o estado da instância mudará de `Running` para `Stopping` e, finalmente, para `Stopped`. Nesse momento, é seguro criar uma AMI com base nessa instância.

Você pode invocar manualmente a ferramenta Sysprep do Windows pela linha de comando usando o seguinte comando:

```
"%programfiles%\amazon\ec2configservice\"ec2config.exe -sysprep"" 
```

**nota**  
As aspas duplas no comando não serão necessárias se o shell do seu CMD já estiver no diretório C:\$1Program Files\$1Amazon\$1EC2ConfigService\$1.

Contudo, é necessário ser muito cuidadoso para que as opções do arquivo XML especificadas na pasta `Ec2ConfigService\Settings` estejam corretas; caso contrário, pode não conseguir conectar-se à instância. Para obter mais informações sobre os arquivos de configurações, consulte [Arquivos de configurações do EC2Config](ec2config-service.md#UsingConfigXML_WinAMI). Para ver um exemplo de como configurar e executar o Sysprep do Windows pela linha de comando, consulte `Ec2ConfigService\Scripts\InstallUpdates.ps1`.

# Copiar uma AMI do Amazon EC2
<a name="CopyingAMIs"></a>

Quando precisar de uma configuração consistente de instância do Amazon EC2 em várias regiões, será possível usar uma única imagem de máquina da Amazon (AMI) como modelo para inicializar todas as instâncias. No entanto, as AMIs são recursos específicos de uma região. Para inicializar uma instância em uma determinada Região da AWS, a AMI precisará estar localizada nessa região. Portanto, para usar a mesma AMI em várias regiões, você precisará copiá-la da região de origem para cada região de destino.

O método usado para copiar uma AMI dependerá de você estar copiando entre regiões *dentro da mesma [partição](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#partition)* ou *entre diferentes partições*:
+ **Cópia entre regiões**: copie AMIs entre regiões *na mesma partição*, por exemplo, entre regiões na partição comercial. Esse método de cópia está descrito neste tópico.
+ **Cópia entre partições:**: copie AMIs *de uma partição da para outra partição*, por exemplo, da partição comercial para a partição AWS GovCloud (US). Para obter informações sobre esse método de cópia, consulte [Armazenar e restaurar uma AMIAMIs permitidas](ami-store-restore.md).
+ **Cópia entre contas**: crie uma cópia de uma AMI que outra Conta da AWS tenha [compartilhado com a sua Conta da AWS](sharingamis-explicit.md). Esse método de cópia está descrito neste tópico.

O tempo necessário para concluir a operação de cópia da AMI entre regiões e entre contas é apresentado com base no melhor esforço. Se precisar controlar o tempo de conclusão, será possível especificar uma janela de conclusão que varia de 15 minutos a 48 horas, garantindo que sua AMI seja copiada dentro do prazo exigido. Cobranças adicionais são aplicáveis a operações de cópia de AMI baseadas em tempo. Para obter mais informações, consulte [Cópias baseadas em tempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html), no *Guia do usuário do Amazon EBS*.

**Topics**
+ [Considerações](#copy-ami-considerations)
+ [Custos](#copy-ami-costs)
+ [Conceder permissões para copiar AMIs do Amazon EC2](copy-ami-permissions.md)
+ [Copiar um AMI](#ami-copy-steps)
+ [Parar uma operação de cópia de AMI pendente](#ami-copy-stop)
+ [Como funciona a cópia de uma AMI do Amazon EC2](how-ami-copy-works.md)

## Considerações
<a name="copy-ami-considerations"></a>
+ **Permissão para copiar AMIs**: é possível usar políticas do IAM para conceder ou negar aos usuários permissão para copiar AMIs. A partir de 28 de outubro de 2024, você pode especificar permissões no nível do recurso para a ação `CopyImage` na AMI de origem. As permissões no nível do recurso da nova AMI estão disponíveis como antes.
+ **Permissões de execução e permissões de bucket do Amazon S3**: a AWS não copia permissões de execução nem permissões de bucket do Amazon S3 da AMI de origem para a nova AMI. Após a conclusão da operação de cópia, você pode aplicar permissões de inicialização e permissões de bucket do Amazon S3 à nova AMI.
+ **Tags**: é possível copiar somente as tags de AMI definidas pelo usuário que você anexou à AMI de origem. Tags do sistema (prefixadas com `aws:`) e tags definidas pelo usuário anexadas por outras Contas da AWS não serão copiadas. Ao copiar uma AMI, você pode anexar novas tags à nova AMI e seus snapshots de suporte.
+ **Cotas para cópias de AMI baseadas em tempo**: depois que você atingir sua *cota cumulativa de throughput para cópias de snapshot*, as solicitações subsequentes de cópias de AMI baseadas no tempo vão falhar. Para obter mais informações, consulte [Cotas para cópias baseadas em tempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html#time-based-copies-quota), no *Guia do Usuário do Amazon EBS*.
+ **Cópias de origem-destino compatíveis**: a localização da AMI de origem determina se você pode copiá-la e os destinos permitidos para a nova AMI:
  + Se a AMI de origem estiver em uma região, será possível copiá-la dentro dessa região para outra região, para um Outpost associado a essa região ou para uma zona local na região.
  + Se a AMI de origem estiver em uma zona local, será possível copiá-la dentro dessa zona local para a região principal dessa zona local ou para outras zonas locais específicas com a mesma região principal.
  + Se a AMI de origem estiver em, um Outpost, você não poderá copiá-la.
+ **Parâmetros da CLI para origem e destino**: ao usar a CLI, os seguintes parâmetros são compatíveis para especificar o local de origem da AMI a ser copiada e o destino da nova AMI. Observe que a operação de cópia deve ser iniciada na região de destino; se você omitir o parâmetro `--region`, o destino assumirá a região padrão configurada em suas configurações da AWS CLI.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/CopyingAMIs.html)

## Custos
<a name="copy-ami-costs"></a>

Não há cobrança pela cópia de uma AMI quando não houver nenhum tempo de conclusão especificado. No entanto, há cobranças adicionais para operações de cópia de AMI baseadas em tempo. Para obter mais informações, consulte [Cópias baseadas em tempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html#time-based-copies-pricing), no *Guia do usuário do Amazon EBS*.

Aplicam-se as taxas padrão para transferência de dados e armazenamento. Se copiar uma AMI baseada em EBS, você será cobrado pelo armazenamento de snapshots adicionais do EBS.

# Conceder permissões para copiar AMIs do Amazon EC2
<a name="copy-ami-permissions"></a>

Para copiar uma AMI baseada no EBS ou no Amazon S3, são necessárias as seguintes permissões do IAM:
+ `ec2:CopyImage`: para copiar a AMI. Para AMIs baseadas no EBS, ele também concede permissão para copiar os snapshots de suporte da AMI.
+ `ec2:CreateTags`: para marcar a AMI de destino. Para AMIs baseadas no EBS, ele também concede permissão para marcar os snapshots de apoio da AMI de destino.

Se você estiver copiando uma AMI baseada em uma instância armazenada, as seguintes permissões *adicionais* do IAM serão necessárias:
+ `s3:CreateBucket`: para criar o bucket do S3 na região de destino da nova AMI
+ `s3:PutBucketOwnershipControls`: para habilitar ACLs para o bucket do S3 recém-criado para que os objetos possam ser gravados com a `aws-exec-read` [ACL pré-configurada](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl)
+ `s3:GetBucketAcl`: para ler as ACLs para o bucket de origem
+ `s3:ListAllMyBuckets`: para encontrar um bucket do S3 existente para AMIs na região de destino
+ `s3:GetObject`: para ler os objetos no bucket de origem
+ `s3:PutObject`: para escrever os objetos no bucket de destino
+ `s3:PutObjectAcl`: para escrever as permissões para os novos objetos no bucket de destino

**nota**  
A partir de 28 de outubro de 2024, você pode especificar permissões no nível do recurso para a ação `CopyImage` na AMI de origem. As permissões no nível do recurso da AMI de destino estão disponíveis como antes. Para obter mais informações, consulte **CopyImage** na tabela em [Ações definidas pelo Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) na *Referência de autorização do serviço*.

## Exemplo de política do IAM para copiar uma AMI baseada em EBS e marcar a AMI e os snapshots de destino
<a name="permissions-to-copy-ebs-backed-ami"></a>

O exemplo de política a seguir concede a você permissão para copiar qualquer AMI baseada no EBS e marcar a AMI de destino e seus snapshots de apoio.

**nota**  
A partir de 28 de outubro de 2024, você pode especificar snapshots no elemento `Resource`. Para obter mais informações, consulte **CopyImage** na tabela em [Ações definidas pelo Amazon EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) na *Referência de autorização do serviço*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "PermissionToCopyAllImages",
        "Effect": "Allow",
        "Action": [
            "ec2:CopyImage",
            "ec2:CreateTags"
        ],
        "Resource": [
            "arn:aws:ec2:*::image/*",
            "arn:aws:ec2:*::snapshot/*"
        ]
    }]
}
```

------

## Exemplo de política do IAM para copiar uma AMI baseada no EBS, mas negar a marcação de novos snapshots.
<a name="permissions-to-copy-ebs-backed-ami-but-deny-tagging-new-snapshots"></a>

A permissão `ec2:CopySnapshot` é concedida automaticamente quando você recebe a permissão `ec2:CopyImage`. A permissão para marcar os novos snapshots de apoio pode ser negada explicitamente, anulando o efeito `Allow` da ação `ec2:CreateTags`.

O exemplo de política a seguir concede a você permissão para copiar qualquer AMI baseada no EBS, mas proíbe a marcação de novos snapshots de apoio da AMI de destino.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": [
                "ec2:CopyImage",
                "ec2:CreateTags"
            ],
            "Resource": [
                "arn:aws:ec2:*::image/*",
                "arn:aws:ec2:*::snapshot/*"
            ]
        },
        {
            "Effect": "Deny",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:::snapshot/*"
        }
    ]
}
```

------

## Exemplo de política do IAM para copiar uma AMI baseada no Amazon S3 e adicionar marcação à AMI de destino
<a name="permissions-to-copy-instance-store-backed-ami"></a>

A política de exemplo apresentada a seguir concede permissão para copiar qualquer AMI baseada no Amazon S3 no bucket de origem especificado para a região indicada e adicionar etiquetas à AMI de destino.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "PermissionToCopyAllImages",
            "Effect": "Allow",
            "Action": [
                "ec2:CopyImage",
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:*::image/*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:GetBucketAcl",
                "s3:PutObjectAcl",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amis-for-111122223333-in-us-east-2-hash"
            ]
        }
    ]
}
```

------

Para localizar o nome do recurso da Amazon (ARN) do bucket de origem da AMI, abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2](https://console.aws.amazon.com/ec2/). No painel de navegação, escolha **AMIs** e localize o nome do bucket na coluna **Source (Origem)**.

**nota**  
Você precisa da permissão `s3:CreateBucket` apenas na primeira vez em que copiar uma AMI baseada no Amazon S3 para uma região específica. Depois disso, o bucket do Amazon S3 que foi criado na região será usado para armazenar todas as AMIs futuras que você copiar para essa região.

## Copiar um AMI
<a name="ami-copy-steps"></a>

É possível copiar uma AMI de sua propriedade ou uma AMI compartilhada com você de outra conta. Para obter as combinações de origem e destino compatíveis, consulte [Considerações](#copy-ami-considerations).

------
#### [ Console ]

**Copiar uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Pela barra de navegação do console, selecione a região que contém a AMI.

1. No painel de navegação, selecione **AMIs** para exibir a lista de AMIs disponíveis para você na região.

1. Caso não veja a AMI que deseja copiar, selecione um filtro diferente. É possível filtrar por AMIs **Pertencentes a mim**, **Imagens privadas**, **Imagens públicas** e **Imagens desabilitadas**.

1. Selecione a AMI para copiar e escolha **Ações**, **Copiar AMI**.

1. Na página **Copy imagem de máquina da Amazon (AMI)**, especifique as seguintes informações:

   1. **AMI copy name** (Nome da cópia da AMI): o nome da nova AMI. É possível incluir informações do sistema operacional no nome, pois o Amazon EC2 não fornece essas informações ao exibir detalhes sobre a AMI.

   1. **AMI copy description**: (Descrição da cópia da AMI): por padrão, a descrição inclui informações sobre a AMI de origem, de forma que você possa distinguir uma cópia da original. É possível alterar essa descrição conforme necessário.

   1. **Destination region** (Região de destino): a região para a qual a AMI deve ser copiada. Para obter mais informações, consulte [Cópia entre regiões](how-ami-copy-works.md#copy-amis-across-regions) e [Cópia entre contas](how-ami-copy-works.md#copy-ami-across-accounts).

   1. **Copiar tags**: marque essa caixa de seleção para incluir as tags de AMI definidas pelo usuário ao copiar a AMI. Tags do sistema (prefixadas com `aws:`) e tags definidas pelo usuário anexadas por outras Contas da AWS não serão copiadas.

   1. **Cópia com base emtempo**: você pode especificar se a operação de cópia será concluída dentro de um prazo específico ou com base no melhor esforço, da seguinte forma:
      + Para concluir a cópia dentro de um prazo específico:
        + Selecione **Habilitar cópia com base em tempo**.
        + Em **Duração da conclusão**, insira o número de minutos (em incrementos de 15 minutos) permitidos para a operação de cópia. A duração da conclusão é aplicável a todos os snapshots associados à AMI.

          Para obter mais informações, consulte [Cópias baseadas em tempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html), no *Guia do usuário do Amazon EBS*.
      + Para concluir a cópia com base no melhor esforço:
        + Deixe a opção **Habilitar cópia com base no tempo** desmarcada.

   1. (Somente AMIs baseadas no EBS) **Criptografar snapshots do EBS de uma cópia da AMI**: marque essa caixa de seleção para criptografar os snapshots de destino ou para recriptografá-los usando uma chave diferente. Se a opção de criptografar por padrão estiver habilitada, a caixa de seleção **Criptografar snapshots do EBS da cópia da AMI** estará selecionada e não poderá ser desmarcada. Para obter mais informações, consulte [Criptografar e copiar](how-ami-copy-works.md#ami-copy-encryption).

   1. (Somente AMIs baseadas no EBS) **Chave do KMS**: a chave do KMS usada para criptografar os snapshots de destino.

   1. **Tags**: é possível marcar a nova AMI e os novos snapshots com as mesmas tags ou pode marcá-los com tags diferentes.
      + Para marcar a nova AMI e novos os snapshots com as *mesmas* tags, escolha **Marcar imagem e snapshots juntos**. As mesmas tags são aplicadas à nova AMI e a cada snapshot criado.
      + Para marcar a nova AMI e os snapshots com tags *diferentes*, escolha **Marcar imagem e snapshots separadamente**. Diferentes tags são aplicadas à nova AMI e aos snapshots criados. Observe, no entanto, que todos os novos snapshots criados recebem as mesmas tags; não é possível marcar cada snapshot com uma tag diferente.

      (Opcional) Para adicionar uma tag, escolha **Add tag** (Adicionar tag) e digite a chave e o valor da tag. Repita esse procedimento para cada tag.

   1. Quando estiver com tudo pronto para copiar a AMI, escolha **Copiar AMI**.

      O status inicial da nova AMI é `Pending`. A operação de cópia da AMI estará concluída quando o status for `Available`.

------
#### [ AWS CLI ]

**Para copiar uma AMI de uma região para outra**  
Use o comando [ copy-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html) (Copiar imagem). Especifique as regiões de origem e de destino. Especifique a região de origem usando o parâmetro `--source-region`. É possível especificar a região de destino usando o parâmetro `--region` (ou omitir esse parâmetro para assumir a região padrão configurada em suas configurações da AWS CLI).

```
aws ec2 copy-image \
    --source-image-id ami-0abcdef1234567890 \
    --source-region us-west-2 \
    --name my-ami \
    --region us-east-1
```

Quando você criptografar um snapshot de destino durante a cópia de AMI, precisará especificar os parâmetros adicionais: `--encrypted` e `--kms-key-id`.

**Para copiar uma AMI de uma região para uma zona local**  
Use o comando [ copy-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html) (Copiar imagem). Você deve especificar a origem e o destino. Especifique a região de origem usando o parâmetro `--source-region`. Você especifica a zona local de destino usando o parâmetro `--destination-availability-zone` (você pode usar `--destination-availability-zone-id` em vez disso). Observe que você só pode copiar uma AMI de uma região para uma zona local dentro dessa mesma região.

```
aws ec2 copy-image \
    --source-image-id ami-0abcdef1234567890 \
    --source-region cn-north-1 \
    --destination-availability-zone cn-north-1-pkx-1a \
    --name my-ami \
    --region cn-north-1
```

**Para copiar uma AMI de uma zona local para uma região**  
Use o comando [ copy-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html) (Copiar imagem). Você deve especificar a origem e o destino. Especifique a região de origem usando o parâmetro `--source-region`. Você especifica a região de destino usando o parâmetro `--region` (ou omite esse parâmetro para assumir a região padrão configurada em suas configurações da AWS CLI). A zona local de origem é assumida da localização da ID da AMI de origem especificada. Observe que você só pode copiar uma AMI de uma zona local para sua região principal.

```
aws ec2 copy-image \
    --source-image-id ami-0abcdef1234567890 \
    --source-region cn-north-1 \
    --name my-ami \
    --region cn-north-1
```

**Para copiar uma AMI de uma zona local para outra**  
Use o comando [ copy-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/copy-image.html) (Copiar imagem). Você deve especificar a origem e o destino. Você especifica a região de origem da zona local usando o parâmetro `--source-region`. Você especifica a zona local de destino usando o parâmetro `--destination-availability-zone` (você pode usar `--destination-availability-zone-id` em vez disso). A zona local de origem é assumida da localização da ID da AMI de origem especificada. Você especifica a região principal da zona local de destino usando o parâmetro `--region` (ou omite esse parâmetro para assumir a região padrão configurada em suas configurações da AWS CLI).

```
aws ec2 copy-image \
    --source-image-id ami-0abcdef1234567890 \
    --source-region cn-north-1 \
    --destination-availability-zone cn-north-1-pkx-1a \
    --name my-ami \
    --region cn-north-1
```

------
#### [ PowerShell ]

**Para copiar uma AMI de uma região para outra**  
Use o cmdlet [Copy-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-EC2Image.html). Especifique as regiões de origem e de destino. Especifique a região de origem usando o parâmetro `-SourceRegion`. É possível especificar a região de destino usando o parâmetro `-Region` ou o cmdlet [Set-AWSDefaultRegion](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-installing-specifying-region.html).

```
Copy-EC2Image `
    -SourceImageId ami-0abcdef1234567890 `
    -SourceRegion us-west-2 `
    -Name my-ami `
    -Region us-east-1
```

Quando você criptografar um snapshot de destino durante a cópia de AMI, precisará especificar os parâmetros adicionais: `-Encrypted` e `-KmsKeyId`.

**Para copiar uma AMI de uma região para uma zona local**  
Use o cmdlet [Copy-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-EC2Image.html). Você deve especificar a origem e o destino. Especifique a região de origem usando o parâmetro `-SourceRegion`. Você especifica a zona local de destino usando o parâmetro `-DestinationAvailabilityZone` (você pode usar `-DestinationAvailabilityZoneId` em vez disso). Observe que você só pode copiar uma AMI de uma região para uma zona local dentro dessa mesma região.

```
Copy-EC2Image `
    -SourceImageId ami-0abcdef1234567890 `
    -SourceRegion cn-north-1 `
    -DestinationAvailabilityZone cn-north-1-pkx-1a `
    -Name my-ami `
    -Region cn-north-1
```

**Para copiar uma AMI de uma zona local para uma região**  
Use o cmdlet [Copy-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-EC2Image.html). Você deve especificar a origem e o destino. Especifique a região de origem usando o parâmetro `-SourceRegion`. É possível especificar a região de destino usando o parâmetro `-Region` ou o cmdlet [Set-AWSDefaultRegion](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-installing-specifying-region.html). A zona local de origem é assumida da localização da ID da AMI de origem especificada. Observe que você só pode copiar uma AMI de uma zona local para sua região principal.

```
Copy-EC2Image `
    -SourceImageId ami-0abcdef1234567890 `
    -SourceRegion cn-north-1 `
    -Name my-ami `
    -Region cn-north-1
```

**Para copiar uma AMI de uma zona local para outra**  
Use o cmdlet [Copy-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Copy-EC2Image.html). Você deve especificar a origem e o destino. Você especifica a região de origem da zona local usando o parâmetro `-SourceRegion`. Você especifica a zona local de destino usando o parâmetro `-DestinationAvailabilityZone` (você pode usar `-DestinationAvailabilityZoneId` em vez disso). A zona local de origem é assumida da localização da ID da AMI de origem especificada. É possível especificar a região principal da zona local de destino usando o parâmetro `-Region` ou o cmdlet [Set-AWSDefaultRegion](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-installing-specifying-region.html).

```
Copy-EC2Image `
    -SourceImageId ami-0abcdef1234567890 `
    -SourceRegion cn-north-1 `
    -DestinationAvailabilityZone cn-north-1-pkx-1a `
    -Name my-ami `
    -Region cn-north-1
```

------

## Parar uma operação de cópia de AMI pendente
<a name="ami-copy-stop"></a>

É possível interromper uma cópia pendente de uma AMI usando os procedimentos a seguir.

------
#### [ Console ]

**Para interromper uma operação de cópia de AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Na barra de navegação, selecione a região de destino com o seletor de região.

1. No painel de navegação, selecione **AMIs**.

1. Selecione a AMI cuja cópia será interrompida e escolha **Ações** e **Cancelar registro da AMI**.

1. Quando a confirmação for solicitada, escolha **Deregister AMI** (Cancelar registro da AMI).

------
#### [ AWS CLI ]

**Para interromper uma operação de cópia de AMI**  
Use o comando [deregister-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-image.html).

```
aws ec2 deregister-image --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Para interromper uma operação de cópia de AMI usando**  
Use o cmdlet [Unregister-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Image.html).

```
Unregister-EC2Image -ImageId ami-0abcdef1234567890
```

------

# Como funciona a cópia de uma AMI do Amazon EC2
<a name="how-ami-copy-works"></a>

Copiar uma AMI de origem resulta em uma nova AMI idêntica, mas separada, que também é chamada de AMI de *destino*. A AMI de destino tem o próprio ID de AMI exclusivo. É possível alterar ou cancelar o registro da AMI de origem sem afetar a AMI de destino. O inverso também é verdadeiro.

No caso de uma AMI baseada no EBS, cada um de seus snapshots de suporte é copiado para um snapshot de destino idêntico, mas separado. Se você copiar uma AMI para uma nova Região, os snapshots serão cópias completas (não incrementais). Se você criptografar snapshots de suporte não criptografados ou criptografá-los para uma nova chave KMS, os snapshots serão cópias completas (não incrementais). Operações de cópia subsequentes de uma AMI resultam em cópias incrementais dos snapshots de suporte.

**Topics**
+ [Cópia entre regiões](#copy-amis-across-regions)
+ [Cópia entre contas](#copy-ami-across-accounts)
+ [Operações de cópia de AMI baseadas no tempo](#ami-time-based)
+ [Criptografar e copiar](#ami-copy-encryption)

## Cópia entre regiões
<a name="copy-amis-across-regions"></a>

Copiar uma AMI entre regiões geograficamente diversas traz os seguintes benefícios:
+ Implantação global consistente: copiar uma AMI de uma região para outra permite que você execute instâncias consistentes com base na mesma AMI em diferentes regiões.
+ Escalabilidade: É possível mais facilmente projetar e construir aplicações globais que atendam às necessidades dos seus usuários, onde quer que estejam.
+ Performance: é possível aumentar a performance ao distribuir sua aplicação, além de localizar os componentes essenciais do sua aplicação em maior proximidade de seus usuários. Também é possível aproveitar recursos específicos da região, como tipos de instância ou outros serviços da AWS.
+ Alta disponibilidade: é possível projetar e implantar aplicações nas regiões da AWS, de forma a aumentar a disponibilidade.

O diagrama a seguir mostra as relações entre uma AMI de origem e duas AMIs copiadas em regiões diferentes, assim como as instâncias do EC2 executadas por cada uma. Ao executar uma instância a partir de uma AMI, ela residirá na mesma região em que a AMI reside. Se você fizer alterações à AMI de origem e quiser que essas alterações sejam refletidas nas AMIs das regiões de destino, deve recopiar a AMI de origem nas regiões de destino.

![\[AMIs copiadas em diferentes regiões\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami_copy.png)


Ao copiar uma AMI baseada no Amazon S3 para uma região pela primeira vez, criamos um bucket do Amazon S3 para as AMIs copiadas para essa região. Todas as AMIs baseadas no Amazon S3 que você copia para essa região são armazenadas neste bucket. Os nomes do bucket têm o seguinte formato: amis-for-*account*-in-*region*-*hash*. Por exemplo: `amis-for-123456789012-in-us-east-2-yhjmxvp6`.

**Pré-requisito**  
Antes de copiar uma AMI, é preciso garantir que o conteúdo da AMI de origem seja atualizado para oferecer suporte à execução em uma região diferente. Por exemplo, atualize todas as string de conexão com o banco de dados ou dados de configuração de aplicação para apontarem para os recursos apropriados. Caso contrário, as instâncias executadas pela nova AMI na região de destino ainda poderão usar os recursos da região de origem, o que pode afetar a performance e o custo.

**Limitações**
+ Regiões de destino estão limitadas a 300 operações de cópia de AMI simultâneas. Isso também é aplicável a operações de cópia de AMI baseadas no tempo.
+ Não é possível copiar uma AMI paravirtual (PV) em uma região que não oferece suporte a AMIs PV. Para obter mais informações, consulte [Tipos de virtualização](ComponentsAMIs.md#virtualization_types).

## Cópia entre contas
<a name="copy-ami-across-accounts"></a>

Se uma AMI de outra Conta da AWS for [compartilhada com a sua Conta da AWS](sharingamis-explicit.md), será possível copiar a AMI compartilhada. Isso é conhecido como cópia entre contas. A AMI que é compartilhada com você é a AMI de origem. Quando copia a AMI de origem, você cria uma nova AMI. A nova AMI geralmente é chamada de AMI de destino.

**Custos da AMI**
+ Para a AMI compartilhada, a cobrança pelo armazenamento na região é lançada na conta da AMI compartilhada.
+ Se copiar uma AMI compartilhada com sua conta, você será o proprietário da AMI de destino na sua conta.
  + As taxas de transferência padrão do Amazon EBS ou do Amazon S3 são cobradas do proprietário da AMI de origem.
  + O armazenamento da AMI de destino na região de destino é cobrado de você.

**Permissões de recursos**  
Para copiar uma AMI compartilhada com você de outra conta, o proprietário da AMI de origem precisará conceder permissão de leitura para o armazenamento que suporta a AMI e não apenas para a própria AMI. O armazenamento corresponde ao snapshot do EBS associado, no caso de uma AMI baseada no Amazon EBS, ou a um bucket do S3 associado, no caso de uma AMI baseada no Amazon S3. Se a AMI compartilhada tiver snapshots criptografados, o proprietário deve compartilhar a chave ou as chaves com você. Para obter mais informações sobre a concessão de permissões de recursos para snapshots do EBS, consulte [Compartilhar um snapshot do Amazon EBS com outras Contas da AWS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html) no *Guia do usuário do Amazon EBS*. Para buckets do S3, consulte [Gerenciamento de identidade e acesso no Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-iam.html) no *Guia do usuário do Amazon S3*.

**nota**  
As tags anexadas à AMI de origem não são copiadas entre contas para a AMI de destino.

## Operações de cópia de AMI baseadas no tempo
<a name="ami-time-based"></a>

Quando você inicia uma operação de cópia de AMI baseada no tempo para uma AMI baseada no EBS com um único snapshot associado, ela se comporta da mesma maneira que uma **operação individual de cópia de snapshot baseada no tempo**, e as mesmas limitações de throughput são aplicáveis.

Quando você inicia uma operação de cópia de AMI baseada no tempo para uma AMI baseada no EBS com vários snapshots associados, ela se comporta da mesma maneira que **operações simultâneas de cópia de snapshot baseadas no tempo**, e as mesmas limitações de throughput são aplicáveis. Cada snapshot associado resulta em uma solicitação de cópia de snapshot separada, cada qual contribuindo para sua cota cumulativa de throughput de cópias de snapshots. A duração da conclusão que você especifica é aplicável a cada snapshot associado.

Para obter mais informações, consulte [Cópias baseadas em tempo](https://docs.aws.amazon.com/ebs/latest/userguide/time-based-copies.html), no *Guia do usuário do Amazon EBS*.

## Criptografar e copiar
<a name="ami-copy-encryption"></a>

A tabela a seguir mostra o suporte a criptografia para vários cenários de cópia de AMI. Apesar de ser possível copiar um snapshot não criptografado para render um snapshot criptografado, você não pode copiar um snapshot criptografado para render um não criptografado.


| Cenário | Descrição | Compatível | 
| --- | --- | --- | 
| 1 | Não criptografado para não criptografado | Sim | 
| 2 | Criptografado para criptografado | Sim | 
| 3 | Não criptografado para criptografado | Sim | 
| 4 | Criptografado para não criptografado | Não | 

**nota**  
A criptografia durante a ação `CopyImage` se aplica somente a AMIs baseadas no Amazon EBS. Por não usar snapshots, uma AMI baseada no Amazon S3 não pode ter o status de criptografia alterado por meio da cópia.

Ao copiar uma AMI sem especificar parâmetros de criptografia, o snapshot de apoio é copiado com seu status de criptografia original por padrão. Portanto, se a AMI de origem for apoiada por um snapshot não criptografado, o snapshot de destino resultante também não será criptografado. Da mesma forma, se o snapshot da AMI de origem for criptografado, o snapshot de destino resultante também será criptografado pela mesma chave do AWS KMS. Em AMIs apoiadas por vários snapshots, cada snapshot de destino preserva o estado de criptografia do snapshot de origem correspondente.

Para alterar o estado de criptografia dos snapshots de destino de apoio durante uma cópia da AMI, você pode especificar parâmetros de criptografia. O exemplo a seguir mostra um caso não padrão, em que os parâmetros de criptografia são especificados com a ação `CopyImage` para alterar o estado de criptografia da AMI de destino.

**Copiar uma AMI de origem não criptografada para uma AMI de destino criptografada**

Nesse cenário, uma AMI baseada em um snapshot raiz não criptografado é copiada para uma AMI com um snapshot raiz criptografado. A ação `CopyImage` é invocada com dois parâmetros de criptografia, incluindo uma chave gerenciada pelo cliente. Como resultado, o status de criptografia do snapshot raiz muda, de modo que a AMI de destino tenha suporte de um snapshot raiz contendo os mesmos dados que o snapshot de origem, mas criptografado usando a chave especificada. Você incorre em custos de armazenamento para os snapshots em ambas as AMIs, bem como cobranças para todas as instâncias iniciadas a partir de uma AMI.

**nota**  
Habilitar a criptografia por padrão tem o mesmo efeito que configurar o parâmetro `Encrypted` como `true` para todos os snapshots na AMI.

![\[Copiar AMI e criptografar snapshot em tempo real\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami-to-ami-convert.png)


Configurar o parâmetro `Encrypted` criptografa o snapshot único dessa instância. Se você não especificar o parâmetro `KmsKeyId`, a chave gerenciada pelo cliente padrão será usada para criptografar a cópia do snapshot.

Para obter mais informações sobre como copiar AMIs com snapshots criptografados, consulte [Usar criptografia com AMIs com EBS](AMIEncryption.md).

# Armazenar e restaurar uma AMI usando o S3
<a name="ami-store-restore"></a>

É possível armazenar uma imagem de máquina da Amazon (AMI) em um bucket do Amazon S3, copiar a AMI para outro bucket do S3 e restaurá-la a partir do bucket do S3. Ao armazenar e restaurar uma AMI usando buckets do S3, é possível copiar AMIs de uma partição da AWS para outra, por exemplo, da principal partição comercial para a partição AWS GovCloud (US). Também é possível fazer cópias de arquivamento de AMIs armazenando-as em um bucket do S3.

As APIs compatíveis para armazenar e restaurar uma AMI usando o S3 são `CreateStoreImageTask``DescribeStoreImageTasks` e `CreateRestoreImageTask`.

`CopyImage` é a API recomendada para copiar AMIs *dentro* de uma partição da AWS. No entanto, `CopyImage` não pode copiar uma AMI para *outra* partição.

Para obter mais informações sobre as partições da AWS, consulte *partição* na página [Nomes do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) no *Guia do usuário do IAM*.

**Atenção**  
Certifique-se de cumprir todas as leis e requisitos de negócios aplicáveis ao mover dados entre partições da AWS ou regiões da AWS, incluindo, entre outros, quaisquer regulamentos governamentais aplicáveis e requisitos de residência de dados.

**Topics**
+ [Casos de uso](#use-cases)
+ [Limitações](#ami-store-restore-limitations)
+ [Custos](#store-restore-costs)
+ [Como o armazenamento e a restauração de uma AMI funciona](store-restore-how-it-works.md)
+ [Criar uma tarefa de armazenamento de imagem](work-with-ami-store-restore.md)

## Casos de uso
<a name="use-cases"></a>

**Topics**
+ [Copiar uma AMI entre partições da AWS](#copy-to-partition)
+ [Fazer cópias de arquivamento de AMIs](#archival-copies)

### Copiar uma AMI entre partições da AWS
<a name="copy-to-partition"></a>

Ao armazenar e restaurar uma AMI usando buckets do S3, é possível copiar uma AMI de uma partição da AWS para outra ou de uma região da AWS para outra. No exemplo a seguir, você copia uma AMI da partição comercial principal para a partição AWS GovCloud (US), especificamente da região `us-east-2` para a região `us-gov-east-1`.

Para copiar uma AMI de uma partição para outra, siga estas etapas:
+ Armazene a AMI em um bucket do S3 na região atual usando `CreateStoreImageTask`. Neste exemplo, o bucket do S3 está localizado em `us-east-2`.
+ Monitore o andamento da tarefa de armazenamento usando `DescribeStoreImageTasks`. O objeto fica visível no bucket do S3 quando a tarefa é concluída.
+ Copie o objeto da AMI armazenado para um bucket do S3 na partição de destino usando um procedimento de sua escolha. Neste exemplo, o bucket do S3 está localizado em `us-gov-east-1`.
**nota**  
Como você precisa de credenciais diferentes da AWS para cada partição, você não pode copiar um objeto S3 diretamente de uma partição para outra. O processo para copiar um objeto S3 entre partições está fora do escopo desta documentação. Fornecemos os processos de cópia a seguir como exemplos, mas use o processo de cópia que atenda aos seus requisitos de segurança.  
Para copiar uma AMI entre partições, o processo de cópia pode ser tão simples quanto o seguinte: [baixe o objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html) do bucket de origem para um host intermediário (por exemplo, uma instância do EC2 ou um laptop) e [carregue o objeto](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) do host intermediário no bucket de destino. Para cada etapa do processo, use as credenciais da AWS para a partição.
Para um uso mais sustentável, considere desenvolver uma aplicação que gerencia as cópias, potencialmente usando [downloads e uploads de várias partes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)do S3.
+ Restaure a AMI do bucket do S3 na partição de destino usando `CreateRestoreImageTask`. Neste exemplo, o bucket do S3 está localizado em `us-gov-east-1`.
+ Monitore o andamento da tarefa de restauração descrevendo a AMI para verificar quando seu estado se torna disponível. Também é possível monitorar as porcentagens de progresso dos snapshots que compõem a AMI restaurada descrevendo os instantâneos.

### Fazer cópias de arquivamento de AMIs
<a name="archival-copies"></a>

É possível fazer cópias de arquivamento de AMIs armazenando-as em um bucket do S3. A AMI é embalada em um único objeto no S3 e todos os metadados da AMI (excluindo informações de compartilhamento) são preservados como parte da AMI armazenada. Os dados da AMI são compactados como parte do processo de armazenamento. AMIs que contêm dados que podem ser facilmente compactados resultarão em objetos menores no S3. Para reduzir custos, é possível usar camadas de armazenamento S3 mais econômicas. Para obter mais informações, consulte [Classes de armazenamento do Amazon S3](https://aws.amazon.com/s3/storage-classes/) e [definição de preço do Amazon S3](https://aws.amazon.com/s3/pricing/)

## Limitações
<a name="ami-store-restore-limitations"></a>
+ Para armazenar uma AMI, sua Conta da AWS deve possuir a AMI e seus snapshots, ou a AMI e seus snapshots devem ser [compartilhados diretamente com sua conta](sharingamis-explicit.md). Você não pode armazenar uma AMI se ela for [compartilhada publicamente](sharingamis-intro.md) apenas.
+ Somente AMIs baseadas no EBS podem ser armazenadas usando essas APIs.
+ Não há suporte a AMIs paravirtuais (PV).
+ O tamanho de uma AMI (antes da compactação) que pode ser armazenada é limitado a 5.000 GB.
+ Cota em solicitações de imagem de armazenamento: 1.200 GB de trabalho de armazenamento (dados de snapshots) em andamento.
+ Cota em solicitações de imagem de restauração: 600 GB de trabalho de restauração (dados de snapshots) em andamento.
+ Durante a tarefa de armazenamento, os snapshots não devem ser excluídos e a entidade principal do IAM que faz o armazenamento deve ter acesso aos snapshots, caso contrário o processo de armazenamento apresentará falha.
+ Não é possível criar várias cópias de uma AMI no mesmo bucket do S3.
+ Uma AMI armazenada em um bucket do S3 não pode ser restaurada com seu ID de AMI original. É possível mitigar isso usando [Alias de AMI](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
+ Atualmente, as APIs de armazenamento e restauração só são compatíveis se for utilizada a AWS Command Line Interface, os AWS SDKs e a API do Amazon EC2. Não é possível armazenar e restaurar uma AMI usando o console do Amazon EC2.

## Custos
<a name="store-restore-costs"></a>

Quando você armazena e restaura AMIs usando o S3, é cobrado pelos serviços usados pelas APIs de armazenamento e restauração e pela transferência de dados. As APIs usam o S3 e a API direta do EBS (usadas internamente por essas APIs para acessar os dados do snapshot). Para obter mais informações, consulte [Definição de preço do Amazon S3](https://aws.amazon.com/s3/pricing/) e [Definição de preço do Amazon EBS](https://aws.amazon.com/ebs/pricing/).

# Como o armazenamento e a restauração de uma AMI funciona
<a name="store-restore-how-it-works"></a>

Para armazenar e restaurar uma AMI usando o S3, use as seguintes APIs:
+ `CreateStoreImageTask` – Armazena a AMI em um bucket do S3
+ `DescribeStoreImageTasks` – Fornece o andamento da tarefa de armazenamento da AMI
+ `CreateRestoreImageTask` – Restaura a AMI de um bucket do S3

**Topics**
+ [CreateStoreImageTask](#CreateStoreImageTask)
+ [DescriboesToreImageTasks](#DescribeStoreImageTasks)
+ [CreateRestoreImageTask](#CreateRestoreImageTask)
+ [Caminhos do arquivo](#file-paths-in-s3)

## CreateStoreImageTask
<a name="CreateStoreImageTask"></a>

A API `CreateStoreImageTask` armazena uma AMI como um único objeto em um bucket do S3.

A API cria uma tarefa que lê todos os dados da AMI e seus snapshots e, a seguir, usa um [multipart upload do S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) para armazenar os dados em um objeto do S3. A API leva todos os componentes da AMI, incluindo a maioria dos metadados de AMI não específicos da região e todos os snapshots do EBS contidos na AMI, e os empacota em um único objeto no S3. Os dados são compactados como parte do processo de upload para reduzir a quantidade de espaço usado no S3; portanto, o objeto no S3 pode ser menor do que a soma dos tamanhos dos snapshots na AMI.

Se houver tags de AMI e de snapshot visíveis para a conta chamando essa API, elas serão preservadas.

O objeto no S3 tem o mesmo ID que a AMI, mas com uma extensão `.bin`. Os dados a seguir também são armazenados como tags de metadados do S3 no objeto do S3: nome da AMI, descrição da AMI, data de registro da AMI, conta de proprietário da AMI e um timestamp para a operação de armazenamento.

O tempo necessário para concluir a tarefa depende do tamanho da AMI. Também depende de quantas outras tarefas estão em andamento porque as tarefas estão em fila. É possível acompanhar o andamento da tarefa chamando a API `DescribeStoreImageTasks`.

A soma dos tamanhos de todas as AMIs em andamento é limitada a 1.200 GB de dados de snapshot do EBS por conta. A criação de tarefas adicionais será rejeitada até que as tarefas em andamento sejam inferiores ao limite. Por exemplo, se uma AMI com 200 GB de dados de snapshot e outra AMI com 400 GB de dados de snapshot estiverem sendo armazenadas no momento, outra solicitação será aceita, pois o total em andamento é de 600 GB, que é inferior ao limite. Mas se uma única AMI com 1.200 GB de dados de snapshot estiver sendo armazenada no momento, outras tarefas serão rejeitadas até que a tarefa seja concluída.

## DescriboesToreImageTasks
<a name="DescribeStoreImageTasks"></a>

A API `DescribeStoreImageTasks` descreve o andamento das tarefas de armazenamento de uma AMI. É possível descrever tarefas para AMIs especificadas. Se você não especificar AMIs, receberá uma lista paginada de todas as tarefas de imagem de armazenamento que foram processadas nos últimos 31 dias.

Para cada tarefa de AMI, a resposta indica se a tarefa é `InProgress``Completed` ou `Failed`. Para tarefas `InProgress`, a resposta mostra um andamento estimado como uma porcentagem.

As tarefas são listadas em ordem cronológica inversa.

No momento, somente as tarefas do mês anterior podem ser visualizadas.

## CreateRestoreImageTask
<a name="CreateRestoreImageTask"></a>

A API `CreateRestoreImageTask` inicia uma tarefa que restaura uma AMI de um objeto do S3 que foi criado anteriormente usando uma solicitação `CreateStoreImageTask`.

A tarefa de restauração pode ser executada na mesma região ou em uma região diferente daquela em que a tarefa de armazenamento foi executada.

O bucket do S3 a partir do qual o objeto da AMI será restaurado deve estar na mesma região em que a tarefa de restauração é solicitada. A AMI será restaurada nessa região.

A AMI é restaurada com seus metadados, como o nome, a descrição e os mapeamentos de dispositivos de blocos correspondentes aos valores da AMI armazenada. O nome deve ser exclusivo para AMIs na região dessa conta. Se você não fornecer um nome, a nova AMI obterá o mesmo nome da AMI original. A AMI obtém um novo ID de AMI que é gerado no momento do processo de restauração.

O tempo necessário para a conclusão da tarefa de restauração da AMI depende do tamanho da AMI. Também depende de quantas outras tarefas estão em andamento porque as tarefas estão em fila. É possível visualizar o andamento da tarefa descrevendo a AMI ([describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html)) ou seus snapshots do EBS ([describe-snapshots](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html)). Se a tarefa falhar, a AMI e os snapshots serão movidos para um estado com falha.

A soma dos tamanhos de todas as AMIs em andamento é limitada a 600 GB (com base no tamanho após a restauração) de dados de snapshot do EBS por conta. A criação de tarefas adicionais será rejeitada até que as tarefas em andamento sejam inferiores ao limite.

## Caminhos do arquivo
<a name="file-paths-in-s3"></a>

É possível usar caminhos de arquivo ao armazenar e restaurar AMIs, da seguinte forma:
+ Ao armazenar uma AMI no S3, o caminho do arquivo pode ser adicionado ao nome do bucket. Internamente, o sistema separa o caminho do nome do bucket e, em seguida, adiciona o caminho à chave do objeto que é gerada para armazenar a AMI. O caminho completo do objeto é mostrado na resposta da chamada de API.
+ Ao restaurar a AMI, como um parâmetro de chave de objeto está disponível, o caminho pode ser adicionado ao início do valor da chave do objeto.

**Exemplo: nome do bucket com caminho de arquivo anexado**  
Ao armazenar a AMI, especifique o caminho do arquivo após o nome do bucket.

```
amzn-s3-demo-bucket/path1/path2
```

A chave do objeto resultante é mostrada a seguir.

```
path1/path2/ami-0abcdef1234567890.bin
```

Ao restaurar a AMI, especifique o nome do bucket e a chave do objeto. Para obter exemplos, consulte [Criar uma tarefa de armazenamento de imagem](work-with-ami-store-restore.md#create-store-image-task).

# Criar uma tarefa de armazenamento de imagem
<a name="work-with-ami-store-restore"></a>

Quando você armazena uma AMI em um bucket do S3, uma tarefa de armazenamento de imagem é criada. É possível usar a tarefa de armazenamento de imagem para monitorar o andamento e o resultado do processo.

**Topics**
+ [Proteger suas AMIs](#securing-amis)
+ [Permissões para armazenar e restaurar AMIs usando o S3](#ami-s3-permissions)
+ [Criar uma tarefa de armazenamento de imagem](#create-store-image-task)
+ [Criar uma tarefa de restauração de imagem](#create-restore-image-task)

## Proteger suas AMIs
<a name="securing-amis"></a>

É importante garantir que o bucket do S3 esteja configurado com segurança suficiente para proteger o conteúdo da AMI e que a segurança seja mantida enquanto os objetos da AMI permanecerem no bucket. Se isso não puder ser feito, o uso dessas APIs não é recomendado. Não permita acesso público ao bucket do S3. Recomendamos que você ative a [Criptografia do lado do servidor](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) para os buckets do S3 nos quais você armazena as AMIs, embora não seja necessário.

Para obter informações sobre como definir as configurações de segurança apropriadas para os buckets do S3, consulte os seguintes tópicos de segurança:
+ [Bloquear o acesso público ao armazenamento do Amazon S](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html)
+ [Definir o comportamento padrão da criptografia para os buckets do Amazon S](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html)
+ [Qual política de bucket do S3 devo usar para seguir a regra s3-bucket-ssl-requests-only do AWS Config?](https://repost.aws/knowledge-center/s3-bucket-policy-for-config-rule)
+ [Habilitar o log de acesso ao servidor do Amazon S](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html)

Quando os snapshots da AMI são copiados para o objeto S3, os dados são copiados em conexões TLS. É possível armazenar AMIs com snapshots criptografados, mas os snapshots são descriptografados como parte do processo de armazenamento.

## Permissões para armazenar e restaurar AMIs usando o S3
<a name="ami-s3-permissions"></a>

Caso as entidades principais do IAM armazenem ou restaurem AMIs usando o Amazon S3, você precisará conceder a elas as permissões necessárias.

A política de exemplo a seguir inclui todas as ações necessárias para permitir que uma entidade principal do IAM execute as tarefas de armazenamento e restauração.

Também é possível criar políticas do IAM que concedam às entidades principais acesso apenas a recursos específicos. Para obter mais exemplos de políticas, consulte [Gerenciamento de acesso para recursos da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) no *Guia do usuário do IAM*.

**nota**  
Se os snapshots que compõem a AMI estiverem criptografados ou se a conta estiver habilitada para criptografia por padrão, seu principal do IAM deverá ter permissão para usar a chave KMS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectTagging",
                "s3:AbortMultipartUpload",
                "ebs:CompleteSnapshot",
                "ebs:GetSnapshotBlock",
                "ebs:ListChangedBlocks",
                "ebs:ListSnapshotBlocks",
                "ebs:PutSnapshotBlock",
                "ebs:StartSnapshot",
                "ec2:CreateStoreImageTask",
                "ec2:DescribeStoreImageTasks",
                "ec2:CreateRestoreImageTask",
                "ec2:GetEbsEncryptionByDefault",
                "ec2:DescribeTags",
                "ec2:CreateTags"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Criar uma tarefa de armazenamento de imagem
<a name="create-store-image-task"></a>

Para armazenar uma AMI em um bucket do S3, comece criando uma tarefa de armazenamento de imagem. O tempo necessário para concluir a tarefa depende do tamanho da AMI. É possível acompanhar o andamento da tarefa até que ela tenha êxito ou falhe.

------
#### [ AWS CLI ]

**Para criar a tarefa de armazenamento de imagem**  
Use o comando [create-store-image-task](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-store-image-task.html).

```
aws ec2 create-store-image-task \
    --image-id ami-0abcdef1234567890 \
    --bucket amzn-s3-demo-bucket
```

O seguinte é um exemplo de saída.

```
{
  "ObjectKey": "ami-0abcdef1234567890.bin"
}
```

**Para descrever o andamento de uma tarefa de armazenamento de AMI**  
Use o comando [describe-store-image-tasks](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-store-image-tasks.html).

```
aws ec2 describe-store-image-tasks \
    --image-ids ami-0abcdef1234567890 \
    --query StoreImageTaskResults[].StoreTaskState \
    --output text
```

O seguinte é um exemplo de saída.

```
InProgress
```

------
#### [ PowerShell ]

**Para criar a tarefa de armazenamento de imagem**  
Use o cmdlet [New-EC2StoreImageTask](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2StoreImageTask.html).

```
New-EC2StoreImageTask `
    -ImageId ami-0abcdef1234567890 `
    -Bucket amzn-s3-demo-bucket
```

O seguinte é um exemplo de saída.

```
ObjectKey         : ami-0abcdef1234567890.bin
```

**Para descrever o andamento de uma tarefa de armazenamento de AMI**  
Use o cmdlet [Get-EC2StoreImageTask](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2StoreImageTask.html).

```
(Get-EC2StoreImageTask -ImageId ami-0abcdef1234567890).StoreTaskState
```

O seguinte é um exemplo de saída.

```
InProgress
```

------

## Criar uma tarefa de restauração de imagem
<a name="create-restore-image-task"></a>

É necessário especificar um nome para a AMI restaurada. O nome deve ser exclusivo para AMIs na região dessa conta. A AMI restaurada obtém um novo ID de AMI.

------
#### [ AWS CLI ]

**Para criar uma tarefa de armazenamento de imagem**  
Use o comando [create-restore-image-task](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-restore-image-task.html).

```
aws ec2 create-restore-image-task \
    --object-key ami-0abcdef1234567890.bin \
    --bucket amzn-s3-demo-bucket \
    --name "my-restored-ami"
```

O seguinte é um exemplo de saída.

```
{
   "ImageId": "ami-1234567890abcdef0"
}
```

------
#### [ PowerShell ]

**Para criar uma tarefa de armazenamento de imagem**  
Use o cmdlet [New-EC2RestoreImageTask](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2RestoreImageTask.html).

```
New-EC2RestoreImageTask `
    -ObjectKey ami-0abcdef1234567890.bin `
    -Bucket amzn-s3-demo-bucket `
    -Name "my-restored-ami"
```

O seguinte é um exemplo de saída.

```
ImageId         : ami-1234567890abcdef0
```

------

# Use a ancestralidade da AMI para rastrear a origem de uma AMI
<a name="ami-ancestry"></a>

A ancestralidade da AMI ajuda você a rastrear a origem de uma AMI retornando os IDs e as regiões de todas as AMIs ancestrais. Quando você cria ou copia uma AMI, a nova AMI retém o ID e a região de sua AMI de origem (principal). Isso permite que você rastreie a cadeia de AMIs até a AMI raiz.

**Benefícios principais**

O uso dos ancestrais de AMI é útil para que você:
+ Rastreie os derivados de AMI para garantir a conformidade com as políticas internas.
+ Identifique AMIs potencialmente vulneráveis quando um problema de segurança for encontrado em uma AMI ancestral.
+ Mantenha a visibilidade das origens da AMI em várias regiões.

**Topics**
+ [Como funciona a ascendência da AMI](#how-ami-ancestry-works)
+ [Considerações](#ami-ancestry-conditions)
+ [Visualizar ascendência de AMI](#view-ami-ancestry)
+ [Identificar a AMI de origem](#identify-source-ami-used-to-create-new-ami)

## Como funciona a ascendência da AMI
<a name="how-ami-ancestry-works"></a>

A ascendência da AMI identifica a AMI principal que foi usada para criar a AMI especificada, a principal da principal e assim por diante, até a AMI raiz. Como isso funciona:
+ Cada AMI exibe o ID e a região de sua AMI de origem (principal).
+ Começando com a AMI selecionada, a lista de entradas de ascendência exibe cada AMI principal em sequência.
+ A lista de entradas de ascendência remonta até chegar à AMI raiz. A AMI raiz é uma das seguintes: 
  + Uma AMI pública de um [provedor verificado](sharing-amis.md#verified-ami-provider) (identificada pelo alias do proprietário, que é `amazon` ou`aws-marketplace`).
  + Uma AMI sem ancestral registrado. Por exemplo, ao usar [RegisterImage](creating-an-ami-ebs.md#creating-launching-ami-from-snapshot) para criar uma AMI diretamente de um conjunto de snapshots, não há nenhuma AMI de origem para rastrear, diferente da criação de uma AMI a partir de uma instância.
  + Uma AMI cuja AMI de origem é de uma [partição](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#partition) diferente.
  + A 50ª AMI da lista. O número máximo de AMI em uma lista de ancestrais é 50.

## Considerações
<a name="ami-ancestry-conditions"></a>
+ [O ID e a região da AMI de origem só estão disponíveis para AMIs criadas usando [CreateImage](creating-an-ami-ebs.md#how-to-create-ebs-ami), [CopyImage](CopyingAMIs.md#ami-copy-steps) ou CreateRestoreImageTask](store-restore-how-it-works.md#CreateRestoreImageTask).
+ Nas AMIs criadas utilizando [CreateImage](creating-an-ami-ebs.md#how-to-create-ebs-ami) (cria uma AMI usando uma instância), o ID da AMI de origem é o ID da AMI utilizada para iniciar a instância.
+ As informações de origem da AMI não estão disponíveis para:
  + AMIs criadas usando [RegisterImage](creating-an-ami-ebs.md#creating-launching-ami-from-snapshot) porque foram criadas a partir de instantâneos.
  + Para algumas AMIs mais antigas.
+ As informações da AMI de origem são preservadas quando:
  + As AMIs são copiadas em todas as regiões.
  + As AMIs de origem são canceladas (excluídas).
  + Você não tem acesso às AMI de origem.
+ Cada lista de ascendência é limitada a 50 AMIs.

## Visualizar ascendência de AMI
<a name="view-ami-ancestry"></a>

É possível visualizar a ascendência de uma AMI usando os seguintes métodos.

------
#### [ Console ]

**Para visualizar a ascendência de uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione uma AMI e escolha a guia **Ancestralidade da AMI**.

1. A tabela de **entradas de ancestralidade da AMI** lista todas as AMIs na lista de ancestralidade.
   + **ID da AMI** — O identificador de cada AMI na lista de ancestralidade. A primeira entrada na tabela é a AMI selecionada, seguida por seus ancestrais.
   + **ID da AMI de origem** — A ID da AMI a partir da qual a AMI na coluna **ID da AMI** foi criada. Um traço (**-**) indica o fim da lista de ascendência da AMI.
   + **Região da AMI de origem** — Região da AWS Onde a AMI de origem está localizada.
   + **Nível de ascendência** — A posição na lista de ascendência, onde:
     + **0 (AMI de entrada)** indica a AMI selecionada cuja ascendência você deseja conhecer.
     + Números crescentes mostram ancestrais mais antigos.
     + ***n* (AMI original)** indica a AMI raiz, com o número indicando até onde vai a lista de ancestrais.
   + **Data de criação** — Quando a AMI foi criada, no formato UTC.
   + **Alias do proprietário** — O alias do proprietário da AMI (por exemplo, `amazon`). Um traço (**-**) indica que a AMI não tem alias de proprietário.

------
#### [ AWS CLI ]

**Para visualizar a ascendência de uma AMI**  
Use o comando [get-image-ancestry](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-image-ancestry.html) e especifique o ID da AMI.

```
aws ec2 get-image-ancestry \
    --image-id ami-1111111111EXAMPLE \
    --region us-east-1
```

O seguinte é um exemplo de saída. A saída lista as AMIs em ordem de ascendência: a primeira entrada é a AMI especificada (de entrada), seguida pela principal, principal da principal e assim por diante, e termina com a AMI raiz.

```
{
    "ImageAncestryEntries": [
        {
            "CreationDate": "2025-01-17T18:37:50.000Z",
            "ImageId": "ami-1111111111EXAMPLE", // Input AMI
            "SourceImageId": "ami-2222222222EXAMPLE",
            "SourceImageRegion": "us-east-1"

        },
        {
            "CreationDate": "2025-01-17T18:37:50.000Z",
            "ImageId": "ami-2222222222EXAMPLE", // Parent AMI
            "SourceImageId": "ami-3333333333EXAMPLE",
            "SourceImageRegion": "us-east-1"
        },
        ...
        {
            "CreationDate": "2025-01-17T18:37:50.000Z",
            "ImageId": "ami-8888888888EXAMPLE", // Root AMI
            "ImageOwnerAlias": "aws-marketplace",
            "SourceImageId": "ami-9999999999EXAMPLE",
            "SourceImageRegion": "us-east-2"
        }
    ]
}
```

------
#### [ PowerShell ]

**Para visualizar a ancestralidade de uma AMI**  
Use o cmdlet [Get-EC2ImageAncestry](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAncestry.html).

```
Get-EC2ImageAncestry -ImageId ami-1111111111EXAMPLE
```

O seguinte é um exemplo de saída. A saída lista as AMIs em ordem de ascendência: a primeira entrada é a AMI especificada (de entrada), seguida pela principal, pela principal da principal e assim por diante, e termina com a AMI raiz.

```
ImageAncestryEntries : {
    @{
        CreationDate = "2025-01-17T18:37:50.000Z"
        ImageId = "ami-1111111111EXAMPLE"    # Input AMI
        SourceImageId = "ami-2222222222EXAMPLE"
        SourceImageRegion = "us-east-1"
    },
    @{
        CreationDate = "2025-01-17T18:37:50.000Z"
        ImageId = "ami-2222222222EXAMPLE"    # Parent AMI
        SourceImageId = "ami-3333333333EXAMPLE"
        SourceImageRegion = "us-east-1"
    },
    ...
    @{
        CreationDate = "2025-01-17T18:37:50.000Z"
        ImageId = "ami-8888888888EXAMPLE"    # Root AMI
        ImageOwnerAlias = "aws-marketplace"
        SourceImageId = "ami-9999999999EXAMPLE"
        SourceImageRegion = "us-east-2"
    }
}
```

------

## Identificar a AMI de origem
<a name="identify-source-ami-used-to-create-new-ami"></a>

Se você precisar identificar apenas a AMI principal imediata (de origem) usada para criar uma AMI, use os métodos a seguir.

------
#### [ Console ]

**Para identificar a AMI de origem usada para criar a AMI selecionada**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione a AMI para visualizar os detalhes.

   As informações da AMI de origem aparecem nos seguintes campos: **ID da AMI de origem** e **Região da AMI de origem**

------
#### [ AWS CLI ]

**Para identificar a AMI de origem usada para criar a AMI especificada**  
Use o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --region us-east-1 \
    --image-ids ami-0abcdef1234567890 \
    --query "Images[].{ID:SourceImageId,Region:SourceImageRegion}"
```

O seguinte é um exemplo de saída.

```
[
    {
        "ID": "ami-0abcdef1234567890",
        "Region": "us-west-2"
    }
}
```

------
#### [ PowerShell ]

**Para identificar a AMI de origem usada para criar a AMI especificada**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
Get-EC2Image -ImageId ami-0abcdef1234567890 | Select SourceImageId, SourceImageRegion
```

O seguinte é um exemplo de saída.

```
SourceImageId           SourceImageRegion
-------------           -----------------
ami-0abcdef1234567890 us-west-2
```

------

# Gerenciar e monitorar o uso de AMIs
<a name="ec2-ami-usage"></a>

A AWS fornece vários recursos para ajudar você a gerenciar e monitorar o uso de AMIs de forma eficaz. É possível rastrear quais contas estão usando suas AMIs compartilhadas, identificar quando elas foram usadas pela última vez e descobrir quais recursos em sua Conta da AWS estão referenciando AMIs específicas.

A tabela a seguir fornece uma visão geral dos recursos para gerenciar e monitorar o uso de AMIs:


| Recurso | Caso de uso | Benefícios principais | 
| --- | --- | --- | 
| [Relatórios de uso de AMIs](your-ec2-ami-usage.md) | Obtenha visibilidade sobre quais Contas da AWS estão usando suas AMIs e o quanto cada AMI está sendo usada. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/ec2-ami-usage.html)  | 
| [Último rastreamento usado](ami-last-launched-time.md) | Verifique quando sua AMI foi usada pela última vez. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/ec2-ami-usage.html)  | 
| [Verificação de referência de AMIs](ec2-ami-references.md) | Garanta que seus recursos da AWS estejam usando as AMIs compatíveis mais recentes. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/ec2-ami-usage.html)  | 

**Topics**
+ [Visualizar seu uso de AMIs](your-ec2-ami-usage.md)
+ [Verificar quando uma AMI do Amazon EC2 foi usada pela última vez](ami-last-launched-time.md)
+ [Identificar seus recursos que referenciam AMIs específicas](ec2-ami-references.md)

# Visualizar seu uso de AMIs
<a name="your-ec2-ami-usage"></a>

Se você compartilhar suas imagens de máquina da Amazon (AMI) com outras Contas da AWS, seja com Contas da AWS específicas, organizações, unidades organizacionais (UOs) ou publicamente, você poderá ver como essas AMIs são usadas criando relatórios de uso de AMIs. Os relatórios fornecem visibilidade sobre:
+ Quais Contas da AWS estão usando suas AMIs em instâncias do EC2 ou modelos de inicialização
+ Quantas instâncias do EC2 ou modelos de reinicialização estão referenciando cada AMI

Os relatórios de uso de AMIs ajudam você a gerenciar suas AMIs com mais eficiência:
+ Identifique as Contas da AWS e os tipos de recursos que referenciam suas AMIs para que você possa cancelar o registro ou desabilitar as AMIs com segurança.
+ Identifique AMIs não utilizadas para o cancelamento do registro para reduzir custos de armazenamento.
+ Identifique suas AMIs mais usadas.

**Topics**
+ [Como funcionam os relatórios de uso de AMIs](#how-ami-usage-reports-work)
+ [Criar um relatório de uso de AMIs](#create-ami-usage-reports)
+ [Visualizar relatórios de uso de AMIs](#view-ami-usage-reports)
+ [Excluir um relatório de uso de AMI](#delete-ami-usage-reports)
+ [Cotas de relatórios](#ami-usage-report-quotas)

## Como funcionam os relatórios de uso de AMIs
<a name="how-ami-usage-reports-work"></a>

Ao criar um relatório de uso de AMIs, especifique:
+ A AMI a ser relatada.
+ As Contas da AWS a serem verificadas (contas específicas ou todas as contas).
+ Os tipos de recursos a serem verificados (instâncias do EC2, modelos de inicialização ou ambos).
+ Para modelos de inicialização, o número de versões a serem verificadas (o padrão é as 20 versões mais recentes).

O Amazon EC2 cria um relatório separado para cada AMI. Cada relatório fornece:
+ Uma lista das Contas da AWS usando a AMI.
+ Uma contagem dos recursos que referenciam a AMI por tipo de recurso por conta. Observe que, para modelos de inicialização, se uma AMI for referenciada em várias versões de um modelo de inicialização, a contagem será de apenas um.

**Importante**  
Quando você gera um relatório de uso de AMIs, ele pode não conter a atividade mais recente. A atividade da instância das últimas 24 horas e a atividade do modelo de inicialização dos últimos dias podem não aparecer no relatório.

O Amazon EC2 exclui automaticamente um relatório 30 dias após ser criado. Você pode baixar os relatórios no console do EC2 para reter localmente.

## Criar um relatório de uso de AMIs
<a name="create-ami-usage-reports"></a>

Para ver como sua AMI está sendo usada, primeiro você deve criar um relatório de uso de AMIs, especificando as contas e os tipos de recursos a serem relatados. Depois que o relatório for criado, será possível visualizar o conteúdo do relatório. Você também pode baixar os relatórios no console do EC2.

------
#### [ Console ]

**Para criar um relatório de uso de AMIs**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione uma AMI e escolha **Ações**, **Uso de AMIs**, **Visualizar meu uso de AMIs**.

1. Na página **Criar meu relatório de uso de AMIs**, faça o seguinte:

   1. Em **Tipos de recursos**, selecione um ou mais tipos de recursos a serem relatados.

   1. Em **IDs de contas**, siga um destes procedimentos:
      + Escolha **Especificar IDs de contas** e depois **Adicionar ID de conta** para cada conta a ser relatada.
      + Escolha **Incluir todas as contas** para gerar relatórios sobre todas as contas.

   1. Escolha **Criar meu relatório de uso de AMIs**.

1. Na página AMI, escolha a guia **Meu uso de AMIs**.

1. Escolha um ID de relatório para visualizar seus detalhes.

------
#### [ AWS CLI ]

**Para criar um relatório de uso de AMIs para uma lista de contas**  
Use o comando [create-image-usage-report](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image-usage-report.html) com os seguintes parâmetros obrigatórios:
+ `--image-id`: o ID da AMI sobre a ser relatada.
+ `--resource-types`: os tipos de recursos a serem verificados. No exemplo a seguir, os tipos de recursos a serem verificados são instâncias do EC2 e modelos de inicialização. Além disso, o número de versões do modelo de inicialização a serem verificadas também é especificado (`version-depth=100`).

 Para relatar contas específicas, use o parâmetro `--account-ids` para especificar o ID de cada conta a ser relatada.

```
aws ec2 create-image-usage-report \
    --image-id ami-0abcdef1234567890 \
    --account-ids 111122223333 444455556666 123456789012 \
    --resource-types ResourceType=ec2:Instance \
      'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=100}]'
```

**Para criar um relatório de uso de AMIs de todas as contas**  
Para relatar todas as contas usando a AMI especificada, use o mesmo comando, mas omita o parâmetro `--account-ids`.

```
aws ec2 create-image-usage-report \
    --image-id ami-0abcdef1234567890 \
    --resource-types ResourceType=ec2:Instance \
      'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=100}]'
```

O seguinte é um exemplo de saída.

```
{
    "ReportId": "amiur-00b877d192f6b02d0"
}
```

**Para monitorar o status da criação do relatório**  
Use o comando [describe-image-usage-reports](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-reports.html) e especifique o ID do relatório.

```
aws ec2 describe-image-usage-reports --report-ids amiur-00b877d192f6b02d0
```

O seguinte é um exemplo de saída. O valor inicial do campo `State` é `pending`. Para poder visualizar as entradas do relatório, o estado deve ser `available`.

```
{
    "ImageUsageReports": [
        {
            "ImageId": "ami-0e9ae3dc21c2b3a64",
            "ReportId": "amiur-abcae3dc21c2b3999",
            "ResourceTypes": [
                {"ResourceType": "ec2:Instance"}
            ],
            "State": "pending",
            "CreationTime": "2025-09-29T13:27:12.322000+00:00",
            "ExpirationTime": "2025-10-28T13:27:12.322000+00:00"
        }
    ]
}
```

------
#### [ PowerShell ]

**Para criar um relatório de uso de AMIs para uma lista de contas**  
Use o cmdlet [New-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2ImageUsageReport.html) com os seguintes parâmetros obrigatórios:
+ `-ImageId`: o ID da AMI sobre a ser relatada.
+ `-ResourceType`: os tipos de recursos a serem verificados. No exemplo a seguir, os tipos de recursos a serem verificados são instâncias do EC2 e modelos de inicialização. Além disso, o número de versões do modelo de inicialização a serem verificadas também é especificado (`'version-depth' = 100`).

 Para relatar contas específicas, use o parâmetro `-AccountId` para especificar o ID de cada conta a ser relatada.

```
New-EC2ImageUsageReport `
    -ImageId ami-0abcdef1234567890 `
    -AccountId 111122223333 444455556666 123456789012 `
    -ResourceType @(
        @{ResourceType = 'ec2:Instance'},
        @{ResourceType = 'ec2:LaunchTemplate'ResourceTypeOptions = @{'version-depth' = 100}
        })
```

**Para criar um relatório de uso de AMIs de todas as contas**  
Para relatar todas as contas usando a AMI especificada, use o mesmo comando, mas omita o parâmetro `-AccountId`.

```
New-EC2ImageUsageReport `
    -ImageId ami-0abcdef1234567890 `
    -ResourceType @(
        @{ResourceType = 'ec2:Instance'},
        @{ResourceType = 'ec2:LaunchTemplate'ResourceTypeOptions = @{'version-depth' = 100}
        })
```

O seguinte é um exemplo de saída.

```
ReportId
--------
amiur-00b877d192f6b02d0
```

**Para monitorar o status da criação do relatório**  
Use o comando [Get-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReport.html) e especifique o ID do relatório.

```
Get-EC2ImageUsageReport -ReportId amiur-00b877d192f6b02d0
```

O seguinte é um exemplo de saída. O valor inicial do campo `State` é `pending`. Para poder visualizar as entradas do relatório, o estado deve ser `available`.

```
ImageUsageReports
-----------------
{@{ImageId=ami-0e9ae3dc21c2b3a64; ReportId=amiur-abcae3dc21c2b3999; ResourceTypes=System.Object[]; State=pending; CreationTime=2025-09-29; ExpirationTime=2025-10-28}}
```

------

## Visualizar relatórios de uso de AMIs
<a name="view-ami-usage-reports"></a>

Você pode ver todos os relatórios de uso que criou para uma AMI nos últimos 30 dias. O Amazon EC2 exclui automaticamente um relatório 30 dias após ser criado.

Para cada relatório, você pode ver as Contas da AWS que estão usando a AMI, e para cada conta, uma contagem dos recursos que referenciam a AMI por tipo de recurso. Você também pode ver quando a criação do relatório foi iniciada. Essas informações só estão disponíveis quando o relatório está no estado **Concluído** (console) ou `available` (AWS CLI).

**Importante**  
Quando você gera um relatório de uso de AMIs, ele pode não conter a atividade mais recente. A atividade da instância das últimas 24 horas e a atividade do modelo de inicialização dos últimos dias podem não aparecer no relatório.

------
#### [ Console ]

**Para visualizar um relatório de uso de AMIs**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione uma AMI.

1. Escolha a guia **Meus relatórios de uso**.

   A lista de relatórios mostra:
   + Todos os relatórios gerados nos últimos 30 dias para a AMI selecionada.
   + Para cada relatório, a coluna **Hora de início do relatório** mostra a data em que o relatório foi criado.

1. Escolha o ID do relatório para visualizar seu conteúdo.

1. Para voltar à guia **Meus relatórios de uso** na página de detalhes da AMI, escolha **Exibir todos os relatórios dessa AMI**.

------
#### [ AWS CLI ]

**Para listar todos os relatórios de uso de AMIs para a AMI especificada**  
Use o comando [describe-image-usage-reports](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-reports.html) e especifique o ID da AMI para obter uma lista de seus relatórios.

```
aws ec2 describe-image-usage-reports --image-ids ami-0abcdef1234567890
```

O seguinte é um exemplo de saída. Cada ID de relatório é listado junto com os tipos de recursos que foram verificados e as datas de criação e expiração do relatório. Você pode usar essas informações para identificar os relatórios cujas entradas você deseja visualizar.

```
{
  "ImageUsageReports": [
    {
      "ImageId": "ami-0abcdef1234567890",
      "ReportId": "amiur-1111111111111111",
      "ResourceTypes": [
        {
          "ResourceType": "ec2:Instance"
        }
      ],
      "State": "available",
      "CreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ExpirationTime": "2025-10-28T13:27:12.322000+00:00",
      "Tags": []
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ReportId": "amiur-22222222222222222",
      "ResourceTypes": [
        {
          "ResourceType": "ec2:Instance"
        },
        {
          "ResourceType": "ec2:LaunchTemplate"
        }
      ],
      "State": "available",
      "CreationTime": "2025-10-01T13:27:12.322000+00:00",
      "ExpirationTime": "2025-10-30T13:27:12.322000+00:00",
      "Tags": []
    }
  ],
  "NextToken": "opaque"
}
```

**Para visualizar o conteúdo de um relatório de uso de AMI para a AMI especificada**  
Use o comando [describe-image-usage-report-entries](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-report-entries.html) e especifique o ID da AMI. A resposta retorna todos os relatórios da AMI especificada, mostrando as contas que usaram a AMI e suas contagens de recursos.

```
aws ec2 describe-image-usage-report-entries --image-ids ami-0abcdef1234567890
```

O seguinte é um exemplo de saída.

```
{
  "ImageUsageReportEntries": [
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "123412341234",
      "UsageCount": 15,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-1111111111111111"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "123412341234",
      "UsageCount": 2,
      "ReportCreationTime": "2025-10-01T13:27:12.322000+00:00",
      "ReportId": "amiur-22222222222222222"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "001100110011",
      "UsageCount": 39,
      "ReportCreationTime": "2025-10-01T13:27:12.322000+00:00",
      "ReportId": "amiur-22222222222222222"
    }
  ],
  "NextToken": "opaque"
}
```

**Para visualizar o conteúdo de um relatório de uso de AMI do relatório especificado**  
Use o comando [describe-image-usage-report-entries](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-usage-report-entries.html) e especifique o ID do relatório. A resposta retorna todas as entradas do relatório especificado, mostrando as contas que usaram a AMI e suas contagens de recursos.

```
aws ec2 describe-image-usage-report-entries --report-ids amiur-11111111111111111
```

O seguinte é um exemplo de saída.

```
{
  "ImageUsageReportEntries": [
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:Instance",
      "AccountId": "123412341234",
      "UsageCount": 15,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-11111111111111111"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:LaunchTemplate",
      "AccountId": "123412341234",
      "UsageCount": 4,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-11111111111111111"
    },
    {
      "ImageId": "ami-0abcdef1234567890",
      "ResourceType": "ec2:LaunchTemplate",
      "AccountId": "001100110011",
      "UsageCount": 2,
      "ReportCreationTime": "2025-09-29T13:27:12.322000+00:00",
      "ReportId": "amiur-11111111111111111"
    }
  ],
  "NextToken": "opaque"
}
```

------
#### [ PowerShell ]

**Para listar todos os relatórios de uso de AMIs para a AMI especificada**  
Use o cmdlet [Get-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReport.html) e especifique o ID da AMI para obter uma lista de seus relatórios.

```
Get-EC2ImageUsageReport -ImageId ami-0abcdef1234567890
```

O seguinte é um exemplo de saída. Cada ID de relatório é listado junto com os tipos de recursos que foram verificados e as datas de criação e expiração do relatório. Você pode usar essas informações para identificar os relatórios cujas entradas você deseja visualizar.

```
@{
    ImageUsageReports = @(
        @{
            ImageId = "ami-0abcdef1234567890"
            ReportId = "amiur-1111111111111111"
            ResourceTypes = @(
                @{
                    ResourceType = "ec2:Instance"
                }
            )
            State = "available"
            CreationTime = "2025-09-29T13:27:12.322000+00:00"
            ExpirationTime = "2025-10-28T13:27:12.322000+00:00"
        },
        @{
            ImageId = "ami-0abcdef1234567890"
            ReportId = "amiur-22222222222222222"
            ResourceTypes = @(
                @{
                    ResourceType = "ec2:Instance"
                }
            )
            State = "available"
            CreationTime = "2025-09-30T13:27:12.322000+00:00"
            ExpirationTime = "2025-10-29T13:27:12.322000+00:00"
        },
        @{
            ImageId = "ami-0abcdef1234567890"
            ReportId = "amiur-33333333333333333"
            ResourceTypes = @(
                @{
                    ResourceType = "ec2:Instance"
                }
            )
            State = "available"
            CreationTime = "2025-10-01T13:27:12.322000+00:00"
            ExpirationTime = "2025-10-30T13:27:12.322000+00:00"
        }
    )
    NextToken = "opaque"
}
```

**Para visualizar o conteúdo de um relatório de uso de AMI para a AMI especificada**  
Use o cmdlet [Get-EC2ImageUsageReportEntry](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReportEntry.html) e especifique o ID da AMI. A resposta retorna todos os relatórios da AMI especificada, mostrando as contas que usaram a AMI e suas contagens de recursos.

```
Get-EC2ImageUsageReportEntry -ImageId ami-0abcdef1234567890
```

O seguinte é um exemplo de saída.

```
ImageUsageReportEntries : {@{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:Instance"
    AccountId = "123412341234"
    UsageCount = 15
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-1111111111111111"
    }, @{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:Instance"
    AccountId = "123412341234"
    UsageCount = 7
    ReportCreationTime = "2025-09-30T13:27:12.322000+00:00"
    ReportId = "amiur-22222222222222222"
    }...}
NextToken : opaque
```

**Para visualizar o conteúdo de um relatório de uso de AMI do relatório especificado**  
Use o cmdlet [Get-EC2ImageUsageReportEntry](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageUsageReportEntry.html) e especifique o ID do relatório. A resposta retorna todas as entradas do relatório especificado, mostrando as contas que usaram a AMI e suas contagens de recursos.

```
Get-EC2ImageUsageReportEntry -ReportId amiur-11111111111111111
```

O seguinte é um exemplo de saída.

```
ImageUsageReportEntries : {@{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:Instance"
    AccountId = "123412341234"
    UsageCount = 15
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-11111111111111111"
    }, @{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:LaunchTemplate"
    AccountId = "123412341234"
    UsageCount = 4
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-11111111111111111"
    }, @{
    ImageId = "ami-0abcdef1234567890"
    ResourceType = "ec2:LaunchTemplate"
    AccountId = "************"
    UsageCount = 2
    ReportCreationTime = "2025-09-29T13:27:12.322000+00:00"
    ReportId = "amiur-11111111111111111"
    }}
NextToken : opaque
```

------

## Excluir um relatório de uso de AMI
<a name="delete-ami-usage-reports"></a>

O Amazon EC2 exclui automaticamente um relatório 30 dias após ser criado. Você pode excluí-lo manualmente antes desse período.

------
#### [ Console ]

**Para excluir um relatório de uso de AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione uma AMI.

1. Escolha a guia **Meu uso de AMIs**.

1. Escolha o botão **Excluir** ao lado do relatório a ser excluído.

------
#### [ AWS CLI ]

**Para excluir um relatório de uso de AMI**  
Use o comando [delete-image-usage-report](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-image-usage-report.html) e especifique o ID do relatório.

```
aws ec2 delete-image-usage-report --report-id amiur-0123456789abcdefg
```

------
#### [ PowerShell ]

**Para excluir um relatório de uso de AMI**  
Use o cmdlet [Remove-EC2ImageUsageReport](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2ImageUsageReport.html) e especifique o ID do relatório.

```
Remove-EC2ImageUsageReport -ReportId amiur-0123456789abcdefg
```

------

## Cotas de relatórios
<a name="ami-usage-report-quotas"></a>

As cotas a seguir se aplicam à criação de relatórios de uso de AMIs. Estas cotas são aplicáveis por Região da AWS.


| Descrição | Quota | 
| --- | --- | 
| Relatórios de uso de AMIs em andamento (pending) por Conta da AWS | 2.000 | 
| Relatórios de uso de AMIs em andamento (pending) por AMI | 1 | 

# Verificar quando uma AMI do Amazon EC2 foi usada pela última vez
<a name="ami-last-launched-time"></a>

O Amazon EC2 rastreia a data e a hora quando a AMI foi usada a última vez para executar uma instância. Se tiver uma AMI que não tenha sido usada para executar uma instância há muito tempo, considere se a AMI é uma boa candidata para [cancelamento de registro](deregister-ami.md) ou [defasagem](ami-deprecate.md).

**Considerações**
+ Quando uma AMI é usada para iniciar uma instância, há um atraso de 24 horas antes que o uso seja incluído em relatórios.
+ Você precisa ser o proprietário da AMI para obter a hora da última execução.
+ Os dados de uso das AMIs estão disponíveis a partir de abril de 2017.

------
#### [ Console ]

**Como visualizar a última hora de início de uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação à esquerda, selecione **AMIs**.

1. Na barra de filtros, escolha **Owned by me** (Sou proprietário).

1. Marque a caixa de seleção da AMI.

1. Na guia **Detalhes**, encontre **Hora da última inicialização**.

------
#### [ AWS CLI ]

**Para visualizar a hora da última inicialização descrevendo a AMI**  
Use o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html). Se `LastLaunchedTime` não estiver presente na saída, verifique se você é o proprietário da AMI.

```
aws ec2 describe-images \
    --image-id ami-0abcdef1234567890 \
    --query Images[].LastLaunchedTime \
    --output text
```

O seguinte é um exemplo de saída.

```
2025-02-17T20:22:19Z
```

**Para visualizar o atributo da hora de última inicialização de uma AMI**  
Use o comando [describe-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html). Você precisa ser o proprietário da AMI especificada.

```
aws ec2 describe-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute lastLaunchedTime \
    --query LastLaunchedTime.Value \
    --output text
```

O seguinte é um exemplo de saída.

```
2025-02-17T20:22:19Z
```

------
#### [ PowerShell ]

**Para visualizar a hora da última inicialização descrevendo a AMI**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html). Se `LastLaunchedTime` não estiver presente na saída, verifique se você é o proprietário da AMI.

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).LastLaunchedTime
```

O seguinte é um exemplo de saída.

```
2025-02-17T20:22:19Z
```

**Para visualizar o atributo da hora de última inicialização de uma AMI**  
Use o cmdlet [Get-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html). Você precisa ser o proprietário da AMI especificada.

```
(Get-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute LastLaunchedTime).LastLaunchedTime
```

O seguinte é um exemplo de saída.

```
2025-02-17T20:22:19Z
```

------

# Identificar seus recursos que referenciam AMIs específicas
<a name="ec2-ami-references"></a>

É possível identificar seus recursos da AWS que referenciam imagens de máquina da Amazon (AMIs) específicas, independentemente de as AMIs serem públicas ou privadas ou de quem as possui. Essa visibilidade ajuda você a garantir que seus recursos usem as mais recentes AMIs compatíveis.

**Benefícios principais**

A verificação das referências de AMIs ajuda para que você:
+ Audite o uso de AMIs em sua conta.
+ Verifique onde as AMIs específicas estão sendo referenciadas.
+ Mantenha a conformidade atualizando seus recursos para referenciar as AMIs mais recentes.

 

**Topics**
+ [Recursos compatíveis](#ec2-ami-references-supported-resources)
+ [Como funcionam as verificações de referência de AMIs](#how-ami-references-works)
+ [Permissões obrigatórias do IAM](#ami-references-required-permissions)
+ [Etapas para verificar as referências de AMIs](#ami-reference-procedures)

## Recursos compatíveis
<a name="ec2-ami-references-supported-resources"></a>

As referências de AMIs podem ser verificadas em:
+ Instâncias do EC2
+ Modelos de execução
+ Parâmetros do SSM
+ Fórmulas de imagens do Image Builder
+ Fórmulas de contêineres do Image Builder

## Como funcionam as verificações de referência de AMIs
<a name="how-ami-references-works"></a>

**Operação básica**

Ao executar uma verificação de referência de AMIs:
+ Especifique quais AMIs devem ser verificadas.
+ Escolha quais tipos de recursos serão verificados.
+ Receba uma lista de seus recursos que referenciam AMIs específicas.

**Seleção do tipo de recurso**

No console, você seleciona os tipos de recursos a serem verificados.

Na CLI, você especifica os tipos de recursos a serem verificados usando um ou os dois dos seguintes parâmetros da CLI:
+ `IncludeAllResourceTypes`: verifica todos os tipos de recursos compatíveis.
+ `ResourceTypes`: verifica os tipos de recursos especificados.

**Definir o escopo de respostas**

É possível definir o escopo de respostas para instâncias do EC2 e modelos de inicialização personalizando os valores de `ResourceTypeOptions` usando o parâmetro `ResourceTypes`. Tanto o console quanto o parâmetro `IncludeAllResourceTypes` usam valores de opção padrão. Quando `ResourceTypes` e `IncludeAllResourceTypes` são usados juntos, os valores das opções de `ResourceTypes` têm precedência sobre os padrões.

Os seguintes valores padrão são usados:


| Tipo de recurso | Opção de escopo (`OptionName`) | Finalidade | Valores padrão para `OptionValue` e o console | 
| --- | --- | --- | --- | 
| Instâncias do EC2 | state-name | Filtrar por estado da instância | pending, running, shutting-down, terminated, stopping, stopped (todos os estados) | 
| Modelos de execução | version-depth | Especifique o número de versões do modelo de inicialização a serem verificadas (começando pela versão mais recente) | 10 (versões mais recentes) | 

## Permissões obrigatórias do IAM
<a name="ami-references-required-permissions"></a>

Para usar a API DescribeImageReferences para identificar seus recursos que referenciam AMIs específicas, você precisa das seguintes permissões do IAM para descrever os recursos:
+ `ec2:DescribeInstances`
+ `ec2:DescribeLaunchTemplates`
+ `ec2:DescribeLaunchTemplateVersions`
+ `ssm:DescribeParameters`
+ `ssm:GetParameters`
+ `imagebuilder:ListImageRecipes`
+ `imagebuilder:ListContainerRecipes`
+ `imagebuilder:GetContainerRecipe`

**Exemplo de política do IAM para usar a API DescribeImageReferences**  
O exemplo de política a seguir concede a você as permissões para usar a API DescribeImageReferences, que inclui as permissões para descrever instâncias do EC2, modelos de inicialização, parâmetros do Systems Manager, fórmulas de imagens do Image Builder e fórmulas de contêineres do Image Builder.

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": "ec2:DescribeImageReferences",
			"Resource": "*"
		},
		{
			"Effect": "Allow",
			"Action": [
				"ec2:DescribeInstances",
				"ec2:DescribeLaunchTemplates",
				"ec2:DescribeLaunchTemplateVersions",
				"ssm:DescribeParameters",
				"ssm:GetParameters",
				"imagebuilder:ListImageRecipes",
				"imagebuilder:ListContainerRecipes",
				"imagebuilder:GetContainerRecipe"
			],
			"Resource": "*",
			"Condition": {
				"ForAnyValue:StringEquals": {
					"aws:CalledVia": [
						"ec2-images.amazonaws.com"
					]
				}
			}
		}
	]
}
```

------

**Importante**  
É altamente recomendável usar a política gerenciada [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html) da AWS em vez de criar a política você mesmo. Criar uma política do IAM personalizada que forneça somente as permissões necessárias requer tempo e experiência, e exigirá atualizações à medida que novos tipos de recursos forem disponibilizados.  
A política gerenciada `AmazonEC2ImageReferencesAccessPolicy`:  
Concede todas as permissões necessárias para usar a API DescribeImageReferences, que inclui as permissões para descrever instâncias do EC2, modelos de inicialização, parâmetros do Systems Manager e fórmulas de imagens e de contêineres do Image Builder.
É automaticamente compatível com novos tipos de recursos à medida que ficam disponíveis (especialmente importante ao usar o parâmetro `IncludeAllResourceTypes`).
É possível anexar a política `AmazonEC2ImageReferencesAccessPolicy` às identidades do IAM (usuários, grupos e perfis).   
Para visualizar as permissões incluídas nessa política, consulte [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ImageReferencesAccessPolicy.html) na *Referência de políticas gerenciadas pela AWS*.

## Etapas para verificar as referências de AMIs
<a name="ami-reference-procedures"></a>

Use os procedimentos a seguir para identificar quais dos seus recursos da AWS estão referenciando AMIs específicas.

------
#### [ Console ]

**Para identificar recursos referenciando AMIs específicas**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione uma ou mais AMIs para verificar as referências.

1. Escolha **Ações**, **Uso de AMIs**, **Visualizar recursos referenciados**.

1. Na página **Visualizar recursos referenciando AMIs selecionadas**:

   1. Em **Tipos de recursos**, selecione um ou mais tipos de recursos.

   1. Escolha **Visualizar recursos**.

1. A seção **Recursos referenciando AMIs selecionadas** é exibida. A lista exibe os recursos que referenciam AMIs específicas. Cada linha fornece as seguintes informações:
   + **ID da AMI**: o ID da AMI referenciada.
   + **Tipo de recurso**: o tipo de recurso do recurso que referencia a AMI.
   + **ID do recurso**: o ID do recurso que referencia a AMI.

------
#### [ AWS CLI ]

**Para verificar as referências de AMIs para tipos de recursos específicos**  
Use o comando [describe-image-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-references.html) com o parâmetro `--resource-types`. O exemplo a seguir verifica as instâncias do EC2 (definição do escopo por estado da instância), modelos de inicialização (considerando as 20 versões mais recentes de modelos de inicialização) e outros tipos de recursos específicos.

```
aws ec2 describe-image-references \
    --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \
    --resource-types \
        'ResourceType=ec2:Instance,ResourceTypeOptions=[{OptionName=state-name,OptionValues=[running,pending]}]' \
        'ResourceType=ec2:LaunchTemplate,ResourceTypeOptions=[{OptionName=version-depth,OptionValues=[20]}]' \
        'ResourceType=ssm:Parameter' \
        'ResourceType=imagebuilder:ImageRecipe' \
        'ResourceType=imagebuilder:ContainerRecipe'
```

O seguinte é um exemplo de saída.

```
{
    "ImageReferences": [
        {
            "ImageId": "ami-0abcdef1234567890",
            "ResourceType": "ec2:Instance",
            "Arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
        },
        {
            "ImageId": "ami-1234567890abcdef0",
            "ResourceType": "ec2:LaunchTemplate",
            "Arn": "arn:aws:ec2:us-east-1:123456789012:launch-template/lt-1234567890abcdef0"
        }
    ]
}
```

**Para verificar as referências de AMIs para todos os tipos de recursos compatíveis**  
Use o comando [describe-image-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-references.html) com o parâmetro `--include-all-resource-types`.

```
aws ec2 describe-image-references \
    --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \
    --include-all-resource-types
```

**Para verificar as referências de AMIs para todos os tipos de recursos compatíveis e opções específicas**  
Use o comando [describe-image-references](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-references.html) com os parâmetros `--include-all-resource-types` e `--resource-types`. Este exemplo verifica todos os tipos de recursos ao definir o escopo da resposta das instâncias do EC2 para as instâncias em execução ou pendentes.

```
aws ec2 describe-image-references \
    --image-ids ami-0abcdef1234567890 ami-1234567890abcdef0 \
    --include-all-resource-types \
    --resource-types 'ResourceType=ec2:Instance,ResourceTypeOptions=[{OptionName=state-name,OptionValues=[running,pending]}]'
```

------
#### [ PowerShell ]

**Para verificar as referências de AMIs para tipos de recursos específicos**  
Use o cmdlet [Get-EC2ImageReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageReference.html) com o parâmetro `-ResourceType`. O exemplo a seguir verifica as instâncias do EC2 (definição do escopo por estado da instância), modelos de inicialização (considerando as 20 versões mais recentes de modelos de inicialização) e outros tipos de recursos específicos.

```
Get-EC2ImageReference `
    -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' `
    -ResourceType @(
        @{
            ResourceType = 'ec2:Instance'
            ResourceTypeOptions = @(
                @{
                    OptionName = 'state-name'
                    OptionValues = @('running', 'pending')
                }
            )
        },
        @{
            ResourceType = 'ec2:LaunchTemplate'
            ResourceTypeOptions = @(
                @{
                    OptionName = 'version-depth'
                    OptionValues = @('20')
                }
            )
        },
        @{
            ResourceType = 'ssm:Parameter'
        },
        @{
            ResourceType = 'imagebuilder:ImageRecipe'
        },
        @{
            ResourceType = 'imagebuilder:ContainerRecipe'
        }
    )
```

**Para verificar as referências de AMIs para todos os tipos de recursos compatíveis**  
Use o cmdlet [Get-EC2ImageReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageReference.html) com o parâmetro `-IncludeAllResourceTypes`.

```
Get-EC2ImageReference `
    -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' `
    -IncludeAllResourceTypes
```

**Para verificar as referências de AMIs para todos os tipos de recursos compatíveis e opções específicas**  
Use o cmdlet [Get-EC2ImageReference](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageReference.html) com os parâmetros `-IncludeAllResourceTypes` e `-ResourceType`. Este exemplo verifica todos os tipos de recursos ao definir o escopo da resposta das instâncias do EC2 para as instâncias em execução ou pendentes.

```
Get-EC2ImageReference `
    -ImageId 'ami-0abcdef1234567890', 'ami-1234567890abcdef0' `
    -IncludeAllResourceTypes `
    -ResourceType @(
        @{
            ResourceType = 'ec2:Instance'
            ResourceTypeOptions = @(
                @{
                    OptionName = 'state-name'
                    OptionValues = @('running', 'pending')
                }
            )
        }
    )
```

------

# Descontinuar uma AMI do Amazon EC2
<a name="ami-deprecate"></a>

É possível defasar uma AMI para indicar que ela está desatualizada e não deve ser usada. Também é possível especificar uma data de defasagem futura para uma AMI, indicando quando a AMI estará desatualizada. Por exemplo, é possível defasar uma AMI cuja manutenção não está mais ativa ou pode defasar uma AMI que foi substituída por uma versão mais recente. Por padrão, as AMIs defasadas não aparecem nas listagens de AMI, impedindo que novos usuários usem AMIs desatualizadas. No entanto, os usuários existentes e os serviços de inicialização, como modelos de inicialização e grupos do Auto Scaling, podem continuar usando uma AMI defasada especificando seu ID. Para excluir a AMI, de modo que usuários e serviços não possam usá-la, é necessário [cancelar o registro](deregister-ami.md) dela.

Depois que uma AMI estiver defasada:
+ Para usuários de AMI, a AMI defasada não aparece nas chamadas de API [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html), a menos que você especifique o ID dela ou especifique que AMIs defasadas devem ser exibidas. Os proprietários da AMI continuam a ver AMIs defasadas nas chamadas de API [DescribeImages](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html).
+ Para usuários de AMI, a AMI defasada não está disponível para seleção no console do EC2. Por exemplo, uma AMI defasada não é exibida no catálogo da AMI no assistente de inicialização de instância. Os proprietários da AMI continuam a ver AMIs defasadas no console do EC2.
+ Para os usuários da AMI, se você souber o ID de uma AMI defasada, poderá continuar a iniciar instâncias usando a AMI defasada com a API, a CLI ou os SDKs.
+ Os serviços de inicialização, como modelos de inicialização e grupos do Auto Scaling, podem continuar referenciando a AMIs defasadas.
+ As instâncias do EC2 que foram iniciadas usando uma AMI que posteriormente é defasada não são afetadas e podem ser interrompidas, iniciadas e reinicializadas.

É possível defasar AMIs privadas e públicas.

**Topics**
+ [Custos](#ami-deprecate-costs)
+ [Considerações](#ami-deprecate-limitations)
+ [Defasar uma AMI](#deprecate-ami)
+ [Descrever AMIs defasadas](#describe-deprecate-ami)
+ [Cancelar a descontinuação da AMI](#cancel-deprecate-ami)

## Custos
<a name="ami-deprecate-costs"></a>

Quando você defasar uma AMI, a AMI não será excluída. O proprietário da AMI continuará pagando pelos snapshots da AMI. Para parar de pagar pelos instantâneos, o proprietário da AMI deve excluir a AMI [cancelando o registro](deregister-ami.md) dela.

## Considerações
<a name="ami-deprecate-limitations"></a>
+ Para defasar uma AMI, é necessário ser o proprietário da AMI.
+ AMIs que não tenham sido usadas recentemente para iniciar uma instância podem ser boas candidatas para descontinuação ou cancelamento de registro. Para obter mais informações, consulte [Verificar quando uma AMI do Amazon EC2 foi usada pela última vez](ami-last-launched-time.md).
+ É possível criar políticas de AMI apoiadas pelo EBS Amazon Data Lifecycle Manager para automatizar a descontinuação das AMIs apoiadas pelo EBS. Para obter mais informações, consulte [Create AMI lifecycle policies](https://docs.aws.amazon.com/ebs/latest/userguide/ami-policy.html).
+ Por padrão, a data de descontinuação de todas as AMIs públicas é definida como dois anos a partir da data de criação da AMI. É possível definir a data de descontinuação para antes de dois anos. Para cancelar a data de descontinuação ou adiá-la para uma data posterior, você deve tornar a AMI privada [compartilhando-a somente com contas específicas da AWS](sharingamis-explicit.md).

## Defasar uma AMI
<a name="deprecate-ami"></a>

É possível defasar uma AMI em uma data e hora específicas. É necessário ser o proprietário da AMI.

O limite superior para a data de descontinuação é daqui a 10 anos, exceto para AMIs públicas, em que o limite superior é de 2 anos após a data de criação. Você não pode especificar uma data no passado.

------
#### [ Console ]

**Para descontinuar uma AMI em uma data específica**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No navegador à esquerda, escolha **AMIs**.

1. Na barra de filtros, escolha **Owned by me** (Sou proprietário).

1. Selecione a AMI e escolha **Actions** (Ações), **Manage AMI Deprecation** (Gerenciar descontinuação da AMI). É possível selecionar várias AMIs para definir a mesma data de descontinuação de várias AMIs de uma só vez.

1. Marque a caixa de seleção **Habilitar** e insira a data e a hora de descontinuação. 

1. Escolha **Salvar**.

------
#### [ AWS CLI ]

**Para descontinuar uma AMI em uma data específica**  
Usar o comando [disable-image-deprecation](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image-deprecation.html). Se você especificar um valor para segundos, o Amazon EC2 arredondará os segundos para o minuto mais próximo.

```
aws ec2 enable-image-deprecation \
    --image-id ami-0abcdef1234567890 \
    --deprecate-at "2025-04-15T13:17:12.000Z"
```

------
#### [ PowerShell ]

**Para descontinuar uma AMI em uma data específica**  
Use o cmdlet [Enable-EC2ImageDeprecation](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2ImageDeprecation.html). Se você especificar um valor para segundos, o Amazon EC2 arredondará os segundos para o minuto mais próximo.

```
Enable-EC2ImageDeprecation `
    -ImageId ami-0abcdef1234567890 `
    -DeprecateAt 2025-04-15T13:17:12.000Z
```

------

## Descrever AMIs defasadas
<a name="describe-deprecate-ami"></a>

É possível visualizar a data e a hora de descontinuação de uma AMI e filtrar as AMIs por data de substituição.

------
#### [ Console ]

**Para visualizar a data de descontinuação de uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No navegador, escolha **AMIs** e, em seguida, selecione a AMI.

1. Selecione o campo **Hora da descontinuação** (se você marcou a caixa de seleção ao lado da AMI, ele estará localizado na guia **Detalhes**). O campo mostra a data e a hora de descontinuação da AMI. Se o campo estiver vazio, a AMI não estará descontinuada.

**Para filtrar AMIs por data de descontinuação**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No navegador à esquerda, escolha **AMIs**.

1. Na barra de filtros, escolha **Owned by me** (Sou proprietário) ou **Private images** (Imagens privadas) (as imagens privadas incluem AMIs compartilhadas com você e de sua propriedade).

1. Na Search bar (Barra de pesquisa), insira **Deprecation time** (à medida que você insere as letras, o filtro **Deprecation time** (Hora da descontinuação) aparece) e, em seguida, escolha um operador e uma data e hora.

------
#### [ AWS CLI ]

Quando você descreve todas as AMIs, os resultados dependerão se você é usuário da AMI ou proprietário da AMI.
+ **Usuário da AMI**: por padrão, quando você descreve todas as AMIs, as AMIs descontinuadas compartilhadas com você, mas das quais você não é proprietário, são excluídas. Para incluir AMIs descontinuadas nos resultados, especifique a opção `--include-deprecated`.
+ **Proprietário da AMI**: quando você descreve todas as AMIs, todas as AMIs das quais você é proprietário, inclusive AMIs descontinuadas, são incluídas. Você não pode usar a opção `--no-include-deprecated` para excluir as AMIs descontinuadas de sua propriedade.

**Para incluir as AMIs descontinuadas ao descrever todas as AMIs de uma conta**  
Use o seguinte comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images 
    --owners 123456789012 \   
    --include-deprecated
```

**Para descrever as AMIs descontinuadas da sua conta**  
Use o seguinte comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --owners self \
    --query "Images[?DeprecationTime!=null].ImageId" \
    --output text
```

O seguinte é um exemplo de saída.

```
ami-0abcdef1234567890
```

**Para descrever a data de descontinuação de uma AMI**  
Use o seguinte comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html). Se `DeprecationTime` não estiver presente na saída, a AMI não será descontinuada nem será definida para descontinuação em uma data futura.

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[].DeprecationTime \
    --output text
```

O seguinte é um exemplo de saída.

```
2025-05-01T00:00:00.000Z
```

------
#### [ PowerShell ]

**Para listar as AMIs descontinuadas da sua conta**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image -Owner self | Where-Object {$_.DeprecationTime -ne $null}).ImageId
```

O seguinte é um exemplo de saída.

```
ami-0abcdef1234567890
```

**Para descrever a data de descontinuação de uma AMI**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html). Se `DeprecationTime` não estiver presente na saída, a AMI não será descontinuada nem será definida para descontinuação em uma data futura.

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).DeprecationTime
```

O seguinte é um exemplo de saída.

```
2025-05-01T00:00:00.000Z
```

------

## Cancelar a descontinuação da AMI
<a name="cancel-deprecate-ami"></a>

É possível cancelar a descontinuação de uma AMI, o que remove a data e a hora de descontinuação. É necessário ser o proprietário da AMI para executar esse procedimento.

------
#### [ Console ]

**Para cancelar a descontinuação de uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No navegador à esquerda, escolha **AMIs**.

1. Na barra de filtros, escolha **Owned by me** (Sou proprietário).

1. Selecione a AMI e escolha **Actions** (Ações), **Manage AMI Deprecation** (Gerenciar descontinuação da AMI). É possível selecionar várias AMIs para cancelar a descontinuação de várias AMIs de uma só vez.

1. Desmarque a caixa de seleção **Habilitar** e escolha **Salvar**.

------
#### [ AWS CLI ]

**Para cancelar a descontinuação de uma AMI**  
Use o seguinte comando [disnable-image-deprecation](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image-deprecation.html).

```
aws ec2 disable-image-deprecation --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Para cancelar a descontinuação de uma AMI**  
Use o cmdlet [Disable-EC2ImageDeprecation](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2ImageDeprecation.html).

```
Disable-EC2ImageDeprecation -ImageId ami-0abcdef1234567890
```

------

# Desabilitar uma AMI do Amazon EC2
<a name="disable-an-ami"></a>

Você pode desabilitar uma AMI para evitar que ela seja usada em execuções de instâncias. Não é possível executar novas instâncias por meio de uma AMI desabilitada. Você pode reabilitar uma AMI desabilitada para que ela possa ser usada novamente em execuções de instâncias.

É possível desabilitar AMIs privadas e públicas.

Para reduzir os custos de armazenamento de AMIs baseadas no EBS desabilitadas, que são usadas raramente, mas que precisam ser retidas a longo prazo, você pode arquivar os snapshots a elas associados. Para obter mais informações, consulte [Arquivar snapshots do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html) no *Guia do usuário do Amazon EC2*.

**Topics**
+ [Como funciona a desabilitação de AMI](#how-disable-ami-works)
+ [Custos](#ami-disable-costs)
+ [Pré-requisitos](#ami-disable-prerequisites)
+ [Permissões obrigatórias do IAM](#ami-disable-iam-permissions)
+ [Desabilitar uma AMI](#disable-ami)
+ [Descrever AMIs desabilitadas](#describe-disabled-ami)
+ [Reabilitar uma AMI desabilitada](#re-enable-a-disabled-ami)

## Como funciona a desabilitação de AMI
<a name="how-disable-ami-works"></a>

**Atenção**  
Ao desabilitar uma AMI, todas as permissões de execução são removidas.

**Quando uma AMI é desabilitada:**
+ O estado da AMI muda para `disabled`.
+ Uma AMI desabilitada não pode ser compartilhada. Se uma AMI era pública ou compartilhada, ela se tornará privada. Se uma AMI era compartilhada com uma Conta da AWS, organização ou unidade organizacional, elas perderão o acesso à AMI desabilitada. 
+ Por padrão, uma AMI desabilitada não é exibida nas chamadas da API [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeImages.html).
+ Uma AMI desabilitada não é exibida no filtro **De minha propriedade** do console. Para encontrar AMIs desabilitadas, use o filtro **Imagens desabilitadas** do console.
+ Não é possível selecionar uma AMI desabilitada para execuções de instâncias no console do EC2. Por exemplo, uma AMI desabilitada não é exibida no catálogo de AMIs do assistente de execução da instância nem ao criar um modelo de execução.
+ Os serviços de execução, como modelos de execução e grupos do Auto Scaling, podem continuar fazendo referência a AMIs desabilitadas. As execuções subsequentes de instâncias com base em uma AMI desabilitada vão falhar. Por isso, recomendamos atualizar os modelos de execução e os grupos do Auto Scaling para fazer referência somente às AMIs disponíveis.
+ As instâncias do EC2 que eram executadas usando uma AMI que mais tarde foi desabilitada não serão afetadas e poderão ser interrompidas, iniciadas e reinicializadas.
+ Não é possível excluir snapshots associados a AMIs desabilitadas. Tentar excluir um snapshot associado resulta no erro `snapshot is currently in use`.

**Quando uma AMI é reabilitada:**
+ O estado da AMI muda para `available`, e ela pode ser usada para executar instâncias.
+ A AMI pode ser compartilhada.
+ Contas da AWS, organizações e unidades organizacionais que perderam o acesso à AMI quando ela foi desabilitada não recuperam o acesso automaticamente, mas a AMI pode ser compartilhada com elas de novo.

## Custos
<a name="ami-disable-costs"></a>

Quando você desabilita uma AMI, ela não é excluída. Se a AMI for uma AMI baseada no EBS, você continua pagando pelos snapshots do EBS da AMI. Se você quiser manter a AMI, talvez consiga reduzir os custos de armazenamento arquivando os snapshots. Para obter mais informações, consulte [Arquivar snapshots do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/snapshot-archive.html) no *Guia do usuário do Amazon EC2*. Se não quiser manter a AMI e seus snapshots, é preciso cancelar o registro da AMI e excluir os snapshots. Para obter mais informações, consulte [Cancelar o registro de uma AMI](deregister-ami.md).

## Pré-requisitos
<a name="ami-disable-prerequisites"></a>

Para desabilitar ou reabilitar uma AMI, é preciso ser o proprietário da AMI.

## Permissões obrigatórias do IAM
<a name="ami-disable-iam-permissions"></a>

Para desabilitar e reabilitar uma AMI, é necessário ter as seguintes permissões do IAM:
+ `ec2:DisableImage`
+ `ec2:EnableImage`

## Desabilitar uma AMI
<a name="disable-ami"></a>

Você pode desabilitar uma AMI usando o console do EC2 ou a AWS Command Line Interface (AWS CLI). É necessário ser o proprietário da AMI para executar esse procedimento.

------
#### [ Console ]

**Desabilitar uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação à esquerda, selecione **AMIs**.

1. Na barra de filtros, escolha **Owned by me** (Sou proprietário).

1. Selecione a AMI e escolha **Ações**, **Desativar a AMI**. É possível selecionar várias AMIs para serem desabilitadas de uma vez.

1. Na janela **Desativar AMI**, escolha **Desativar AMI**.

------
#### [ AWS CLI ]

**Desabilitar uma AMI**  
Use o seguinte comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image.html):

```
aws ec2 disable-image --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Desabilitar uma AMI**  
Use o cmdlet [Disable-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2Image.html).

```
Disable-EC2Image -ImageId ami-0abcdef1234567890
```

------

## Descrever AMIs desabilitadas
<a name="describe-disabled-ami"></a>

É possível visualizar as AMIs desabilitadas no console do EC2 usando a AWS CLI.

Você precisa ser o proprietário da AMI para ver as AMIs desabilitadas. Como as AMIs desabilitadas se tornam privadas, você não poderá ver as AMIs desabilitadas se não for o proprietário.

------
#### [ Console ]

**Visualizar AMIs desabilitadas**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação à esquerda, selecione **AMIs**.

1. Na barra de filtro, escolha **Imagens desabilitadas**.  
![\[O filtro de imagens desabilitado.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami-filter-by-disabled-images.png)

------
#### [ AWS CLI ]

Por padrão, quando você descreve todas as AMIs, as AMIs desabilitadas não são incluídas nos resultados. Para incluir AMIs desabilitadas nos resultados, especifique a opção `--include-disabled`. O campo `State` para uma AMI será `disabled` se a AMI estiver desabilitada.

**Para incluir as AMIs desabilitadas ao descrever todas as AMIs de uma conta**  
Use o seguinte comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html):

```
aws ec2 describe-images \
    --owners 123456789012 \
    --include-disabled
```

**Para listar as AMIs desabilitadas da sua conta**  
Use o seguinte comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html):

```
aws ec2 describe-images \
    --owners self \
    --include-disabled \
    --filters Name=state,Values=disabled \
    --query Images[].ImageId \
    --output text
```

O seguinte é um exemplo de saída.

```
ami-0abcdef1234567890
```

**Para descrever o status de uma AMI**  
Use o seguinte comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html): Se `DeprecationTime` não estiver presente na saída, a AMI não será descontinuada nem será definida para descontinuação em uma data futura.

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[].State \
    --output text
```

O seguinte é um exemplo de saída.

```
disabled
```

------
#### [ PowerShell ]

Por padrão, quando você descreve todas as AMIs, as AMIs desabilitadas não são incluídas nos resultados. Para incluir AMIs desabilitadas nos resultados, é necessário especificar o parâmetro `-IncludeDisabled`. O campo `State` para uma AMI será `disabled` se a AMI estiver desabilitada.

**Para listar as AMIs desabilitadas da sua conta**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image `
    -Owner self `
    -IncludeDisabled $true | Where-Object {$_.State -eq "disabled"}).ImageId
```

O seguinte é um exemplo de saída.

```
ami-0abcdef1234567890
```

**Para descrever o status de uma AMI**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).State.Value
```

O seguinte é um exemplo de saída.

```
disabled
```

------

## Reabilitar uma AMI desabilitada
<a name="re-enable-a-disabled-ami"></a>

Você pode reabilitar uma AMI desabilitada. É necessário ser o proprietário da AMI para executar esse procedimento.

------
#### [ Console ]

**Reabilitar uma AMI desabilitada**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação à esquerda, selecione **AMIs**.

1. Na barra de filtro, escolha **Imagens desabilitadas**.

1. Selecione a AMI e escolha **Ações**, **Habilitar a AMI**. É possível selecionar várias AMIs para reabilitá-las ao mesmo tempo.

1. Na janela **Habilitar AMI**, escolha **Habilitar**.

------
#### [ AWS CLI ]

**Reabilitar uma AMI desabilitada**  
Use o seguinte comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image.html):

```
aws ec2 enable-image --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Reabilitar uma AMI desabilitada**  
Use o cmdlet [Enable-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2Image.html).

```
Enable-EC2Image -ImageId ami-0abcdef1234567890
```

------

# Cancelar o registro de uma AMI do Amazon EC2
<a name="deregister-ami"></a>

Quando você cancela o registro de uma AMI, o Amazon EC2 a exclui permanentemente. Depois de cancelar o registro de uma AMI, você não poderá usá-la para executar novas instâncias. Considere cancelar o registro de uma AMI quando não pretender mais usá-la.

Para se proteger contra o cancelamento acidental ou mal-intencionado de uma AMI, é possível ativar a [proteção contra cancelamento de registro](ami-deregistration-protection.md). Se você cancelar acidentalmente o registro de uma AMI baseada no EBS, poderá usar a [Lixeira](https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin.html) para restaurá-la somente se o fizer dentro do período de tempo permitido antes que ela seja excluída permanentemente.

Ao cancelar o registro de uma AMI, é possível excluir ao mesmo tempo os snapshots associados. No entanto, se um snapshot estiver associado a várias AMIs, ele não será excluído, mesmo se especificado para exclusão, mas o registro da AMI ainda será cancelado. Qualquer snapshot não excluído continuará a gerar custos de armazenamento.

O cancelamento do registro de uma AMI não afetará nenhuma instância que já tenha sido iniciada pela AMI. Essas instâncias poderão continuar sendo usadas. Por padrão, o cancelamento do registro de uma AMI também não afeta os snapshots criados durante o processo de criação da AMI. Você continuará incorrendo em custos de uso para essas instâncias e em custos de armazenamento para os snapshots. Assim, para evitar incorrer em custos extras, recomendamos encerrar quaisquer instâncias e excluir quaisquer snapshots desnecessários. É possível excluir os snapshots automaticamente durante o cancelamento do registro ou manualmente após o cancelamento do registro. Para obter mais informações, consulte [Evite custos com recursos não utilizados](#delete-unneeded-resources-to-avoid-unnecessary-costs).

Para instâncias iniciadas a partir de uma AMI cujo registro é posteriormente cancelado, você ainda pode visualizar algumas informações de alto nível sobre a AMI usando o comando `describe-instance-image-metadata` AWS CLI. Para obter mais informações, consulte [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html).

**Topics**
+ [Considerações](#deregister-ami-considerations)
+ [Cancelar o registro de uma AMI](#deregister-an-ami)
+ [Evite custos com recursos não utilizados](#delete-unneeded-resources-to-avoid-unnecessary-costs)
+ [Proteger uma AMI do Amazon EC2 de cancelamento de registro](ami-deregistration-protection.md)

## Considerações
<a name="deregister-ami-considerations"></a>
+ Você não pode cancelar o registro de uma AMI que não pertença à sua conta.
+ Você não pode cancelar o registro de uma AMI gerenciada pelo serviço AWS Backup usando o Amazon EC2. Em vez disso, use o AWS Backup para excluir os pontos de recuperação correspondentes no cofre de backup. Para obter mais informações, consulte [Exclusão de namespaces](https://docs.aws.amazon.com/aws-backup/latest/devguide/deleting-backups.html) no *Guia do desenvolvedor do AWS Backup*.

## Cancelar o registro de uma AMI
<a name="deregister-an-ami"></a>

É possível cancelar o registro de AMIs baseadas no EBS e de AMIs baseadas no Amazon S3. Para AMIs baseadas em EBS, é possível excluir ao mesmo tempo os snapshots associados. No entanto, se um snapshot estiver associado a outras AMIs, ele não será excluído, mesmo se especificado para exclusão.

------
#### [ Console ]

**Para cancelar o registro de uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Na barra de filtros, escolha **Pertencentes a mim** para listar suas AMIs disponíveis ou escolha **Imagens desabilitadas** para listar suas AMIs desabilitadas.

1. Selecione a AMI para cancelar o registro.

1. Escolha **Actions** (Ações) e **Deregister AMI** (Cancelar registro da AMI).

1. (Opcional) Para excluir os snapshots associados durante o cancelamento do registro, marque a caixa de seleção **Excluir snapshots associados**.
**nota**  
Se um snapshot estiver associado a outras AMIs, ele não será excluído mesmo se a caixa de seleção estiver marcada.

1. Escolha **Cancelar registro da AMI**.

   A remoção da AMI da lista pelo console pode demorar alguns minutos. Escolha **Refresh (Atualizar)** para atualizar o status.

------
#### [ AWS CLI ]

**Para cancelar o registro de uma AMI**  
Use o seguinte comando [deregister-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-image.html).

```
aws ec2 deregister-image --image-id ami-0abcdef1234567890
```

**Para cancelar o registro de uma AMI e excluir seus snapshots associados**  
Use o comando [deregister-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/deregister-image.html) a seguir e especifique o parâmetro `--delete-associated-snapshots`. Observe que, se um snapshot estiver associado a outras AMIs, ele não será excluído, mesmo que você especifique esse parâmetro.

```
aws ec2 deregister-image \
    --image-id ami-0abcdef1234567890 \
    --delete-associated-snapshots
```

------
#### [ PowerShell ]

**Para cancelar o registro de uma AMI**  
Use o cmdlet [Unregister-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Image.html).

```
Unregister-EC2Image -ImageId ami-0abcdef1234567890
```

**Para cancelar o registro de uma AMI e excluir seus snapshots associados**  
Use o cmdlet [Unregister-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Unregister-EC2Image.html) e especifique o parâmetro `-DeleteAssociatedSnapshots`. Observe que, se um snapshot estiver associado a outras AMIs, ele não será excluído, mesmo que você especifique esse parâmetro.

```
Unregister-EC2Image `
    -ImageId ami-0abcdef1234567890 `
    -DeleteAssociatedSnapshots
```

------

## Evite custos com recursos não utilizados
<a name="delete-unneeded-resources-to-avoid-unnecessary-costs"></a>

O cancelamento do registro de uma AMI não exclui, por padrão, todos os recursos associados a ela. Esses recursos incluem os snapshots das AMIs baseadas no EBS e os arquivos armazenados no Amazon S3 das AMIs baseadas no Amazon S3. Quando o registro de uma AMI for cancelado, isso não encerrará nem interromperá nenhuma instância já iniciada via AMI.

Você continuará incorrendo em custos para armazenar os snapshots e os arquivos, e incorrerá em custos para qualquer instância em execução.

Para evitar incorrer nestes tipos de custos extras, recomendamos excluir quaisquer recursos desnecessários.

**AMIs apoiadas pelo EBS**
+ Exclua os snapshots associados ao mesmo tempo que cancela o registro da AMI. Para obter mais informações, consulte [Cancelar o registro de uma AMI](#deregister-an-ami).
+ Se você cancelar o registro de uma AMI sem excluir seus snapshots associados, você poderá [excluir os snapshots](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-deleting-snapshot.html#ebs-delete-snapshot) manualmente. O snapshot do volume raiz da instância criado durante a criação da AMI tem o seguinte formato de descrição:

  ```
  Created by CreateImage(i-1234567890abcdef0) for ami-0abcdef1234567890
  ```
+ Se você não precisar mais das instâncias que foram inicializadas pela AMI, poderá [interrompê-las](Stop_Start.md#starting-stopping-instances) ou [encerrá-las](terminating-instances.md#terminating-instances-console). Para listar as instâncias, filtre pelo ID da AMI.

**AMIs baseadas no Amazon S3**
+ Exclua o pacote no Amazon S3 usando o comando [ec2-delete-bundle](ami-tools-commands.md#ami-delete-bundle) (ferramentas de AMI).
+ Se o bucket do Amazon S3 estiver vazio após a exclusão do pacote e você não tiver mais finalidade para esse bucket, você poderá [excluir](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-bucket.html) o bucket.
+ Se você não precisar mais das instâncias que foram inicializadas pela AMI, poderá [encerrá-las](terminating-instances.md#terminating-instances-console). Para listar as instâncias, filtre pelo ID da AMI.

# Proteger uma AMI do Amazon EC2 de cancelamento de registro
<a name="ami-deregistration-protection"></a>

É possível ativar a *proteção contra cancelamento de registro* em uma AMI para evitar exclusão acidental ou mal-intencionada. Quando a proteção contra cancelamento do registro estiver ativada, o registro da AMI não poderá ser cancelado por nenhum usuário, independente das permissões do IAM de cada um. Para cancelar o registro da AMI, desative primeiro a proteção contra cancelamento de registro na AMI.

Ao ativar a proteção contra cancelamento de registro em uma AMI, você terá a opção de incluir um período de espera de 24 horas. Esse período de espera é o tempo durante o qual a proteção contra cancelamento de registro permanece em vigor após você desativá-la. Durante esse período de espera, o registro da AMI não poderá ser cancelado. Quando o período de espera terminar, o registro da AMI poderá ser cancelado.

A proteção contra cancelamento de registro é desativada por padrão em todas as AMI novas e existentes.

## Ativar a proteção contra cancelamento do registro
<a name="enable-deregistration-protection"></a>

Use os procedimentos a seguir para ativar a proteção contra cancelamento de registro.

------
#### [ Console ]

**Para ativar a proteção contra cancelamento do registro**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Na barra de filtros, escolha **Pertencentes a mim** para listar suas AMIs disponíveis ou escolha **Imagens desabilitadas** para listar suas AMIs desabilitadas.

1. Selecione a AMI na qual você deseja ativar a proteção contra cancelamento de registro e, em seguida, escolha **Ações**, **Gerenciar proteção contra cancelamento de registro da AMI**.

1. Na caixa de diálogo **Gerenciar proteção contra cancelamento de registro da AMI**, é possível ativar a proteção contra cancelamento de registro com ou sem um período de espera. Escolha uma das seguintes opções:
   + **Habilitar com período de espera de 24 horas**: com um período de espera, o registro da AMI não poderá ser cancelado por 24 horas quando a proteção de cancelamento de registro estiver desativada.
   + **Habilitar sem período de espera**: sem um período de espera, o registro da AMI poderá ser cancelado imediatamente quando a proteção contra cancelamento de registro estiver desativada.

1. Selecione **Salvar**.

------
#### [ AWS CLI ]

**Para ativar a proteção contra cancelamento do registro**  
Use o comando [enable-image-deregistration-protection](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image-deregistration-protection.html). Para habilitar o período de espera opcional, inclua a opção `--with-cooldown`.

```
aws ec2 enable-image-deregistration-protection \
    --image-id ami-0abcdef1234567890 \
    --with-cooldown
```

------
#### [ PowerShell ]

**Para ativar a proteção contra cancelamento do registro**  
Use o cmdlet [Enable-EC2ImageDeregistrationProtection](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2ImageDeregistrationProtection.html). Para habilitar o período de espera opcional, defina o parâmetro `-WithCooldown` como `true`.

```
Enable-EC2ImageDeregistrationProtection `
    -ImageId ami-0abcdef1234567890 `
    -WithCooldown $true
```

------

## Desativar a proteção contra cancelamento do registro
<a name="disable-deregistration-protection"></a>

Use os procedimentos a seguir para desativar a proteção contra cancelamento de registro.

Se você optou por incluir um período de espera de 24 horas ao ativar a proteção contra cancelamento de registro para a AMI, quando a proteção contra cancelamento de registro for desativada, o registro da AMI não poderá ser cancelado imediatamente. Esse período de espera é o período de 24 horas durante o qual a proteção contra cancelamento de registro permanece em vigor após você desativá-la. Durante esse período de espera, o registro da AMI não poderá ser cancelado. Quando o período de espera terminar, o registro da AMI poderá ser cancelado.

------
#### [ Console ]

**Para desativar a proteção contra cancelamento do registro**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Na barra de filtros, escolha **Pertencentes a mim** para listar suas AMIs disponíveis ou escolha **Imagens desabilitadas** para listar suas AMIs desabilitadas.

1. Selecione a AMI na qual você deseja desativar a proteção contra cancelamento de registro e, em seguida, escolha **Ações**, **Gerenciar proteção contra cancelamento de registro da AMI**.

1. Na caixa de diálogo **Gerenciar proteção contra cancelamento de registro da AMI**, escolha **Desabilitar**.

1. Escolha **Salvar**.

------
#### [ AWS CLI ]

**Para desativar a proteção contra cancelamento do registro**  
Use o comando [disnable-image-deregistration-protection](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image-deregistration-protection.html).

```
aws ec2 disable-image-deregistration-protection --image-id ami-0abcdef1234567890
```

------
#### [ PowerShell ]

**Para desativar a proteção contra cancelamento do registro**  
Use o cmdlet [Disable-EC2ImageDeregistrationProtection](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2ImageDeregistrationProtection.html).

```
Disable-EC2ImageDeregistrationProtection -ImageId ami-0abcdef1234567890
```

------

# Comportamento de execução da instância com modos de inicialização do Amazon EC2
<a name="ami-boot"></a>

Quando um computador é inicializado, o primeiro software executado é responsável por inicializar a plataforma e fornecer uma interface para que o sistema operacional execute operações específicas da plataforma.

No Amazon EC2, há suporte para duas variantes do software do modo de inicialização: Unified Extensible Firmware Interface (UEFI) e BIOS legado.

**Possíveis parâmetros do modo de inicialização em uma AMI**  
Uma AMI pode ter um dos seguintes valores de parâmetro de modo de inicialização: `uefi`, `legacy-bios` ou `uefi-preferred`. O parâmetro de modo de inicialização da AMI é opcional. Para AMIs sem parâmetro de modo de inicialização, as instâncias executadas a partir delas usam o valor de modo de inicialização padrão do tipo de instância.

**Objetivo do parâmetro de modo de inicialização da AMI**  
O parâmetro de modo de inicialização da AMI sinaliza ao Amazon EC2 qual modo de inicialização usar ao iniciar uma instância. Quando o parâmetro de modo de inicialização é definido como `uefi`, o EC2 tenta iniciar a instância em UEFI. Se o sistema operacional não estiver configurado para oferecer suporte a UEFI, a execução da instância não terá êxito.

**Parâmetro de modo de inicialização preferencial UEFI**  
É possível criar AMIs que suportem UEFI e Legacy BIOS usando o parâmetro `uefi-preferred` do modo de inicialização. Quando o parâmetro de modo de inicialização é definido como `uefi-preferred`, e se o tipo de instância oferecer suporte a UEFI, a instância será iniciada em UEFI. Se o tipo de instância não for compatível com UEFI, ela será iniciada em BIOS legado.

**Atenção**  
Alguns recursos, como o UEFI Secure Boot, só estão disponíveis em instâncias que inicializadas em UEFI. Quando você usa o parâmetro do modo de inicialização `uefi-preferred` da AMI com um tipo de instância que não ofereça suporte a UEFI, a instância será iniciada como BIOS legado e o recurso dependente de UEFI será desativado. Se você confia na disponibilidade de um recurso dependente de UEFI, defina o parâmetro do modo de inicialização da AMI como `uefi`.

**Modos de inicialização padrão para tipos de instância**
+ Tipos de instância Graviton: UEFI
+ Tipos de instância Intel e AMD: BIOS legado

**Suporte para zonas**  
A inicialização UEFI não é compatível com as zonas do Wavelength.

**Topics**
+ [Requisitos para executar uma instância do EC2 no modo de inicialização da UEFI](launch-instance-boot-mode.md)
+ [Determinar o parâmetro do modo de inicialização de uma AMI do Amazon EC2](ami-boot-mode.md)
+ [Determinar os modos de inicialização compatíveis de um tipo de instância do EC2](instance-type-boot-mode.md)
+ [Determinar o modo de inicialização de uma instância do EC2](instance-boot-mode.md)
+ [Determinar o modo de inicialização do sistema operacional para a instância do EC2](os-boot-mode.md)
+ [Definir o modo de inicialização de uma AMI do Amazon EC2](set-ami-boot-mode.md)
+ [Variáveis da UEFI para instâncias do Amazon EC2](uefi-variables.md)
+ [UEFI Secure Boot para instâncias do Amazon EC2](uefi-secure-boot.md)

# Requisitos para executar uma instância do EC2 no modo de inicialização da UEFI
<a name="launch-instance-boot-mode"></a>

O modo de inicialização de uma instância é determinado pela configuração da AMI, pelo sistema operacional incluído nela e pelo tipo de instância. Para executar uma instância no modo de inicialização da UEFI, você deve atender aos requisitos a seguir.

**AMI**  
A AMI deve ser configurada para a UEFI da seguinte forma:  
+ **Sistema operacional**: o sistema operacional contido na AMI deve ser configurado para usar UEFI; caso contrário, a inicialização da instância falhará. Para obter mais informações, consulte [Determinar o modo de inicialização do sistema operacional para a instância do EC2](os-boot-mode.md).
+ **Parâmetro de modo de inicialização da AMI**: o parâmetro de modo de inicialização da AMI deve ser definido como `uefi` ou `uefi-preferred`. Para obter mais informações, consulte [Determinar o parâmetro do modo de inicialização de uma AMI do Amazon EC2](ami-boot-mode.md).
**Linux**: as seguintes AMIs do Linux são compatíveis com UEFI:  
+ Amazon Linux 2023
+ Amazon Linux 2 (somente instâncias do tipo Graviton)
Para outras AMIs do Linux, você deve [configurar a AMI](set-ami-boot-mode.md) e importá-la por meio do [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/) ou do [CloudEndure](https://docs.cloudendure.com/).  
**Windows**: as seguintes AMIs do Windows oferecem suporte para a UEFI:  
+ Windows\$1Server-2025-\$1 (com exceção de AMIs com o prefixo de nome `BIOS-`)
+ TPM-Windows\$1Server-2022-English-Full-Base
+ TPM-Windows\$1Server-2022-English-Core-Base
+ TPM-Windows\$1Server-2019-English-Full-Base
+ TPM-Windows\$1Server-2019-English-Core-Base
+ TPM-Windows\$1Server-2016-English-Full-Base
+ TPM-Windows\$1Server-2016-English-Core-Base

**Tipo de instância**  
Todas as instâncias criadas no AWS Nitro System são compatíveis com a UEFI e o BIOS herdado, exceto as seguintes: instâncias bare metal, DL1, G4ad, P4, u-3tb1, u-6tb1, u-9tb1, u-12tb1, u-18tb1, u-24tb1 e VT1. Para obter mais informações, consulte [Determinar os modos de inicialização compatíveis de um tipo de instância do EC2](instance-type-boot-mode.md).

A tabela a seguir mostra que o modo de inicialização de uma instância (indicado pela coluna **Modo de inicialização da instância resultante**) é determinado por uma combinação do parâmetro do modo de inicialização da AMI (coluna 1), a configuração do modo de inicialização do sistema operacional contida na AMI (coluna 2) e o suporte ao modo de inicialização do tipo de instância (coluna 3).


| Parâmetro do modo de inicialização da AMI | Configuração do modo de inicialização do sistema operacional | Suporte ao modo de inicialização do tipo de instância | Modo de inicialização da instância resultante | 
| --- | --- | --- | --- | 
| UEFI | UEFI | UEFI | UEFI | 
| BIOS legado | BIOS legado | BIOS legado | BIOS legado | 
| UEFI preferencial | UEFI | UEFI | UEFI | 
| UEFI preferencial | UEFI | UEFI e BIOS legado | UEFI | 
| UEFI preferencial | BIOS legado | BIOS legado | BIOS legado | 
| UEFI preferencial | BIOS legado | UEFI e BIOS legado | BIOS legado | 
| Nenhum modo de inicialização especificado - ARM | UEFI | UEFI | UEFI | 
| Nenhum modo de inicialização especificado - x86 | BIOS legado | UEFI e BIOS legado | BIOS legado | 

# Determinar o parâmetro do modo de inicialização de uma AMI do Amazon EC2
<a name="ami-boot-mode"></a>

O parâmetro de modo de inicialização da AMI é opcional. Uma AMI pode ter um dos seguintes valores de parâmetro de modo de inicialização: `uefi`, `legacy-bios` ou `uefi-preferred`.

Algumas AMIs não têm um parâmetro de modo de inicialização. Quando uma AMI não tem parâmetro de modo de inicialização, as instâncias executadas a partir dela usam o valor padrão do tipo de instância, que é `uefi` no Graviton e `legacy-bios` nos tipos de instância Intel e AMD.

------
#### [ Console ]

**Para determinar o parâmetro de modo de inicialização de uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **AMIs** e, em seguida, selecione a AMI.

1. Inspecione o campo **Modo de inicialização**.
   + Um valor de **uefi** indica que a AMI é compatível com a UEFI.
   + Um valor de **uefi-preferred** indica que a AMI é compatível tanto com a UEFI quanto a BIOS legada.
   + Se não houver valor, as instâncias iniciadas na AMI usam o valor padrão do tipo de instância.

**Para determinar o parâmetro de modo de inicialização de uma AMI ao executar uma instância**  
Ao executar uma instância usando o assistente de instância de execução, na etapa de selecionar uma AMI, verifique o campo **Boot mode** (Modo de inicialização). Para obter mais informações, consulte [Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)](ec2-instance-launch-parameters.md#liw-ami).

------
#### [ AWS CLI ]

**Para determinar o parâmetro de modo de inicialização de uma AMI**  
Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) para determinar o modo de inicialização de uma AMI.

```
aws ec2 describe-images \
    --region us-east-1 \
    --image-id ami-0abcdef1234567890 \
    --query Images[].BootMode \
    --output text
```

O seguinte é um exemplo de saída.

```
uefi
```

Na saída, um valor de `uefi` indica que a AMI oferece suporte a UEFI. Um valor de `uefi-preferred` indica que a AMI oferece suporte tanto a UEFI quanto a BIOS legado. Se não houver valor, as instâncias iniciadas na AMI usam o valor padrão do tipo de instância.

------
#### [ PowerShell ]

**Para determinar o parâmetro de modo de inicialização de uma AMI**  
Use o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) para determinar o modo de inicialização de uma AMI.

```
Get-EC2Image -Region us-east-1 `
    -ImageId ami-0abcdef1234567890 | Format-List Name, BootMode, TpmSupport
```

O seguinte é um exemplo de saída.

```
Name       : TPM-Windows_Server-2016-English-Full-Base-2023.05.10
BootMode   : uefi
TpmSupport : v2.0
```

No saída, o valor `BootMode` indica o modo de inicialização da AMI. Um valor de `uefi` indica que a AMI oferece suporte a UEFI. Um valor de `uefi-preferred` indica que a AMI oferece suporte tanto a UEFI quanto a BIOS legado. Se não houver valor, as instâncias iniciadas na AMI usam o valor padrão do tipo de instância.

------

# Determinar os modos de inicialização compatíveis de um tipo de instância do EC2
<a name="instance-type-boot-mode"></a>

É possível determinar os modos de inicialização com suporte em um tipo de instância.

O console do Amazon EC2 não exibe os modos de inicialização com suporte em um tipo de instância.

------
#### [ AWS CLI ]

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) para determinar os modos de inicialização com suporte em um tipo de instância. O parâmetro `--query` filtra a saída para retornar apenas modelos de inicialização compatíveis.

O exemplo a seguir mostra que o tipo de instância especificado oferece suporte a ambos os modos de inicialização de UEFI e BIOS legado.

```
aws ec2 describe-instance-types \
    --instance-types m5.2xlarge \
    --query "InstanceTypes[*].SupportedBootModes"
```

O seguinte é um exemplo de saída.

```
[
    [
        "legacy-bios",
        "uefi"
    ]
]
```

O exemplo a seguir mostra que `t2.xlarge` suporta apenas BIOS legado.

```
aws ec2 describe-instance-types \
    --instance-types t2.xlarge \
    --query "InstanceTypes[*].SupportedBootModes"
```

O seguinte é um exemplo de saída.

```
[
    [
        "legacy-bios"
    ]
]
```

------
#### [ PowerShell ]

Use o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) para determinar os modos de inicialização com suporte em um tipo de instância.

O exemplo a seguir mostra que `m5.2xlarge` suporta ambos os modos de inicialização UEFI e BIOS legado.

```
Get-EC2InstanceType -InstanceType m5.2xlarge | Format-List InstanceType, SupportedBootModes
```

O seguinte é um exemplo de saída.

```
InstanceType       : m5.2xlarge
SupportedBootModes : {legacy-bios, uefi}
```

O exemplo a seguir mostra que `t2.xlarge` suporta apenas BIOS legado.

```
Get-EC2InstanceType -InstanceType t2.xlarge | Format-List InstanceType, SupportedBootModes
```

O seguinte é um exemplo de saída.

```
InstanceType       : t2.xlarge
SupportedBootModes : {legacy-bios}
```

------

**Para determinar os tipos de instância que são compatíveis com a UEFI**  
É possível determinar os tipos de instância que são compatíveis com UEFI. O console do Amazon EC2 não exibe o suporte a UEFI de um tipo de instância.

------
#### [ AWS CLI ]

Os tipos de instância disponíveis variam de acordo com a Região da AWS. Para ver os tipos de instâncias disponíveis com suporte a UEFI em uma região, use o comando [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html). Inclua o parâmetro `--filters` para definir o escopo dos resultados para os tipos de instância com suporte a UEFI e o parâmetro `--query` para definir o escopo da saída para o valor de `InstanceType`.

```
aws ec2 describe-instance-types \
    --filters Name=supported-boot-mode,Values=uefi \
    --query "InstanceTypes[*].[InstanceType]" --output text | sort
```

------
#### [ PowerShell ]

Os tipos de instância disponíveis variam de acordo com a Região da AWS. Para ver os tipos de instâncias disponíveis que oferecem suporte a UEFI em uma região, use o cmdlet [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html).

```
Get-EC2InstanceType | `
	Where-Object {$_.SupportedBootModes -Contains "uefi"} | `
	Sort-Object InstanceType | `
	Format-Table InstanceType -GroupBy CurrentGeneration
```

------

**Para determinar os tipos de instância que são compatíveis com o UEFI Secure Boot e variáveis persistentes não voláteis**  
Instâncias bare metal não são compatíveis com o UEFI Secure Boot e variáveis não voláteis, portanto, esses exemplos as excluem da saída. Para obter informações sobre o UEFI Secure Boot, consulte [UEFI Secure Boot para instâncias do Amazon EC2](uefi-secure-boot.md).

------
#### [ AWS CLI ]

Use o comando [describe-instance-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html) e exclua as instâncias bare metal da saída.

```
aws ec2 describe-instance-types \
    --filters Name=supported-boot-mode,Values=uefi Name=bare-metal,Values=false \
    --query "InstanceTypes[*].[InstanceType]" \
    --output text | sort
```

------
#### [ PowerShell ]

Use o cmdlet [Get-EC2InstanceType](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceType.html) e exclua as instâncias bare metal da saída.

```
Get-EC2InstanceType | `
    Where-Object { `
        $_.SupportedBootModes -Contains "uefi" -and `
        $_.BareMetal -eq $False
        } | `
    Sort-Object InstanceType  | `
    Format-Table InstanceType, SupportedBootModes, BareMetal, `
        @{Name="SupportedArchitectures"; Expression={$_.ProcessorInfo.SupportedArchitectures}}
```

------

# Determinar o modo de inicialização de uma instância do EC2
<a name="instance-boot-mode"></a>

O modo de inicialização de uma instância é exibido no campo **Modo de inicialização** no console do Amazon EC2 e pelo parâmetro `currentInstanceBootMode` na AWS CLI.

Quando uma instância é iniciada, o valor do parâmetro de modo de inicialização é determinado pelo valor do parâmetro de modo de inicialização da AMI usado para iniciá-la, da seguinte maneira:
+ Uma AMI com um parâmetro de modo de inicialização `uefi` cria uma instância com um parâmetro `currentInstanceBootMode` de `uefi`.
+ Uma AMI com um parâmetro de modo de inicialização `legacy-bios` cria uma instância com um parâmetro `currentInstanceBootMode` de ` legacy-bios`.
+ Uma AMI com um parâmetro de modo de inicialização `uefi-preferred` cria uma instância com um parâmetro `currentInstanceBootMode` de `uefi` se o tipo de instância oferecer suporte a UEFI, caso contrário, cria uma instância com um parâmetro `currentInstanceBootMode` de `legacy-bios`.
+ Uma AMI sem valor de parâmetro no modo de inicialização cria uma instância com um valor de parâmetro `currentInstanceBootMode` que é dependente se a arquitetura da AMI é ARM ou x86, e do modo de inicialização com suporte pelo tipo de instância. O modo de inicialização padrão é `uefi` nos tipos de instância Graviton e `legacy-bios` nos tipos de instância Intel e AMD.

------
#### [ Console ]

**Para determinar o modo de inicialização de uma instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **Instâncias** e, em seguida, sua instância.

1. Na guia **Details** (Detalhes), verifique o campo **Boot mode** (Modo de inicialização).

------
#### [ AWS CLI ]

**Para determinar o modo de inicialização de uma instância**  
Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) para determinar o modo de inicialização de uma instância. Você também pode determinar o modo de inicialização da AMI que foi usada para criar a instância. 

```
aws ec2 describe-instances \
    --region us-east-1 \
    --instance-ids i-1234567890abcdef0 \
    --query Reservations[].Instances[].BootMode \
    --output text
```

O seguinte é um exemplo de saída.

```
uefi
```

------
#### [ PowerShell ]

**Para determinar o modo de inicialização de uma instância**  
Use o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) para determinar o modo de inicialização de uma instância. Você também pode determinar o modo de inicialização da AMI que foi usada para criar a instância. 

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances | Format-List BootMode, CurrentInstanceBootMode, InstanceType, ImageId
```

O seguinte é um exemplo de saída.

```
BootMode                : uefi
CurrentInstanceBootMode : uefi
InstanceType            : c5a.large
ImageId                 : ami-0abcdef1234567890
```

------

# Determinar o modo de inicialização do sistema operacional para a instância do EC2
<a name="os-boot-mode"></a>

O modo de inicialização da AMI orienta o Amazon EC2 sobre o modo de inicialização que deve ser usado para inicializar uma instância. Para verificar se o sistema operacional da instância está configurado para a UEFI, é necessário se conectar à instância usando SSH (instâncias do Linux) ou RDP (instâncias do Windows).

Use as instruções para o sistema operacional da sua instância.

## Linux
<a name="os-boot-mode-linux"></a>

**Para determinar o modo de inicialização do sistema operacional da instância**

1. [Conecte-se à instância do Linux usando SSH](connect-linux-inst-ssh.md).

1. Para exibir o modo de inicialização do sistema operacional, tente um dos seguintes procedimentos:
   + Execute o comando a seguir.

     ```
     [ec2-user ~]$ sudo /usr/sbin/efibootmgr
     ```

     Saída esperada de uma instância inicializada no modo de inicialização UEFI

     ```
     BootCurrent: 0001
     Timeout: 0 seconds
     BootOrder: 0000,0001
     Boot0000* UiApp
     Boot0001* UEFI Amazon Elastic Block Store vol-xyz
     ```
   + Execute o seguinte comando para verificar a existência do diretório `/sys/firmware/efi`. Esse diretório só existirá se a instância for inicializada usando UEFI. Se o diretório não existir, o comando retornará `Legacy BIOS Boot Detected`.

     ```
     [ec2-user ~]$ [ -d /sys/firmware/efi ] && echo "UEFI Boot Detected" || echo "Legacy BIOS Boot Detected"
     ```

     Saída esperada de uma instância inicializada no modo de inicialização UEFI

     ```
     UEFI Boot Detected
     ```

     Saída esperada de uma instância inicializada no modo de inicialização BIOS legado

     ```
     Legacy BIOS Boot Detected
     ```
   + Execute o seguinte comando para verificar se EFI aparece na saída `dmesg`.

     ```
     [ec2-user ~]$ dmesg | grep -i "EFI"
     ```

     Saída esperada de uma instância inicializada no modo de inicialização UEFI

     ```
     [    0.000000] efi: Getting EFI parameters from FDT:
     [    0.000000] efi: EFI v2.70 by EDK II
     ```

## Windows
<a name="os-boot-mode-windows"></a>

**Para determinar o modo de inicialização do sistema operacional da instância**

1. [Conecte-se à instância do Windows usando RDP](connecting_to_windows_instance.md).

1. Acesse **System Information** (Informações do sistema) e verifique a linha **BIOS Mode** (Modo BIOS).  
![\[Janela de informações do sistema mostrando a linha do Modo do BIOS selecionada. O valor do Modo do BIOS é Legado.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/BIOS-mode-win.png)

# Definir o modo de inicialização de uma AMI do Amazon EC2
<a name="set-ami-boot-mode"></a>

Por padrão, a AMI herda o modo de inicialização da instância do EC2 usada para criar a AMI. Por exemplo, se você criar uma AMI de uma instância do EC2 executada em BIOS legado, o modo de inicialização da nova AMI será `legacy-bios`. Se você criar uma AMI de uma instância do EC2 com um modo de inicialização `uefi-preferred`, o modo de inicialização da nova AMI será `uefi-preferred`.

Ao registrar uma AMI, é possível definir o modo de inicialização da AMI como `uefi`, `legacy-bios` ou `uefi-preferred`.

Quando o modo de inicialização da AMI estiver definido como `uefi-preferred`, a instância será inicializada da seguinte forma: 
+ Para tipos de instância que ofereçam suporte a UEFI e BIOS legado (por exemplo, `m5.large`), a instância será inicializada usando UEFI.
+ Para tipos de instância que ofereçam suporte somente a BIOS legado (por exemplo, `m4.large`), a instância será inicializada usando BIOS legado.

Se você definir o modo de inicialização da AMI como `uefi-preferred`, o sistema operacional deverá oferecer suporte à capacidade de inicialização tanto com UEFI quanto com BIOS legado.

Para converter uma instância existente baseada em BIOS legado para UEFI, ou uma instância existente baseada em UEFI para BIOS legado, primeiro é necessário modificar o volume e o sistema operacional da instância para oferecer suporte ao modo de inicialização selecionado. Em seguida, crie um snapshot do volume. Finalmente, crie uma AMI do snapshot.

**Considerações**
+ Definir o parâmetro de modo de inicialização da AMI não configura automaticamente o sistema operacional para o modo de inicialização especificado. Primeiro é necessário fazer as modificações adequadas no volume e no sistema operacional da instância para oferecer suporte à inicialização via modo de inicialização selecionado. Caso contrário, a AMI resultante não poderá ser usada. Por exemplo, caso esteja realizando a conversão de uma instância do Windows baseada em BIOS legado para a UEFI, será possível usar a ferramenta [MBR2GPT](https://learn.microsoft.com/en-us/windows/deployment/mbr-to-gpt) da Microsoft para converter o disco do sistema de MBR para GPT. As modificações necessárias são específicas do sistema operacional. Para obter mais informações, consulte o manual do sistema operacional.
+ Não é possível usar o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) ou o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) para criar uma AMI compatível tanto com a [NitroTPM](nitrotpm.md) quanto com a UEFI Preferred.
+ Alguns recursos, como o UEFI Secure Boot, só estão disponíveis em instâncias que inicializadas em UEFI. Quando você usa o parâmetro do modo de inicialização `uefi-preferred` da AMI com um tipo de instância que não oferece suporte a UEFI, a instância é iniciada como BIOS legado e o recurso dependente de UEFI é desativado. Se você confia na disponibilidade de um recurso dependente de UEFI, defina o parâmetro do modo de inicialização da AMI como `uefi`.

------
#### [ AWS CLI ]

**Para definir o modo de inicialização de uma AMI**

1. Faça as modificações adequadas no volume e no sistema operacional da instância para oferecer suporte à inicialização através do modo de inicialização selecionado. As modificações necessárias são específicas do sistema operacional. Para obter mais informações, consulte o manual do sistema operacional.
**Atenção**  
Se você não executar esta etapa, a AMI não será utilizável.

1. Para localizar o ID do volume da instância, use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html). Você criará um snapshot desse volume na próxima etapa.

   ```
   aws ec2 describe-instances \
       --instance-ids i-1234567890abcdef0 \
       --query Reservations[].Instances[].BlockDeviceMappings
   ```

   O seguinte é um exemplo de saída.

   ```
   [
       [
           {
               "DeviceName": "/dev/xvda",
               "Ebs": {
                   "AttachTime": "2024-07-11T01:05:51+00:00",
                   "DeleteOnTermination": true,
                   "Status": "attached",
                   "VolumeId": "vol-1234567890abcdef0"
               }
           }
       ]
   ]
   ```

1. Para criar um snapshot do volume, use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/create-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-snapshot.html). Use o ID do volume da etapa anterior.

   ```
   aws ec2 create-snapshot \
       --volume-id vol-01234567890abcdef \
       --description "my snapshot"
   ```

   O seguinte é um exemplo de saída.

   ```
   {
       "Description": "my snapshot",
       "Encrypted": false,
       "OwnerId": "123456789012",
       "Progress": "",
       "SnapshotId": "snap-0abcdef1234567890",
       "StartTime": "",
       "State": "pending",
       "VolumeId": "vol-01234567890abcdef",
       "VolumeSize": 30,
       "Tags": []
   }
   ```

1. Aguarde até que o estado do snapshot seja `completed` antes de avançar para a próxima etapa. Para obter o estado do snapshot, use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-snapshots.html) com o ID do snapshot da etapa anterior.

   ```
   aws ec2 describe-snapshots \
       --snapshot-ids snap-0abcdef1234567890 \
       --query Snapshots[].State \
       --output text
   ```

   O seguinte é um exemplo de saída.

   ```
   completed
   ```

1. Para criar uma nova AMI, use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html). Use o valor de `SnapshotId` da saída de **CreateSnapshot**.
   + Para definir o modo de inicialização como UEFI, adicione o parâmetro `--boot-mode` com o valor `uefi`.

     ```
     aws ec2 register-image \
        --description "my image" \
        --name "my-image" \
        --block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-0abcdef1234567890,DeleteOnTermination=true}" \
        --root-device-name /dev/sda1 \
        --virtualization-type hvm \
        --ena-support \
        --boot-mode uefi
     ```
   + Para definir o modo de inicialização como `uefi-preferred`, defina o valor de `--boot-mode` como `uefi-preferred`

     ```
     aws ec2 register-image \
        --description "my description" \
        --name "my-image" \
        --block-device-mappings "DeviceName=/dev/sda1,Ebs={SnapshotId=snap-0abcdef1234567890,DeleteOnTermination=true}" \
        --root-device-name /dev/sda1 \
        --virtualization-type hvm \
        --ena-support \
        --boot-mode uefi-preferred
     ```

1. (Opcional) Para verificar se a AMI recém-criada tem o modo de inicialização que você especificou, use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

   ```
   aws ec2 describe-images \
       --image-id ami-1234567890abcdef0 \
       --query Images[].BootMode \
       --output text
   ```

   O seguinte é um exemplo de saída.

   ```
   uefi
   ```

------
#### [ PowerShell ]

**Para definir o modo de inicialização de uma AMI**

1. Faça as modificações adequadas no volume e no sistema operacional da instância para oferecer suporte à inicialização através do modo de inicialização selecionado. As modificações necessárias são específicas do sistema operacional. Para obter mais informações, consulte o manual do sistema operacional.
**Atenção**  
Se você não executar esta etapa, a AMI não será utilizável.

1. Para localizar o ID do volume da instância, use o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

   ```
   (Get-EC2Instance `
       -InstanceId i-1234567890abcdef0).Instances.BlockDeviceMappings.Ebs
   ```

   O seguinte é um exemplo de saída.

   ```
   AssociatedResource  : 
   AttachTime          : 7/11/2024 1:05:51 AM
   DeleteOnTermination : True
   Operator            : 
   Status              : attached
   VolumeId            : vol-01234567890abcdef
   ```

1. Para criar um snapshot do volume, use o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Snapshot.html](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Snapshot.html). Use o ID do volume da etapa anterior.

   ```
   New-EC2Snapshot `
       -VolumeId vol-01234567890abcdef `
       -Description "my snapshot"
   ```

   O seguinte é um exemplo de saída.

   ```
   AvailabilityZone          : 
   Description               : my snapshot
   Encrypted                 : False
   FullSnapshotSizeInBytes   : 0
   KmsKeyId                  : 
   OwnerId                   : 123456789012
   RestoreExpiryTime         : 
   SnapshotId                : snap-0abcdef1234567890
   SseType                   : 
   StartTime                 : 4/25/2025 6:08:59 PM
   State                     : pending
   StateMessage              : 
   VolumeId                  : vol-01234567890abcdef
   VolumeSize                : 30
   ```

1. Aguarde até que o estado do snapshot seja `completed` antes de avançar para a próxima etapa. Para obter o estado do snapshot, use o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Snapshot.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Snapshot.html) com o ID do snapshot da etapa anterior.

   ```
   (Get-EC2Snapshot `
       -SnapshotId snap-0abcdef1234567890).State.Value
   ```

   O seguinte é um exemplo de saída.

   ```
   completed
   ```

1. Para criar uma nova AMI, use o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html). Use o valor de `SnapshotId` da saída de **New-EC2Snapshot**.
   + Para definir o modo de inicialização como UEFI, adicione o parâmetro `-BootMode` com o valor `uefi`.

     ```
     $block = @{SnapshotId=snap-0abcdef1234567890}
     Register-EC2Image ` 
        -Description "my image" `
        -Name "my-image" `
        -BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block} `
        -RootDeviceName /dev/xvda `
        -EnaSupport $true `
        -BootMode uefi
     ```
   + Para definir o modo de inicialização como `uefi-preferred`, defina o valor de `-BootMode` como `uefi-preferred`

     ```
     $block = @{SnapshotId=snap-0abcdef1234567890}
     Register-EC2Image ` 
        -Description "my image" `
        -Name "my-image" `
        -BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block} `
        -RootDeviceName /dev/xvda `
        -EnaSupport $true `
        -BootMode uefi-preferred
     ```

1. (Opcional) Para verificar se a AMI recém-criada tem o modo de inicialização que você especificou, use o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

   ```
   (Get-EC2Image `
       -ImageId ami-1234567890abcdef0).BootMode.Value
   ```

   O seguinte é um exemplo de saída.

   ```
   uefi
   ```

------

# Variáveis da UEFI para instâncias do Amazon EC2
<a name="uefi-variables"></a>

Quando você inicia uma instância em que o modo de inicialização é definido como UEFI, um armazenamento de chave-valor para variáveis é criado. O armazenamento pode ser usado pela UEFI e pelo sistema operacional da instância para armazenar variáveis UEFI.

As variáveis UEFI são usadas pelo carregador de inicialização e pelo sistema operacional para configurar o startup antecipado do sistema. Eles permitem que o sistema operacional gerencie determinadas configurações do processo de inicialização, como a ordem de inicialização, ou gerencie as chaves para o UEFI Secure Boot.

**Atenção**  
Qualquer pessoa que possa se conectar à instância (e possivelmente a qualquer software em execução na instância) ou qualquer pessoa com permissão para usar a API [GetInstanceUefiData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceUefiData.html) na instância pode ler as variáveis. Você nunca deve armazenar dados sigilosos, como senhas ou informações de identificação pessoal, no armazenamento de variáveis UEFI.

**Persistência de variáveis UEFI**
+ Para instâncias que foram iniciadas até 10 de maio de 2022, as variáveis UEFI são apagadas ao reinicializar ou parar.
+ Para instâncias iniciadas a partir e 11 de maio de 2022, as variáveis UEFI marcadas como não voláteis persistem na reinicialização e na parada/início.
+ As instâncias bare metal não preservam variáveis não voláteis da UEFI nas operações de parada/início da instância.

# UEFI Secure Boot para instâncias do Amazon EC2
<a name="uefi-secure-boot"></a>

O UEFI Secure Boot baseia-se no longo processo de inicialização segura do Amazon EC2, e fornece mais proteção abrangente que ajuda os clientes a proteger o software de ameaças que persistem durante as reinicializações. Ele garante que a instância inicialize apenas o software assinado com chaves criptográficas. As chaves são armazenadas no banco de dados de chaves do [armazenamento de variáveis não voláteis UEFI](uefi-variables.md). O UEFI Secure Boot impede a modificação não autorizada do fluxo de inicialização da instância.

**Topics**
+ [Como o UEFI Secure Boot funciona com instâncias do Amazon EC2](how-uefi-secure-boot-works.md)
+ [Requisitos para o UEFI Secure Boot no Amazon EC2](launch-instance-with-uefi-sb.md)
+ [Verificar se uma instância do Amazon EC2 está habilitada para o UEFI Secure Boot](verify-uefi-secure-boot.md)
+ [Criar uma AMI do Linux com chaves personalizadas do UEFI Secure Boot](create-ami-with-uefi-secure-boot.md)
+ [Crie o blob binário da AWS para o UEFI Secure Boot](aws-binary-blob-creation.md)

# Como o UEFI Secure Boot funciona com instâncias do Amazon EC2
<a name="how-uefi-secure-boot-works"></a>

O UEFI Secure Boot é um recurso especificado na UEFI que fornece verificação sobre o estado da cadeia de inicialização. Ele é projetado para garantir que apenas binários UEFI verificados criptograficamente sejam executados após a autoinicialização do firmware. Esses binários incluem drivers de UEFI e o carregador de inicialização principal, bem como componentes carregados em cadeia.

O UEFI Secure Boot especifica quatro bancos de dados principais que são usados em uma cadeia de confiança. Os bancos de dados são armazenados no armazenamento de variáveis UEFI.

A cadeia de confiança é a seguinte:

**Banco de dados de chave de plataforma (PK**  
O banco de dados de PK é a raiz de confiança. Ele contém uma única chave PK pública usada na cadeia de confiança para atualizar o banco de dados de chaves de troca de chave (KEK).  
Para alterar o banco de dados de PK, você deve ter a chave PK privada para assinar uma solicitação de atualização. Isso inclui excluir o banco de dados de PK escrevendo uma chave PK vazia.

**Banco de dados de chaves de troca de chave (KEK**  
O banco de dados de KEK é uma lista de chaves KEK públicas que são usadas na cadeia de confiança para atualizar os bancos de dados de assinaturas (db) e de lista de negação (dbx).  
Para alterar o banco de dados de KEK público, você deve ter a chave PK privada para assinar uma solicitação de atualização.

**Banco de dados de assinaturas (db**  
O banco de dados db é uma lista de chaves públicas e hashes que são usados na cadeia de confiança para validar todos os binários de inicialização UEFI.  
Para alterar o banco de dados db, você deve ter a chave PK privada ou qualquer uma das chaves KEK privadas para assinar uma solicitação de atualização.

**Banco de dados de lista de negação de assinatura (dbx**  
O banco de dados dbx é uma lista de chaves públicas e hashes binários que não são confiáveis e são usados na cadeia de confiança como um arquivo de revogação.  
O banco de dados dbx sempre tem precedência sobre todos os outros bancos de dados de chaves.  
Para alterar o banco de dados dbx, você deve ter a chave PK privada ou qualquer uma das chaves KEK privadas para assinar uma solicitação de atualização.  
O Fórum UEFI mantém um dbx disponível publicamente para muitos binários e certificados conhecidamente ruins em [https://uefi.org/revocationlistfile](https://uefi.org/revocationlistfile).

**Importante**  
O UEFI Secure Boot impõe a validação da assinatura em qualquer binário UEFI. Para permitir a execução de um binário UEFI no UEFI Secure Boot, você o assina com qualquer uma das chaves db privadas descritas acima.

Por padrão, o UEFI Secure Boot é desabilitado e o sistema está no `SetupMode`. Quando o sistema estiver no `SetupMode`, todas as variáveis principais podem ser atualizadas sem uma assinatura criptográfica. Quando a PK está definida, o UEFI Secure Boot é habilitado e o SetupMode é encerrado.

# Requisitos para o UEFI Secure Boot no Amazon EC2
<a name="launch-instance-with-uefi-sb"></a>

Quando você [executar uma instância do Amazon EC2](LaunchingAndUsingInstances.md)com uma AMI e um tipo de instância compatíveis, essa instância validará automaticamente os binários de inicialização da UEFI em relação ao banco de dados do UEFI Secure Boot. Não é exigida nenhuma configuração adicional. Você também pode configurar o UEFI Secure Boot em uma instância após o início.

**nota**  
O UEFI Secure Boot protege sua instância e seu sistema operacional contra modificações no fluxo de inicialização. Se você criar uma nova AMI a partir de uma AMI de origem com a Inicialização Segura UEFI habilitada e modificar determinados parâmetros durante o processo de cópia, como alterar os `UefiData` na AMI, poderá desabilitar a Inicialização Segura UEFI.

**Topics**
+ [AMIs compatíveis](#uefi-amis)
+ [Tipos de instâncias compatíveis](#uefi-instance)

## AMIs compatíveis
<a name="uefi-amis"></a>

**AMIs do Linux**  
Para iniciar uma instância Linux, a AMI Linux deve ter o UEFI Secure Boot habilitado.

O Amazon Linux oferece suporte ao UEFI Secure Boot a partir do AL2023 versão 2023.1. No entanto, o UEFI Secure Boot não está habilitado nas AMIs padrão. Para obter mais informações, consulte [UEFI Secure Boot](https://docs.aws.amazon.com/linux/al2023/ug/uefi-secure-boot.html) no *Guia do usuário do AL2023*. As versões mais antigas das AMIs do Amazon Linux não estão habilitadas para o UEFI Secure Boot. Para usar uma AMI compatível, é necessário executar várias etapas de configuração em sua própria AMI do Linux. Para obter mais informações, consulte [Criar uma AMI do Linux com chaves personalizadas do UEFI Secure Boot](create-ami-with-uefi-secure-boot.md).

**AMIs Windows**  
Para iniciar uma instância Windows, a AMI Windows deve ter o UEFI Secure Boot habilitado. Para encontrar uma AMI do AWS Windows pré-configurada para UEFI Secure Boot com chaves da Microsoft, consulte [Encontrar AMIs do Windows Server configuradas com NitroTPM e UEFI Secure Boot](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ami-windows-tpm.html#ami-windows-tpm-find) na *Referência de AMIs do AWS Windows*.

Atualmente, não oferecemos suporte à importação do Windows com o UEFI Secure Boot o comando [import-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/import-image.html).

## Tipos de instâncias compatíveis
<a name="uefi-instance"></a>

Todos os tipos de instâncias virtualizadas que são compatíveis com a UEFI também são compatíveis com o UEFI Secure Boot. Para ver os tipos de instância compatíveis com o UEFI Secure Boot, consulte [Requisitos para o modo de inicialização da UEFI](launch-instance-boot-mode.md).

**nota**  
Os tipos de instância bare metal não oferecem suporte ao UEFI Secure Boot.

# Verificar se uma instância do Amazon EC2 está habilitada para o UEFI Secure Boot
<a name="verify-uefi-secure-boot"></a>

É possível usar os procedimentos a seguir para determinar se um Amazon EC2 está habilitado para o UEFI Secure Boot.

## Instâncias do Linux
<a name="verify-uefi-secure-boot-linux"></a>

É possível usar o utilitário `mokutil` para verificar se uma instância do Linux está habilitada para o UEFI Secure Boot. Se o `mokutil` não estiver instalado em sua instância, você precisará instalá-lo. Para obter as instruções de instalação do Amazon Linux 2, consulte [Find and install software packages on an Amazon Linux 2 instance](https://docs.aws.amazon.com/linux/al2/ug/find-install-software.html). Para outras distribuições do Linux, consulte a documentação específica.

**Verificar se uma instância do Linux está habilitada para o UEFI Secure Boot**  
Conecte-se à instância e execute o comando a seguir como `root` na janela de terminal.

```
mokutil --sb-state 
```

O seguinte é um exemplo de saída.
+ Se o UEFI Secure Boot estiver habilitado, a saída conterá `SecureBoot enabled`.
+ Se o UEFI Secure Boot não estiver habilitado, a saída conterá `SecureBoot disabled` ou `Failed to read SecureBoot`.

## Instâncias do Windows
<a name="verify-uefi-secure-boot-windows"></a>

**Para verificar se uma instância do Windows está habilitada para o UEFI Secure Boot**

1. Conecte-se à sua instância.

1. Abra a ferramenta msinfo32.

1. Verifique o campo **Secure Boot State** (Estado do Secure Boot). Se o UEFI Secure Boot estiver habilitado, o valor será **Compatível**, conforme mostrado na imagem a seguir.  
![\[Estado de inicialização segura nas informações do sistema.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/secure-boot-state-win.png)

Você também pode usar o cmdlet `Confirm-SecureBootUEFI` do Windows PowerShell para verificar o status da Secure Boot. Para obter mais informações sobre o cmdlet, consulte [Confirm-SecureBootUEFI](https://learn.microsoft.com/en-us/powershell/module/secureboot/confirm-securebootuefi) na documentação da Microsoft.

# Criar uma AMI do Linux com chaves personalizadas do UEFI Secure Boot
<a name="create-ami-with-uefi-secure-boot"></a>

Estas instruções mostram como criar uma AMI do Linux com o UEFI Secure Boot e chaves privadas personalizadas. O Amazon Linux oferece suporte ao UEFI Secure Boot a partir do AL2023 versão 2023.1. Para obter mais informações, consulte [UEFI Secure Boot on AL2023](https://docs.aws.amazon.com/linux/al2023/ug/uefi-secure-boot.html) no *Guia do usuário do Amazon Linux 2023*.

**Importante**  
O procedimento a seguir destina-se **somente a usuários avançados**. Você deve ter conhecimento suficiente de SSL e do fluxo de inicialização da distribuição do Linux para usar esses procedimentos.

**Pré-requisitos**
+ As seguintes ferramentas serão usadas:
  + OpenSSL: [https://www.openssl.org/](https://www.openssl.org/)
  + efivar: [https://github.com/rhboot/efivar](https://github.com/rhboot/efivar)
  + efitools: [https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/](https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/)
  + Comando [get-instance-uefi-data](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html)
+ Sua instância do Linux deve ter sido iniciada com uma AMI do Linux com suporte para o modo de inicialização UEFI e ter dados não voláteis presentes.

Instâncias recém-criadas sem chaves do UEFI Secure Boot são criadas em `SetupMode`, o que permite que você inscreva suas próprias chaves. Algumas AMIs vêm pré-configuradas com o UEFI Secure Boot, e você não pode alterar as chaves existentes. Se você desejar alterar as chaves, deve criar uma nova AMI com base na AMI original.

Você tem duas maneiras de propagar as chaves no armazenamento de variáveis, descritas na Opção A e na Opção B a seguir. A opção A descreve como fazer isso de dentro da instância, imitando o fluxo de hardware real. A opção B descreve como criar um blob binário, que será então passado como um arquivo codificado em base64 quando você criar a AMI. Para ambas as opções, você deve primeiro criar os três pares de chaves, que são usados para a cadeia de confiança.

**Topics**
+ [Tarefa 1: criar pares de chaves](#uefi-secure-boot-create-three-key-pairs)
+ [Tarefa 2: opção A: adicionar chaves ao armazenamento de variáveis de dentro da instância](#uefi-secure-boot-optionA)
+ [Tarefa 2: opção B: criar um blob binário contendo um armazenamento de variáveis pré-preenchido](#uefi-secure-boot-optionB)

## Tarefa 1: criar pares de chaves
<a name="uefi-secure-boot-create-three-key-pairs"></a>

O UEFI Secure Boot é baseado nos três seguintes bancos de dados de chaves, que são usados em uma cadeia de confiança: a chave de plataforma (PK), a chave de troca de chaves (KEK) e o banco de dados de assinatura (db).¹

Você cria cada chave na instância. Para preparar as chaves públicas em um formato válido para o padrão UEFI Secure Boot, você cria um certificado para cada chave. `DER` define o formato SSL (codificação binária de um formato). Em seguida, você converte cada certificado em uma lista de assinaturas UEFI, que é o formato binário entendido pelo UEFI Secure Boot. E, finalmente, você assina cada certificado com a chave relevante.

**Topics**
+ [Preparar para criar os pares de chaves](#uefisb-prepare-to-create-key-pairs)
+ [Par de chaves 1: criar a chave da plataforma (PK)](#uefisb-create-key-pair-1)
+ [Par de chaves 2: criar a chave de troca de chaves (KEK)](#uefisb-create-key-pair-2)
+ [Par de chaves 3: criar o banco de dados de assinaturas (db)](#uefisb-create-key-pair-3)
+ [Assine a imagem de inicialização (kernel) com a chave privada](#uefi-secure-boot-sign-kernel)

### Preparar para criar os pares de chaves
<a name="uefisb-prepare-to-create-key-pairs"></a>

Antes de criar os pares de chaves, crie um identificador exclusivo globalmente (GUID) para ser usado na geração de chaves.

1. [Conecte-se à instância](connect.md).

1. Execute o comando a seguir em um prompt de shell.

   ```
   uuidgen --random > GUID.txt
   ```

### Par de chaves 1: criar a chave da plataforma (PK)
<a name="uefisb-create-key-pair-1"></a>

A PK é a raiz da confiança para instâncias UEFI Secure Boot. A PK privada é usado para atualizar a KEK, que por sua vez pode ser usada para adicionar chaves autorizadas ao banco de dados de assinaturas (db).

O padrão X.509 é usado para criar o par de chaves. Para obter informações sobre o padrão, consulte [X.509](https://en.wikipedia.org/wiki/X.509) na *Wikipédia*.

**Para criar o PK**

1. Crie a chave. Você deve nomear a variável `PK`.

   ```
   openssl req -newkey rsa:4096 -nodes -keyout PK.key -new -x509 -sha256 -days 3650 -subj "/CN=Platform key/" -out PK.crt
   ```

   Os seguintes parâmetros são especificados:
   + `-keyout PK.key`: o arquivo da chave privada.
   + `-days 3650`: o número de dias em que o certificado é válido.
   + `-out PK.crt`: o certificado usado para criar a variável UEFI.
   + `CN=Platform key`: o nome comum (CN) para a chave. É possível inserir o nome da sua própria organização em vez de *Chave da plataforma*.

1. Crie o certificado.

   ```
   openssl x509 -outform DER -in PK.crt -out PK.cer
   ```

1. Converta o certificado em uma lista de assinaturas UEFI.

   ```
   cert-to-efi-sig-list -g "$(< GUID.txt)" PK.crt PK.esl
   ```

1. Assine a lista de assinaturas UEFI com a PK privada (autoassinada).

   ```
   sign-efi-sig-list -g "$(< GUID.txt)" -k PK.key -c PK.crt PK PK.esl PK.auth
   ```

### Par de chaves 2: criar a chave de troca de chaves (KEK)
<a name="uefisb-create-key-pair-2"></a>

A KEK privada é usada para adicionar chaves ao db, que é a lista de assinaturas autorizadas a inicializar no sistema. 

**Para criar a KEK**

1. Crie a chave.

   ```
   openssl req -newkey rsa:4096 -nodes -keyout KEK.key -new -x509 -sha256 -days 3650 -subj "/CN=Key Exchange Key/" -out KEK.crt
   ```

1. Crie o certificado.

   ```
   openssl x509 -outform DER -in KEK.crt -out KEK.cer
   ```

1. Converta o certificado em uma lista de assinaturas UEFI.

   ```
   cert-to-efi-sig-list -g "$(< GUID.txt)" KEK.crt KEK.esl
   ```

1. Assine a lista de assinaturas com a PK privada.

   ```
   sign-efi-sig-list -g "$(< GUID.txt)" -k PK.key -c PK.crt KEK KEK.esl KEK.auth
   ```

### Par de chaves 3: criar o banco de dados de assinaturas (db)
<a name="uefisb-create-key-pair-3"></a>

A lista db contém chaves autorizadas que estão autorizadas a ser inicializadas no sistema. Para modificar a lista, é necessária a KEK privada. As imagens de inicialização serão assinadas com a chave privada criada nesta etapa.

**Para criar o db**

1. Crie a chave.

   ```
   openssl req -newkey rsa:4096 -nodes -keyout db.key -new -x509 -sha256 -days 3650 -subj "/CN=Signature Database key/" -out db.crt
   ```

1. Crie o certificado.

   ```
   openssl x509 -outform DER -in db.crt -out db.cer
   ```

1. Converta o certificado em uma lista de assinaturas UEFI.

   ```
   cert-to-efi-sig-list -g "$(< GUID.txt)" db.crt db.esl
   ```

1. Assine a lista de assinaturas com a KEK privada.

   ```
   sign-efi-sig-list -g "$(< GUID.txt)" -k KEK.key -c KEK.crt db db.esl db.auth
   ```

### Assine a imagem de inicialização (kernel) com a chave privada
<a name="uefi-secure-boot-sign-kernel"></a>

Para o Ubuntu 22.04, as imagens a seguir exigem assinaturas.

```
/boot/efi/EFI/ubuntu/shimx64.efi
/boot/efi/EFI/ubuntu/mmx64.efi
/boot/efi/EFI/ubuntu/grubx64.efi
/boot/vmlinuz
```

**Para assinar uma imagem**  
Utilize uma sintaxe semelhante à seguinte.

```
sbsign --key db.key --cert db.crt --output /boot/vmlinuz /boot/vmlinuz
```

**nota**  
Você deve assinar todos os novos kernels. *`/boot/vmlinuz`* geralmente será um link simbólico para o último kernel instalado.

Consulte a documentação da sua distribuição para saber sobre sua cadeia de inicialização e as imagens necessárias.

¹ Nossos agradecimentos à comunidade ArchWiki por todo o trabalho que eles fizeram. Os comandos para criar a PK, criar a KEK, criar o DB e assinar a imagem são de [Criação de chaves](https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#Creating_keys), de autoria da Equipe de Manutenção do ArchWiki e/ou dos colaboradores do ArchWiki.

## Tarefa 2: opção A: adicionar chaves ao armazenamento de variáveis de dentro da instância
<a name="uefi-secure-boot-optionA"></a>

Depois de criar os [três pares de chaves](#uefi-secure-boot-create-three-key-pairs), é possível se conectar à sua instância e adicionar as chaves ao armazenamento de variáveis de dentro da instância, concluindo as etapas a seguir. Como alternativa, conclua as etapas em [Tarefa 2: opção B: criar um blob binário contendo um armazenamento de variáveis pré-preenchido](#uefi-secure-boot-optionB).

**Topics**
+ [Etapa 1: iniciar uma instância que ofereça suporte ao UEFI Secure Boot](#step1-launch-uefi-sb)
+ [Etapa 2: configurar uma instância para oferecer suporte ao UEFI Secure Boot](#step2-launch-uefi-sb)
+ [Etapa 3: criar uma AMI da instância](#step3-launch-uefi-sb)

### Etapa 1: iniciar uma instância que ofereça suporte ao UEFI Secure Boot
<a name="step1-launch-uefi-sb"></a>

Quando você [iniciar uma instância](LaunchingAndUsingInstances.md) com os pré-requisitos a seguir, a instância estará pronta para ser configurada para oferecer suporte ao UEFI Secure Boot. Você só pode habilitar o suporte ao UEFI Secure Boot em uma instância na inicialização; não será possível habilitá-lo mais tarde.

**Pré-requisitos**
+ **AMI**: a AMI do Linux deve oferecer suporte ao modo de inicialização UEFI. Para verificar se a AMI oferece suporte ao modo de inicialização UEFI, o parâmetro do modo de inicialização da AMI deve ser **UEFI**. Para obter mais informações, consulte [Determinar o parâmetro do modo de inicialização de uma AMI do Amazon EC2](ami-boot-mode.md).

  Observe que fornece a AWS só fornece AMIs do Linux configuradas para compatibilidade com UEFI para tipos de instância baseados no Graviton. A AWS atualmente não fornece AMIs do Linux x86\$164 que sejam compatíveis com o modo de inicialização UEFI. É possível configurar a AMI para compatibilidade com o modo de inicialização UEFI para todas as arquiteturas. Para configurar sua própria AMI para compatibilidade com o modo de inicialização UEFI, é necessário realizar várias etapas de configuração em sua própria AMI. Para obter mais informações, consulte [Definir o modo de inicialização de uma AMI do Amazon EC2](set-ami-boot-mode.md).
+ **Tipo de instância**: todos os tipos de instâncias virtualizadas com suporte a UEFI também oferecem suporte a UEFI Secure Boot. Os tipos de instância bare metal não oferecem suporte ao UEFI Secure Boot. Para ver os tipos de instância compatíveis com o UEFI Secure Boot, consulte [Requisitos para o modo de inicialização da UEFI](launch-instance-boot-mode.md).
+ Inicie sua instância após o lançamento do UEFI Secure Boot. Somente instâncias iniciadas após 10 de maio de 2022 (quando o UEFI Secure Boot foi lançado) podem oferecer suporte ao UEFI Secure Boot.

Depois de iniciar sua instância, é possível verificar se ela está pronta para ser configurada para oferecer suporte à UEFI Secure Boot (em outras palavras, é possível prosseguir para a [Etapa 2](#step2-launch-uefi-sb)) verificando se os dados da UEFI estão presentes. A presença de dados de UEFI indica que dados não voláteis são persistidos.

**Para verificar se sua instância está pronta para a Etapa 2**  
Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html) e especifique o ID da instância.

```
aws ec2 get-instance-uefi-data --instance-id i-1234567890abcdef0
```

A instância estará pronta para a Etapa 2 se os dados da UEFI estiverem presentes na saída. Se a saída estiver vazia, a instância não poderá ser configurada para oferecer suporte ao UEFI Secure Boot. Isso pode acontecer se sua instância tiver sido iniciada antes que o suporte ao UEFI Secure Boot fique disponível. Inicie uma nova instância e tente novamente.

### Etapa 2: configurar uma instância para oferecer suporte ao UEFI Secure Boot
<a name="step2-launch-uefi-sb"></a>

#### Registre os pares de chaves no armazenamento de variáveis UEFI na instância
<a name="step2a-launch-uefi-sb"></a>

**Atenção**  
Você deve assinar suas imagens de inicialização *depois* de registrar as chaves, caso contrário, não poderá inicializar sua instância.

Depois que você criar as listas de assinaturas UEFI assinadas (`PK`, `KEK`, e `db`), elas devem ser registradas no firmware do UEFI.

A gravação na variável `PK` só será possível se:
+ Ainda não houver PK registrada, o que será indicado se a variável `SetupMode` for `1`. Verifique isso usando o comando a seguir. A saída for `1` ou `0`.

  ```
  efivar -d -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-SetupMode 
  ```
+ A nova PK for assinada pela chave privada da PK existente.

**Para registrar as chaves no seu armazenamento de variáveis UEFI**  
Os comandos a seguir devem ser executados na instância.

Se SetupMode estiver habilitado (o valor será `1`), as chaves podem ser registradas executando os seguintes comandos na instância:

```
[ec2-user ~]$ efi-updatevar -f db.auth db
```

```
[ec2-user ~]$ efi-updatevar -f KEK.auth KEK
```

```
[ec2-user ~]$ efi-updatevar -f PK.auth PK
```

**Para verificar se o UEFI Secure Boot está habilitado**  
Para verificar se o UEFI Secure Boot está habilitado, siga as etapas em [Verificar se uma instância do Amazon EC2 está habilitada para o UEFI Secure Boot](verify-uefi-secure-boot.md).

Agora é possível exportar seu armazenamento de variáveis UEFI com o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-uefi-data.html) da CLI, ou prosseguir para a próxima etapa e assinar suas imagens de inicialização para reinicializar em uma instância habilitada para o UEFI Secure Boot.

### Etapa 3: criar uma AMI da instância
<a name="step3-launch-uefi-sb"></a>

Para criar uma AMI a partir da instância, é possível usar o console ou a API `CreateImage`, a CLI ou SDKs. Para obter instruções sobre o console, consulte [Criação de uma AMI baseada no Amazon EBS](creating-an-ami-ebs.md). Para obter instruções sobre a API, consulte [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html).

**nota**  
A API `CreateImage` copia automaticamente o armazenamento de variáveis UEFI da instância para a AMI. O console usa a API `CreateImage`. Depois de executar instâncias usando essa AMI, as instâncias terão o mesmo armazenamento de variáveis UEFI.

## Tarefa 2: opção B: criar um blob binário contendo um armazenamento de variáveis pré-preenchido
<a name="uefi-secure-boot-optionB"></a>

Depois de criar os [três pares de chaves](#uefi-secure-boot-create-three-key-pairs), é possível criar um blob binário contendo um armazenamento de variáveis pré-preenchido contendo as chaves do UEFI Secure Boot. Como alternativa, conclua as etapas em [Tarefa 2: opção A: adicionar chaves ao armazenamento de variáveis de dentro da instância](#uefi-secure-boot-optionA).

**Atenção**  
Você deverá assinar suas imagens de inicialização *antes* de registrar as chaves, caso contrário, não poderá inicializar sua instância.

**Topics**
+ [Etapa 1: criar um novo armazenamento de variáveis ou atualizar um existente](#uefi-secure-boot-create-or-update-variable)
+ [Etapa 2: carregar o blob binário na criação da AMI](#uefi-secure-boot-upload-binary-blob-on-ami-creation)

### Etapa 1: criar um novo armazenamento de variáveis ou atualizar um existente
<a name="uefi-secure-boot-create-or-update-variable"></a>

É possível criar o armazenamento de variáveis *offline*, sem uma instância em execução, usando a ferramenta python-uefivars. A ferramenta pode criar um novo armazenamento de variáveis a partir de suas chaves. O script atualmente oferece suporte ao formato EDK2, ao formato AWS e a uma representação JSON que é mais fácil de editar com ferramentas de nível superior.

**Para criar o armazenamento de variáveis offline sem uma instância em execução**

1. Baixe a ferramenta no link a seguir.

   ```
   https://github.com/awslabs/python-uefivars
   ```

1. Crie um novo armazenamento de variáveis a partir de suas chaves executando o comando a seguir. Isso criará um blob binário codificado em base64 em *your\$1binary\$1blob*.bin. A ferramenta também suporta a atualização de um blob binário através do parâmetro `-I`.

   ```
   ./uefivars.py -i none -o aws -O your_binary_blob.bin -P PK.esl -K KEK.esl --db db.esl --dbx dbx.esl
   ```

### Etapa 2: carregar o blob binário na criação da AMI
<a name="uefi-secure-boot-upload-binary-blob-on-ami-creation"></a>

Use [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) para passar seus dados de armazenamento de variáveis UEFI. Para o parâmetro `--uefi-data`, especifique seu blob binário e para o parâmetro `--boot-mode`, especifique `uefi`.

```
aws ec2 register-image \
    --name uefi_sb_tpm_register_image_test \
    --uefi-data $(cat your_binary_blob.bin) \
    --block-device-mappings "DeviceName=/dev/sda1,Ebs= {SnapshotId=snap-0123456789example,DeleteOnTermination=true}" \
    --architecture x86_64 \
    --root-device-name /dev/sda1 \
    --virtualization-type hvm \
    --ena-support \
    --boot-mode uefi
```

# Crie o blob binário da AWS para o UEFI Secure Boot
<a name="aws-binary-blob-creation"></a>

É possível usar as seguintes etapas para personalizar as variáveis do UEFI Secure Boot durante a criação da AMI. A KEK usado nessas etapas está atual desde de setembro de 2021. Se a Microsoft atualizar a KEK, você deverá usar a KEK mais recente.

**Para criar o blob binário da AWS**

1. Crie uma lista de assinaturas PK vazia.

   ```
   touch empty_key.crt
   cert-to-efi-sig-list empty_key.crt PK.esl
   ```

1. Baixe os certificados de KEK.

   ```
   https://go.microsoft.com/fwlink/?LinkId=321185
   ```

1. Empacote os certificados de KEK em uma lista de assinaturas UEFI (`siglist`).

   ```
   sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_Win_KEK.esl MicCorKEKCA2011_2011-06-24.crt 
   ```

1. Baixe os certificados de db da Microsoft.

   ```
   https://www.microsoft.com/pkiops/certs/MicWinProPCA2011_2011-10-19.crt
   https://www.microsoft.com/pkiops/certs/MicCorUEFCA2011_2011-06-27.crt
   ```

1. Gere a lista de assinaturas db.

   ```
   sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_Win_db.esl MicWinProPCA2011_2011-10-19.crt
   sbsiglist --owner 77fa9abd-0359-4d32-bd60-28f4e78f784b --type x509 --output MS_UEFI_db.esl MicCorUEFCA2011_2011-06-27.crt
   cat MS_Win_db.esl MS_UEFI_db.esl > MS_db.esl
   ```

1. O Unified Extensible Firmware Interface Forum não fornece mais os arquivos DBX. Eles agora são fornecidos pela Microsoft no GitHub. Baixe a atualização mais recente do DBX do repositório de atualizações do Microsoft Secure Boot em [https://github.com/microsoft/secureboot\$1objects](https://github.com/microsoft/secureboot_objects).

1. Descompacte o binário de atualização assinado.

   Crie `SplitDbxContent.ps1` com o conteúdo do script abaixo. Como alternativa, você pode instalar o script da [Galeria do PowerShell](https://www.powershellgallery.com/packages/SplitDbxContent/1.0) usando `Install-Script -Name SplitDbxContent`.

   ```
   <#PSScriptInfo
    
   .VERSION 1.0
    
   .GUID ec45a3fc-5e87-4d90-b55e-bdea083f732d
    
   .AUTHOR Microsoft Secure Boot Team
    
   .COMPANYNAME Microsoft
    
   .COPYRIGHT Microsoft
    
   .TAGS Windows Security
    
   .LICENSEURI
    
   .PROJECTURI
    
   .ICONURI
    
   .EXTERNALMODULEDEPENDENCIES
    
   .REQUIREDSCRIPTS
    
   .EXTERNALSCRIPTDEPENDENCIES
    
   .RELEASENOTES
   Version 1.0: Original published version.
    
   #>
   
   <#
   .DESCRIPTION
    Splits a DBX update package into the new DBX variable contents and the signature authorizing the change.
    To apply an update using the output files of this script, try:
    Set-SecureBootUefi -Name dbx -ContentFilePath .\content.bin -SignedFilePath .\signature.p7 -Time 2010-03-06T19:17:21Z -AppendWrite'
   .EXAMPLE
   .\SplitDbxAuthInfo.ps1 DbxUpdate_x64.bin
   #>
   
   
   # Get file from script input
   $file  = Get-Content -Encoding Byte $args[0]
   
   # Identify file signature
   $chop = $file[40..($file.Length - 1)]
   if (($chop[0] -ne 0x30) -or ($chop[1] -ne 0x82 )) {
       Write-Error "Cannot find signature"
       exit 1
   }
   
   # Signature is known to be ASN size plus header of 4 bytes
   $sig_length = ($chop[2] * 256) + $chop[3] + 4
   $sig = $chop[0..($sig_length - 1)]
   
   if ($sig_length -gt ($file.Length + 40)) {
       Write-Error "Signature longer than file size!"
       exit 1
   }
   
   # Content is everything else
   $content = $file[0..39] + $chop[$sig_length..($chop.Length - 1)]
   
   # Write signature and content to files
   Set-Content -Encoding Byte signature.p7 $sig
   Set-Content -Encoding Byte content.bin $content
   ```

   Use o script para descompactar os arquivos DBX assinados.

   ```
   PS C:\Windows\system32> SplitDbxContent.ps1 .\dbx.bin
   ```

   Isso produz dois arquivos: `signature.p7` e `content.bin`. Use `content.bin` na próxima etapa.

1. Construa um armazenamento de variáveis UEFI usando o script `uefivars.py`.

   ```
   ./uefivars.py -i none -o aws -O uefiblob-microsoft-keys-empty-pk.bin -P ~/PK.esl -K ~/MS_Win_KEK.esl --db ~/MS_db.esl  --dbx ~/content.bin 
   ```

1. Verifique o blob binário e o armazenamento de variáveis UEFI.

   ```
   ./uefivars.py -i aws -I uefiblob-microsoft-keys-empty-pk.bin -o json | less
   ```

1. É possível atualizar o blob passando-o para a mesma ferramenta novamente.

   ```
   ./uefivars.py -i aws -I uefiblob-microsoft-keys-empty-pk.bin -o aws -O uefiblob-microsoft-keys-empty-pk.bin -P ~/PK.esl -K ~/MS_Win_KEK.esl --db ~/MS_db.esl  --dbx ~/content.bin
   ```

   Saída esperada

   ```
   Replacing PK
   Replacing KEK
   Replacing db
   Replacing dbx
   ```

# Usar criptografia com AMIs com EBS
<a name="AMIEncryption"></a>

As AMIs com snapshots do Amazon EBS podem se beneficiar da criptografia do Amazon EBS. Os snapshots de volumes raiz e de dados podem ser criptografados e anexados a uma AMI. É possível executar instâncias e copiar imagens com suporte total à criptografia do EBS. Os parâmetros de criptografia para essas operações são compatíveis em todas as regiões em que o AWS KMS está disponível.

As instâncias do EC2 com volumes do EBS criptografados são executadas em AMIs da mesma forma que outras instâncias. Além disso, ao executar uma instância a partir de uma AMI baseada em snapshots não criptografados do EBS, será possível criptografar alguns ou todos os volumes durante a execução. 

Como os volumes do EBS, os snapshots em AMIs podem ser criptografados pelo padrão do AWS KMS key ou por um chave gerenciada pelo cliente que você especificar. Em todos os casos, é necessário ter permissão para usar a Chave do KMS selecionada.

As AMIs com snapshots criptografados podem ser compartilhadas em todas as contas da AWS. Para obter mais informações, consulte [Saiba mais sobre o uso da AMI compartilhada no Amazon EC2](sharing-amis.md).

**Topics**
+ [Cenários de execução de instância](#AMI-encryption-launch)
+ [Cenários de cópia de imagem](#AMI-encryption-copy)

## Cenários de execução de instância
<a name="AMI-encryption-launch"></a>



As instâncias do Amazon EC2 são iniciadas nas AMIs usando a ação `RunInstances` com parâmetros fornecidos pelo mapeamento de dispositivos de blocos, seja por meio do Console de gerenciamento da AWS ou diretamente usando a CLI ou a API do Amazon EC2. Para obter mais informações, consulte [Mapeamento de dispositivos de blocos para volumes em instâncias do Amazon EC2](block-device-mapping-concepts.md). Para exemplos de mapeamento de dispositivos de blocos da AWS CLI, consulte [Executar, listar e encerrar instâncias do EC2](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-ec2-instances.html).

Por padrão, sem parâmetros de criptografia explícitos, uma ação `RunInstances` mantém o estado de criptografia existente dos snapshots de origem de uma AMI enquanto restaura os volumes do EBS a partir deles. Se a opção de criptografar por padrão estiver habilitada, todos os volumes criados com base na AMI (seja de snapshots criptografados ou não criptografados) serão criptografados. Se a opção de criptografar por padrão não estiver habilitada, a instância manterá o estado de criptografia da AMI.

Também é possível executar uma instância e aplicar simultaneamente um estado de criptografia aos volumes resultantes fornecendo parâmetros de criptografia. Consequentemente, os seguintes comportamentos são observados:

**Executar sem parâmetros de criptografia**
+ Um snapshot não criptografado é restaurado para um volume não criptografado, a menos que a criptografia por padrão esteja habilitada, e, nesse caso, todos os volumes recém-criados serão criptografados.
+ Um snapshot criptografado que você possui é restaurado para um volume que é criptografado para a mesma Chave do KMS.
+ Um snapshot criptografado do qual você não é proprietário (por exemplo, a AMI é compartilhada com você) é restaurado para um volume que é criptografado pela chave do KMS padrão da sua conta da AWS.

Os comportamentos padrão podem ser substituídos fornecendo parâmetros de criptografia. Os parâmetros disponíveis são `Encrypted` e `KmsKeyId`. Configurar somente o parâmetro `Encrypted` resulta no seguinte:

**A instância executa comportamentos com `Encrypted` definido, mas sem `KmsKeyId` especificado**
+ Um snapshot não criptografado é restaurado em um volume do EBS que é criptografado pela chave do KMS padrão da sua conta da AWS.
+ Um snapshot criptografado que você possui é restaurado para um volume do EBS criptografado pela mesma Chave do KMS. (Em outras palavras, o parâmetro `Encrypted` não tem efeito.)
+ Um snapshot criptografado do qual você não é proprietário (por exemplo, a AMI é compartilhada com você) é restaurado para um volume que é criptografado pela chave do KMS padrão da sua conta da AWS. (Em outras palavras, o parâmetro `Encrypted` não tem efeito.)

A configuração dos parâmetros `Encrypted` e `KmsKeyId` permite especificar uma Chave do KMS não padrão para uma operação de criptografia. Os seguintes comportamentos resultam em:

**A instância com `Encrypted` e `KmsKeyId` definidos**
+ Um snapshot não criptografado é restaurado para um volume do EBS criptografado pela Chave do KMS especificada.
+ Um snapshot criptografado é restaurado para um volume do EBS criptografado, não para a Chave do KMS original, mas para a Chave do KMS especificada.

Enviar um `KmsKeyId` sem também configurar o parâmetro `Encrypted` resulta em um erro.

As seções a seguir fornecem exemplos da execução de instâncias de AMIs usando parâmetros de criptografia não padrão. Em cada um desses cenários, os parâmetros fornecidos à ação `RunInstances` resultam em uma alteração do estado de criptografia durante a restauração de um volume a partir de um snapshot.

Para obter informações sobre como usar o console para executar uma instância a partir de uma AMI, consulte [Iniciar uma instância do Amazon EC2](LaunchingAndUsingInstances.md).

### Criptografar um volume durante a execução
<a name="launch1"></a>

Neste exemplo, uma AMI baseada em um snapshot não criptografado é usada para executar uma instância do EC2 com um volume não criptografado do EBS.

![\[Iniciar uma instância e criptografar um volume em execução.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami-launch-convert.png)


Somente o parâmetro `Encrypted` resulta no volume que será criptografado para essa instância. É opcional fornecer um parâmetro `KmsKeyId`. Se nenhum ID de Chave do KMS for especificado, a Chave do KMS padrão da conta da AWS será usada para criptografar o volume. Para criptografar o volume em uma Chave do KMS diferente que pertença a você, forneça o parâmetro `KmsKeyId`. 

### Criptografar novamente um volume durante a execução
<a name="launch2"></a>

Neste exemplo, uma AMI baseada em um snapshot criptografado é usada para executar uma instância do EC2 com um volume do EBS criptografado por uma nova Chave do KMS. 

![\[Iniciar uma instância e descriptografar um volume em execução.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami-launch-encrypted.png)


Se você possuir a AMI e não fornecer nenhum parâmetro de criptografia, a instância resultante terá um volume criptografado pela mesma chave do KMS do snapshot. Se a AMI for compartilhada e não pertencer a você, e nenhum parâmetro de criptografia for fornecido, o volume será criptografado pela Chave do KMS padrão. Com os parâmetros de criptografia fornecidos conforme mostrado, o volume será criptografado pela Chave do KMS especificada.

### Alterar o estado de criptografia de vários volumes durante a execução
<a name="launch3"></a>

Neste exemplo mais complexo, uma AMI baseada em vários snapshots (cada um com seu próprio estado de criptografia) é usada para executar uma instância do EC2 com um volume recém-criptografado e um volume criptografado novamente.

![\[Criptografar e criptografar novamente vários volumes durante a inicialização.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami-launch-mixed.png)


Neste cenário, a ação `RunInstances` é fornecida com parâmetros de criptografia para cada um dos snapshots de origem. Quando todos os parâmetros possíveis de criptografia forem especificados, a instância resultante será a mesma, independentemente de você possuir a AMI.

## Cenários de cópia de imagem
<a name="AMI-encryption-copy"></a>

As AMIs do Amazon EC2 são copiadas usando a ação `CopyImage`, seja pelo Console de gerenciamento da AWS ou diretamente usando a CLI ou a API do Amazon EC2.

Por padrão, sem parâmetros de criptografia explícitos, uma ação `CopyImage` mantém o estado de criptografia existente dos snapshots de origem de uma AMI durante a cópia. Também é possível copiar uma AMI e aplicar simultaneamente um novo estado de criptografia aos snapshots associados do EBS fornecendo parâmetros de criptografia. Consequentemente, os seguintes comportamentos são observados:

**Copiar sem parâmetros de criptografia**
+ Um snapshot não criptografado é copiado para outro snapshot não criptografado, a menos que a criptografia por padrão esteja habilitada, e, nesse caso, todos os snapshots recém-criados serão criptografados.
+ Um snapshot criptografado de sua propriedade é copiado para um snapshot criptografado com a mesma Chave do KMS.
+ Um snapshot criptografado do qual você não é proprietário (por exemplo, a AMI é compartilhada com você) é copiado para um snapshot que é criptografado pela chave do KMS padrão da sua conta da AWS.

Todos esses comportamentos padrão podem ser substituídos fornecendo parâmetros de criptografia. Os parâmetros disponíveis são `Encrypted` e `KmsKeyId`. Configurar somente o parâmetro `Encrypted` resulta no seguinte:

**Comportamentos de cópia de imagem com `Encrypted` definido, mas nenhum `KmsKeyId` especificado**
+ Um snapshot não criptografado é copiado para um snapshot criptografado pela chave do KMS padrão da conta da AWS.
+ Um snapshot criptografado é copiado para outro snapshot criptografado pela mesma Chave do KMS. (Em outras palavras, o parâmetro `Encrypted` não tem efeito.)
+ Um snapshot criptografado do qual você não é proprietário (por exemplo, a AMI é compartilhada com você) é copiado para um volume que é criptografado pela chave do KMS padrão da sua conta da AWS. (Em outras palavras, o parâmetro `Encrypted` não tem efeito.)

A configuração dos parâmetros `Encrypted` e `KmsKeyId` permite especificar uma Chave do KMS gerenciada pelo cliente para uma operação de criptografia. Os seguintes comportamentos resultam em:

**Comportamentos de cópia de imagem com `Encrypted` e `KmsKeyId` definidos**
+ Um snapshot não criptografado é copiado para um snapshot criptografado pela Chave do KMS especificada.
+ Um snapshot criptografado é copiado para outro snapshot criptografado, não para a Chave do KMS original, mas para a Chave do KMS especificada.

Enviar um `KmsKeyId` sem também configurar o parâmetro `Encrypted` resulta em um erro.

A seção a seguir fornece um exemplo de como copiar uma AMI usando parâmetros de criptografia não padrão, resultando em uma alteração do estado de criptografia.

Para obter instruções detalhadas usando o console, consulte [Copiar uma AMI do Amazon EC2](CopyingAMIs.md).

### Criptografar uma imagem não criptografada durante a cópia
<a name="copy-unencrypted-to-encrypted"></a>

Nesse cenário, uma AMI baseada em um snapshot raiz não criptografado é copiada para uma AMI com um snapshot raiz criptografado. A ação `CopyImage` é invocada com dois parâmetros de criptografia, incluindo uma chave gerenciada pelo cliente. Como resultado, o status de criptografia do snapshot raiz muda, de modo que a AMI de destino tenha suporte de um snapshot raiz contendo os mesmos dados que o snapshot de origem, mas criptografado usando a chave especificada. Você incorre em custos de armazenamento para os snapshots em ambas as AMIs, bem como cobranças para todas as instâncias iniciadas a partir de uma AMI.

**nota**  
Habilitar a criptografia por padrão tem o mesmo efeito que configurar o parâmetro `Encrypted` como `true` para todos os snapshots na AMI.

![\[Copiar AMI e criptografar snapshot em tempo real\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami-to-ami-convert.png)


Configurar o parâmetro `Encrypted` criptografa o snapshot único dessa instância. Se você não especificar o parâmetro `KmsKeyId`, a chave gerenciada pelo cliente padrão será usada para criptografar a cópia do snapshot.

**nota**  
Também é possível copiar uma imagem com vários snapshots e configurar o estado de criptografia de cada uma individualmente.

# Saiba mais sobre o uso da AMI compartilhada no Amazon EC2
<a name="sharing-amis"></a>

*Uma AMI compartilhada* é uma AMI que um desenvolvedor criou e disponibilizou para que outros desenvolvedores usem. Uma das maneiras mais fáceis de começar a usar o Amazon EC2 é usar AMIs compartilhadas com os componentes necessários e adicionar o conteúdo personalizado. Também é possível criar suas próprias AMIs e compartilhá-las com outros. 

Use a AMI compartilhada sob seu próprio risco. A Amazon não pode responsabilizar-se pela integridade ou segurança das AMIs compartilhadas por outros usuários do Amazon EC2. Portanto, trate as AMIs compartilhadas como você faria com qualquer código estranho que considerasse implantar em seu próprio data center e execute a investigação aplicável. Recomendamos que você obtenha uma AMI de uma fonte confiável, como um provedor verificado.

## Provedor verificado
<a name="verified-ami-provider"></a>

No console do Amazon EC2, AMIs públicas de propriedade da Amazon ou de um parceiro verificado da Amazon são marcadas como **Provedor verificado**.

Você também pode usar o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) da AWS CLI para identificar as AMIs públicas provenientes de um provedor verificado. As imagens públicas de propriedade da Amazon ou de um parceiro verificado têm um proprietário com alias, que são `amazon`, `aws-backup-vault` ou `aws-marketplace`. Na saída da CLI, esses valores aparecem para `ImageOwnerAlias`. Outros usuários não podem dar um alias às AMIs deles. Isso permite que você encontre AMIs da Amazon ou de parceiros verificados facilmente.

Para se tornar um fornecedor verificado, você deve se registrar como vendedor no AWS Marketplace. Após o registro, você pode listar sua AMI no AWS Marketplace. Para obter mais informações, consulte [Conceitos básicos como vendedor](https://docs.aws.amazon.com/marketplace/latest/userguide/user-guide-for-sellers.html) e [Produtos baseados em AMIs](https://docs.aws.amazon.com/marketplace/latest/userguide/ami-products.html) no *Guia do vendedor do AWS Marketplace*.

**Topics**
+ [Provedor verificado](#verified-ami-provider)
+ [Encontre AMIs compartilhadas para usar em instâncias do Amazon EC2](usingsharedamis-finding.md)
+ [Preparar-se para usar AMIs compartilhadas para Linux](usingsharedamis-confirm.md)
+ [Controlar a descoberta e o uso de AMIs no Amazon EC2 com AMIs permitidas.](ec2-allowed-amis.md)
+ [Disponibilizar publicamente sua AMI para uso no Amazon EC2](sharingamis-intro.md)
+ [Saiba mais sobre o bloqueio de acesso público para AMIs](block-public-access-to-amis.md)
+ [Compartilhar uma AMI com organizações e unidades organizacionais](share-amis-with-organizations-and-OUs.md)
+ [Compartilhar uma AMI com contas específicas da AWS](sharingamis-explicit.md)
+ [Cancelar o compartilhamento de uma AMI com sua Conta da AWS](cancel-sharing-an-AMI.md)
+ [Recomendações para criar AMIs compartilhadas no Linux](building-shared-amis.md)

**Se você estiver procurando informações sobre outros tópicos**
+ Para obter informações sobre como criar uma AMI, consulte [Criação de uma AMI baseada no Amazon S3](creating-an-ami-instance-store.md) ou [Criação de uma AMI baseada no Amazon EBS](creating-an-ami-ebs.md).
+ Para obter informações sobre como criar, fornecer e manter suas aplicações no AWS Marketplace, consulte a [Documentação do AWS Marketplace](https://docs.aws.amazon.com/marketplace/).

# Encontre AMIs compartilhadas para usar em instâncias do Amazon EC2
<a name="usingsharedamis-finding"></a>

É possível usar o console do Amazon EC2 ou a linha de comandos para encontrar AMIs compartilhadas públicas ou privadas para usar com suas instâncias do Amazon EC2.

As AMIs são um recurso regional. Ao pesquisar uma AMI compartilhada (pública ou privada), é necessário procurá-la na mesma região de onde ela é compartilhada. Para disponibilizar uma AMI em uma região diferente, copie a AMI para a região e compartilhe-a. Para obter mais informações, consulte [Copiar uma AMI do Amazon EC2](CopyingAMIs.md).

------
#### [ Console ]

O console fornece um campo de filtro de AMI. Você também pode definir o escopo das pesquisas usando os filtros fornecidos no campo **Pesquisar**.

**Para encontrar uma compartilhada ou AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. No primeiro filtro, escolha uma das seguintes opções:
   + **Imagens privadas**: lista todas as AMIs compartilhadas com você.
   + **Imagens públicas**: lista todas as AMIs públicas.

1. (Opcional) Para exibir apenas as imagens públicas da Amazon, escolha o campo **Pesquisar** e, nas opções de menu exibidas, escolha **Alias do proprietário**, **=** e **amazon**.

1. (Opcional) Adicione filtros para limitar o escopo da pesquisa às AMIs que atendam aos seus requisitos.

**Para encontrar uma AMI pública de um [provedor verificado](sharing-amis.md#verified-ami-provider)**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **AMI Catalog** (Catálogo de AMIs).

1. Escolha **Community AMIs (AMIs da comunidade)**.

1. No painel **Refinar resultados**, selecione **Provedor verificado**. O rótulo **Provedor verificado** indica se as AMIs são da Amazon ou de um parceiro verificado.

------
#### [ AWS CLI ]

Use o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) para listar as AMIs. É possível direcionar o escopo da lista para os tipos de AMI que lhe interessam, conforme exibido nos exemplos a seguir.

**Para listar todas as AMIs públicas**  
O comando a seguir lista todas as AMIs públicas, inclusive todas as AMIs públicas de sua propriedade.

```
aws ec2 describe-images --executable-users all
```

**Para listar AMIs com permissões de execução explícitas**  
O comando a seguir lista as AMIs para as quais você tenha permissões de execução explícita. Essa lista não inclui nenhuma AMI de sua propriedade.

```
aws ec2 describe-images --executable-users self
```

**Para listar AMIs pertencentes a provedores verificados**  
O comando a seguir lista as AMIs pertencentes a [provedores verificados](sharing-amis.md#verified-ami-provider). As AMIs públicas pertencentes a fornecedores verificados (da Amazon ou de parceiros verificados) têm um proprietário com alias, que é exibido como `amazon`, `aws-backup-vault` ou `aws-marketplace` no campo da conta. Isso ajuda você a encontrar facilmente AMIs de fornecedores verificados. Outros usuários não podem dar um alias às AMIs deles.

```
aws ec2 describe-images \
    --owners amazon aws-marketplace \
    --query 'Images[*].[ImageId]' \
    --output text
```

**Para listar AMIs pertencentes a uma conta**  
O comando a seguir lista as AMIs de propriedade da Conta da AWS especificada.

```
aws ec2 describe-images --owners 123456789012
```

**Para definir o escopo das AMIs usando um filtro**  
Para reduzir o número de AMIs exibidas, use um filtro para listar somente os tipos de AMI que lhe interessam. Por exemplo, use o filtro a seguir para exibir somente AMIs com EBS.

```
--filters "Name=root-device-type,Values=ebs"
```

------
#### [ PowerShell ]

Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) (Tools for Windows PowerShell) para listar as AMIs. É possível direcionar o escopo da lista para os tipos de AMI que lhe interessam, conforme exibido nos exemplos a seguir.

**Para listar todas as AMIs públicas**  
O comando a seguir lista todas as AMIs públicas, inclusive todas as AMIs públicas de sua propriedade.

```
Get-EC2Image -ExecutableUser all
```

**Para listar AMIs com permissões de execução explícitas**  
O comando a seguir lista as AMIs para as quais você tenha permissões de execução explícita. Essa lista não inclui nenhuma AMI de sua propriedade.

```
Get-EC2Image -ExecutableUser self
```

**Para listar AMIs pertencentes a provedores verificados**  
O comando a seguir lista as AMIs pertencentes a [provedores verificados](sharing-amis.md#verified-ami-provider). As AMIs públicas pertencentes a fornecedores verificados (da Amazon ou de parceiros verificados) têm um proprietário com alias, que é exibido como `amazon`, `aws-backup-vault` ou `aws-marketplace` no campo da conta. Isso ajuda você a encontrar facilmente AMIs de fornecedores verificados. Outros usuários não podem dar um alias às AMIs deles.

```
Get-EC2Image -Owner amazon aws-marketplace
```

**Para listar AMIs pertencentes a uma conta**  
O comando a seguir lista as AMIs de propriedade da Conta da AWS especificada.

```
Get-EC2Image -Owner 123456789012
```

**Para definir o escopo das AMIs usando um filtro**  
Para reduzir o número de AMIs exibidas, use um filtro para listar somente os tipos de AMI que lhe interessam. Por exemplo, use o filtro a seguir para exibir somente AMIs com EBS.

```
-Filter @{Name="root-device-type"; Values="ebs"}
```

------

# Preparar-se para usar AMIs compartilhadas para Linux
<a name="usingsharedamis-confirm"></a>

Para que você use uma AMI compartilhada para Linux, execute as etapas a seguir para confirmar que não há credenciais pré-instaladas que permitam acesso indesejado à sua instância por terceiros e que não há nenhum registro remoto pré-configurado que poderia transmitir dados confidenciais para terceiros. Verifique documentação da distribuição Linux usada pelas informações da AMI para obter informações sobre melhora da segurança do sistema.

Para garantir que você não perca acidentalmente acesso à sua instância, recomendamos que inicie duas sessões de SSH e mantenha a segunda sessão aberta até remover as credenciais que não reconhece e ter confirmado que ainda pode fazer login em sua instância usando SSH.

1. Identifique e desabilite todas as chaves SSH públicas não autorizadas. A única chave no arquivo deve ser aquela usada para executar as AMIs. O seguinte comando localiza os arquivos `authorized_keys`:

   ```
   [ec2-user ~]$ sudo find / -name "authorized_keys" -print -exec cat {} \;
   ```

1. Desabilita a autenticação baseada em senha para o usuário raiz. Abra o arquivo `sshd_config` e edite a linha `PermitRootLogin` da seguinte forma:

   ```
   PermitRootLogin without-password
   ```

   Como alternativa, é possível desativar a capacidade de fazer login na instância como usuário raiz:

   ```
   PermitRootLogin No
   ```

   Reinicie o serviço sshd.

1. Verifique se há outros usuários que possam fazer login na sua instância. Usuários com privilégios de superusuário são particularmente perigosos. Remova ou bloqueie senha de todas as contas desconhecidas.

1. Verifique se há portas abertas que você não está usando e escuta de serviços de rede em execução para as conexões de entrada.

1. Para evitar o registro em log remoto pré-configurado, exclua o arquivo de configuração existente e reinicie o serviço `rsyslog`. Por exemplo:

   ```
   [ec2-user ~]$ sudo rm /etc/rsyslog.conf
   [ec2-user ~]$ sudo service rsyslog restart
   ```

1. Verifique se todos os trabalhos cron são legítimos.

Se você descobrir uma AMI pública que sente que apresenta um risco de segurança, entre em contato com a equipe de segurança da AWS. Para obter informações, consulte o [Centro de segurança da AWS](https://aws.amazon.com/security/).

# Controlar a descoberta e o uso de AMIs no Amazon EC2 com AMIs permitidas.
<a name="ec2-allowed-amis"></a>

Para controlar a descoberta e o uso de imagens de máquina da Amazon (AMIs) pelos usuários da sua Conta da AWS, é possível usar o atributo de *AMIs permitidas*. Você especifica os critérios que as AMIs devem atender para ficarem visíveis e disponíveis em sua conta. Quando os critérios são habilitados, os usuários que iniciam instâncias só verão e terão acesso às AMIs que estejam em conformidade com os critérios especificados. Por exemplo, é possível especificar uma lista de provedores de AMIs confiáveis como critério, e somente as AMIs desses provedores estarão visíveis e disponíveis para uso.

Antes de ativar as configurações de AMIs permitidas, é possível ativar o *modo de auditoria* para visualizar quais AMIs estarão ou não visíveis e disponíveis para uso. Isso permite que você refine os critérios conforme necessário para garantir que somente as AMIs pretendidas estejam visíveis e disponíveis para os usuários em sua conta. Além disso, use o comando [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html) para encontrar as instâncias que foram iniciadas com AMIs que não atendiam aos critérios especificados. Essas informações podem orientar sua decisão de atualizar suas configurações de inicialização para usar AMIs em conformidade (por exemplo, especificar uma AMI diferente em um modelo de inicialização) ou ajustar seus critérios para permitir essas AMIs.

Você especifica as configurações de AMIs permitidas no nível da conta, diretamente na conta ou usando uma política declarativa. Essas configurações devem ser definidas em cada Região da AWS onde você deseja controlar o uso de AMIs. O uso de uma política declarativa permite que você aplique as configurações em várias regiões simultaneamente, bem como em várias contas simultaneamente. Quando uma política declarativa está em uso, você não pode modificar as configurações diretamente em uma conta. Este tópico descreve como ajustar as configurações diretamente em uma conta. Para obter informações sobre o uso de políticas declarativas, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) no *Guia do usuário do AWS Organizations*.

**nota**  
O atributo AMIs permitidas controla somente a descoberta e o uso de AMIs públicas ou AMIs compartilhadas com sua conta. Ele não restringe as AMIs pertencentes à sua conta. Independentemente dos critérios definidos, as AMIs criadas pela sua conta sempre poderão ser descobertas e usadas pelos usuários da sua conta.

**Principais benefícios das AMIs permitidas**
+ **Conformidade e segurança**: os usuários só podem descobrir e usar AMIs que atendam aos critérios especificados, reduzindo o risco de uso de AMIs fora de conformidade.
+ **Gerenciamento eficiente**: ao reduzir o número de AMIs permitidas, o gerenciamento das demais se torna mais fácil e eficiente.
+ **Implementação centralizada em nível de conta**: defina as configurações de AMIs permitidas no nível da conta, diretamente na conta ou por meio de uma política declarativa. Isso fornece uma maneira centralizada e eficiente de controlar o uso de AMIs em toda a conta.

**Topics**
+ [Como funcionam as AMIs permitidas](#how-allowed-amis-works)
+ [Práticas recomendadas para a implementação de AMIs permitidas](#best-practice-for-implementing-allowed-amis)
+ [Permissões obrigatórias do IAM](#iam-permissions-for-allowed-amis)
+ [Gerenciar as configurações de AMIs permitidas](manage-settings-allowed-amis.md)

## Como funcionam as AMIs permitidas
<a name="how-allowed-amis-works"></a>

Para controlar quais AMIs podem ser detectadas e usadas em sua conta, defina um conjunto de critérios de avaliação de AMIs. Os critérios são compostos de um ou mais `ImageCriterion`, como mostra o diagrama a seguir. Uma explicação se segue ao diagrama.

![\[A hierarquia da configuração de ImageCriteria de AMIs Permitidas.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami_allowed-amis-imagecriteria.png)


A configuração tem três níveis:
+ **1** – valores dos parâmetros
  + Parâmetros com vários valores:
    + `ImageProviders`
    + `ImageNames`
    + `MarketplaceProductCodes`

      Uma AMI pode atender a *qualquer* valor dentro de um parâmetro para ser permitida.

      Exemplo: `ImageProviders` = `amazon` **OU** conta `111122223333` **OU** conta `444455556666` (a lógica de avaliação de valores dos parâmetros não é mostrada no diagrama.)
  + Parâmetros de valor único:
    + `CreationDateCondition`
    + `DeprecationTimeCondition`
+ **2**: `ImageCriterion`
  + Agrupa vários parâmetros com a lógica **E**.
  + Uma AMI deve atender a *todos* os parâmetros dentro de um `ImageCriterion` para ser permitida.
  + Exemplo: `ImageProviders` = `amazon` **E** `CreationDateCondition` = 300 dias ou menos
+ **3**: `ImageCriteria`
  + Agrupa vários `ImageCriterion` com a lógica **OU**.
  + Uma AMI pode atender a *qualquer* `ImageCriterion` para ser permitida.
  + Forma a configuração completa em relação à qual as AMIs são avaliadas. 

**Topics**
+ [Parâmetros de AMIs permitidas](#allowed-amis-criteria)
+ [Configuração de AMIs permitidas](#allowed-amis-json-configuration)
+ [Como os critérios são avaliados](#how-allowed-amis-criteria-are-evaluated)
+ [Limites](#allowed-amis-json-configuration-limits)
+ [Operações de AMIs permitidas](#allowed-amis-operations)

### Parâmetros de AMIs permitidas
<a name="allowed-amis-criteria"></a>

Os seguintes parâmetros podem ser configurados para criar `ImageCriterion`:

`ImageProviders`  
Os provedores de AMIs cujas AMIs são permitidas.  
Os valores válidos são aliases definidos pela AWS, e IDs de Conta da AWS, da seguinte forma:  
+ `amazon`: um alias que identifica as AMIs criadas pela Amazon ou por provedores verificados
+ `aws-marketplace`: um alias que identifica AMIs criadas por provedores verificados no AWS Marketplace
+ `aws-backup-vault`: um alias que identifica AMIs de backup que residem em contas do cofre de backup da AWS logicamente isoladas. Se você usar o atributo de cofre logicamente isolado de backup da AWS, certifique-se de que esse alias esteja incluído como provedor de AMI.
+ IDs de Conta da AWS: um ou mais IDs de Conta da AWS de 12 dígitos
+ `none`: indica que somente as AMIs criadas pela sua conta podem ser descobertas e usadas. AMIs públicas ou compartilhadas não podem ser descobertas e usadas. Quando especificado, nenhum outro critério pode ser especificado.

`ImageNames`  
Os nomes das AMIs permitidas, usando correspondências exatas ou curingas (`?` ou `*`).

`MarketplaceProductCodes`  
Os códigos de produto do AWS Marketplace para as AMIs permitidas.

`CreationDateCondition`  
A idade máxima das AMIs permitidas.

`DeprecationTimeCondition`  
O período máximo desde a obsolescência para as AMIs permitidas.

Para ver os valores e as restrições válidas para cada critério, consulte [ImageCriterionRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImageCriterionRequest.html) na *Amazon EC2 API Reference*.

### Configuração de AMIs permitidas
<a name="allowed-amis-json-configuration"></a>

A configuração básica das AMIs permitidas é a configuração de `ImageCriteria` que define os critérios para as AMIs permitidas. A seguinte estrutura JSON mostra os parâmetros que podem ser especificados:

```
{
    "State": "enabled" | "disabled" | "audit-mode",  
    "ImageCriteria" : [
        {
            "ImageProviders": ["string",...],
            "MarketplaceProductCodes": ["string",...],           
            "ImageNames":["string",...],
            "CreationDateCondition" : {
                "MaximumDaysSinceCreated": integer
            },
            "DeprecationTimeCondition" : {
                "MaximumDaysSinceDeprecated": integer
            }
         },
         ...
}
```

#### Exemplo de ImageCriteria
<a name="allowed-amis-json-configuration-example"></a>

O exemplo de `ImageCriteria` a seguir configura quatro `ImageCriterion`. Uma AMI será permitida se atender a um desses `ImageCriterion`. Para obter informações sobre como os critérios são avaliados, consulte [Como os critérios são avaliados](#how-allowed-amis-criteria-are-evaluated).

```
{
    "ImageCriteria": [
        // ImageCriterion 1: Allow AWS Marketplace AMIs with product code "abcdefg1234567890"
        {
            "MarketplaceProductCodes": [
                "abcdefg1234567890"
            ]
        },
        // ImageCriterion 2: Allow AMIs from providers whose accounts are
        // "123456789012" OR "123456789013" AND AMI age is less than 300 days
        {
            "ImageProviders": [
                "123456789012",
                "123456789013"
            ],
            "CreationDateCondition": {
                "MaximumDaysSinceCreated": 300
            }
        },
        // ImageCriterion 3: Allow AMIs from provider whose account is "123456789014" 
        // AND with names following the pattern "golden-ami-*"
        {
            "ImageProviders": [
                "123456789014"
            ],
            "ImageNames": [
                "golden-ami-*"
            ]
        },
        // ImageCriterion 4: Allow AMIs from Amazon or verified providers 
        // AND which aren't deprecated
        {
            "ImageProviders": [
                "amazon"
            ],
            "DeprecationTimeCondition": {
                "MaximumDaysSinceDeprecated": 0
            }
        }
    ]
}
```

### Como os critérios são avaliados
<a name="how-allowed-amis-criteria-are-evaluated"></a>

A seguinte tabela explica as regras de avaliação que determinam se uma AMI é permitida, mostrando como o operador `AND` ou `OR` é aplicado em cada nível:


| Nível de avaliação | Operador | Requisito para ser uma AMI permitida | 
| --- | --- | --- | 
| Valores de parâmetros para ImageProviders, ImageNames e MarketplaceProductCodes | OR | A AMI deve atender a pelo menos um valor de cada lista de parâmetros | 
| ImageCriterion | AND | A AMI deve atender a todos os parâmetros de cada ImageCriterion | 
| ImageCriteria | OR | A AMI deve atender a um dos ImageCriterion | 

Usando as regras de avaliação anteriores, vamos ver como aplicá-las ao [Exemplo de ImageCriteria](#allowed-amis-json-configuration-example):
+ `ImageCriterion` 1: permite AMIs que tenham o código de produto de AWS Marketplace `abcdefg1234567890`

  `OR`
+ `ImageCriterion` 2: permite AMIs que atendam a estes dois critérios:
  + Pertencente à conta `123456789012` `OR` `123456789013`
    + `AND`
  + Criada nos últimos 300 dias

  `OR`
+ `ImageCriterion` 3: permite AMIs que atendam a estes dois critérios:
  + Pertencente à conta `123456789014`
    + `AND`
  + Nomeada com o padrão `golden-ami-*`

  `OR`
+ `ImageCriterion` 4: permite AMIs que atendam a estes dois critérios:
  + Publicada pela Amazon ou por fornecedores verificados (especificado pelo alias `amazon`)
    + `AND`
  + Não obsoletas (o número máximo de dias desde a obsolescência é `0`)

### Limites
<a name="allowed-amis-json-configuration-limits"></a>

O `ImageCriteria` podem incluir até:
+ 10 `ImageCriterion`

Cada `ImageCriterion` pode incluir até:
+ 200 valores para `ImageProviders`
+ 50 valores para `ImageNames` 
+ 50 valores para `MarketplaceProductCodes` 

**Exemplo de limites**

Usando o [Exemplo de ImageCriteria](#allowed-amis-json-configuration-example) anterior:
+ Existem 4 `ImageCriterion`. Podem ser adicionados até 6 à solicitação para atingir o limite de 10.
+ No primeiro `ImageCriterion`, há 1 valor para `MarketplaceProductCodes`. Podem ser adicionados até 49 a esse `ImageCriterion` para atingir o limite de 50.
+ No segundo `ImageCriterion`, há 2 valores para `ImageProviders`. Podem ser adicionados até 198 a esse `ImageCriterion` para atingir o limite de 200.
+ No terceiro `ImageCriterion`, há 1 valor para `ImageNames`. Podem ser adicionados até 49 a esse `ImageCriterion` para atingir o limite de 50.

### Operações de AMIs permitidas
<a name="allowed-amis-operations"></a>

O atributo AMIs permitidas tem três estados operacionais para gerenciamento dos critérios de imagem: **habilitado**, **desabilitado** e **modo de auditoria**. Esses modos permitem que você habilite ou desabilite os critérios de imagem, ou os revise conforme necessário.

**Habilitado**

Quando as AMIs permitidas estão habilitadas: 
+ Os `ImageCriteria` são aplicados.
+ Somente as AMIs permitidas podem ser descobertas no console do EC2 e por APIs que usam imagens (por exemplo, que descrevem, copiam, armazenam ou executam outras ações que usam imagens).
+ As instâncias só podem ser iniciadas usando AMIs permitidas.

**Desabilitado**

Quando as AMIs permitidas estão desabilitadas: 
+ As `ImageCriteria` não são aplicadas.
+ Nenhuma restrição é imposta à descoberta ou ao uso da AMI. 

**Modo de auditoria**

 No modo de auditoria:
+ Os `ImageCriteria` são aplicados, mas nenhuma restrição é imposta à descoberta ou ao uso da AMI.
+ No console do EC2, para cada AMI, o campo **Imagem permitida** exibe **Sim** ou **Não** para indicar se a AMI será detectável e estará disponível para os usuários na conta quando AMIs permitidas estiver habilitado.
+ Na linha de comando, a resposta para a operação `describe-image` inclui `"ImageAllowed": true` ou `"ImageAllowed": false` para indicar se a AMI será detectável e estará disponível para os usuários na conta quando AMIs permitidas estiver habilitado.
+ No console do EC2, o Catálogo de AMIs exibirá **Não permitido** ao lado de AMIs que não serão detectáveis ou estarão disponíveis para os usuários na conta quando AMIs permitidas estiver habilitado.

## Práticas recomendadas para a implementação de AMIs permitidas
<a name="best-practice-for-implementing-allowed-amis"></a>

Ao implementar AMIs permitidas, considere estas práticas recomendadas para garantir uma transição tranquila e minimizar possíveis interrupções em seu ambiente da AWS.

1. **Habilitar o modo de auditoria**

   Comece ativando AMIs permitidas no modo de auditoria. Esse estado permite que você veja quais são as AMIs que seriam afetadas por seus critérios sem realmente restringir o acesso, fornecendo um período de avaliação sem riscos.

1. **Definir critérios de AMIs permitidas**

   Estabeleça cuidadosamente quais provedores de AMI estão alinhados com as políticas de segurança, os requisitos de conformidade e as necessidades operacionais da sua organização.
**nota**  
Ao usar serviços gerenciados da AWS, como Amazon ECS ou o Amazon EKS ou as instâncias gerenciadas do AWS Lambda, recomendamos especificar o alias da `amazon` para permitir as AMIs criadas pela AWS. Esses serviços dependem das AMIs publicadas pela Amazon para iniciar instâncias.   
Tenha cuidado ao definir restrições de `CreationDateCondition` para as AMIs. Definir condições de data excessivamente restritivas (por exemplo, as AMIs devem ter menos de 5 dias) pode causar falhas na inicialização da instância se as AMIs da AWS ou de outros provedores não forem atualizadas dentro do prazo especificado.  
Recomendamos emparelhar `ImageNames` com `ImageProviders` para ter mais controle e especificidade. O uso de `ImageNames` sozinho pode não identificar exclusivamente uma AMI.

1. **Verificar o impacto nos processos de negócios esperados**

   É possível usar o console ou a CLI para identificar instâncias que foram iniciadas com AMIs e que não atendem aos critérios especificados. Essas informações podem orientar sua decisão de atualizar suas configurações de inicialização para usar AMIs em conformidade (por exemplo, especificar uma AMI diferente em um modelo de inicialização) ou ajustar seus critérios para permitir essas AMIs.

   Console: use a regra [ec2-instance-launched-with-allowed-ami](https://docs.aws.amazon.com/config/latest/developerguide/ec2-instance-launched-with-allowed-ami.html) do AWS Config para verificar se as instâncias em execução ou paradas foram iniciadas com AMIs que atendem aos seus critérios de AMIs permitidas. A regra é **NON\$1COMPLIANT** quando uma AMI não atende aos critérios de AMIs permitidas e **COMPLIANT** quando atende. A regra apenas funciona quando a configuração de AMIs permitidas está definida como **habilitada** ou **modo de auditoria**.

   CLI: execute o comando [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html) e filtre a resposta para identificar quaisquer instâncias que foram iniciadas com AMIs que não atendem aos critérios especificados.

   Para obter instruções sobre o console e a CLI, consulte [Encontrar instâncias inicializadas de AMIs que não são permitidas](manage-settings-allowed-amis.md#identify-instances-with-allowed-AMIs).

1. **Habilitar AMIs permitidas**

   Depois de confirmar que os critérios não afetarão de forma adversa os processos de negócios esperados, habilite AMIs permitidas.

1. **Monitorar as execuções de instâncias**

   Continue monitorando as execuções de instâncias a partir de AMIs em ssuas aplicações e nos serviços da AWS gerenciados que você usa, como o Amazon EMR, Amazon ECR, Amazon EKS e AWS Elastic Beanstalk. Verifique se há problemas inesperados e faça os ajustes necessários nos critérios de AMIs permitidas.

1. **Testar novas AMIs**

   Para testar AMIs de terceiros que não estejam em conformidade com suas configurações atuais de AMIs permitidas, a AWS recomenda as abordagens a seguir:
   + Use uma Conta da AWS separada: crie uma conta sem acesso aos recursos essenciais para os seus negócios. Garanta que a configuração de AMIs permitidas não esteja habilitada nessa conta ou que as AMIs que você deseja testar sejam explicitamente permitidas, para que você possa testá-las. 
   + Teste em outra Região da AWS: use uma região em que as AMIs de terceiros estejam disponíveis, mas em que você ainda não tenha habilitado as configurações de AMIs permitidas. 

   Essas abordagens ajudam a garantir que seus recursos essenciais para os negócios permaneçam seguros durante o teste de novas AMIs.

## Permissões obrigatórias do IAM
<a name="iam-permissions-for-allowed-amis"></a>

Para usar o atributo de AMIs permitidas, você precisa das seguintes permissões do IAM:
+ `GetAllowedImagesSettings`
+ `EnableAllowedImagesSettings`
+ `DisableAllowedImagesSettings`
+ `ReplaceImageCriteriaInAllowedImagesSettings`

# Gerenciar as configurações de AMIs permitidas
<a name="manage-settings-allowed-amis"></a>

É possível gerenciar as configurações de AMIs permitidas. Essas configurações são por região, por conta.

**Topics**
+ [Habilitar AMIs permitidas](#enable-allowed-amis-criteria)
+ [Definir os critérios de AMIs permitidas](#update-allowed-amis-criteria)
+ [Desabilitar AMIs permitidas](#disable-allowed-amis-criteria)
+ [Obter os critérios de AMIs permitidas](#identify-allowed-amis-state-and-criteria)
+ [Localizar AMIs que são permitidas](#identify-amis-that-meet-allowed-amis-criteria)
+ [Encontrar instâncias inicializadas de AMIs que não são permitidas](#identify-instances-with-allowed-AMIs)

## Habilitar AMIs permitidas
<a name="enable-allowed-amis-criteria"></a>

É possível habilitar AMIs permitidas e especificar critérios para AMIs permitidas. Recomendamos que você comece no modo de auditoria, que mostra quais AMIs seriam afetadas pelos critérios sem realmente restringir o acesso.

------
#### [ Console ]

**Para habilitar AMIs permitidas**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Painel**.

1. No cartão **Atributos da conta**, em **Configurações**, escolha **AMIs permitidas**.

1. Na guia **AMIs permitidas**, escolha **Gerenciar**.

1. Em **Configurações de AMIs permitidas**, escolha **Modo de auditoria** ou **Habilitado**. Recomendamos que você comece no modo de auditoria, teste os critérios e retorne a essa etapa para habilitar as AMIs permitidas.

1. (Opcional) Em **Critérios de AMI**, verifique os critérios no formato JSON.

1. Selecione **Atualizar**.

------
#### [ AWS CLI ]

**Para habilitar AMIs permitidas**  
Use o comando [enable-allowed-images-settings](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-allowed-images-settings.html).

```
aws ec2 enable-allowed-images-settings --allowed-images-settings-state enabled
```

Para habilitar o modo de auditoria em vez disso, especifique `audit-mode` em vez de `enabled`.

```
aws ec2 enable-allowed-images-settings --allowed-images-settings-state audit-mode
```

------
#### [ PowerShell ]

**Para habilitar AMIs permitidas**  
Use o cmdlet [Enable-EC2AllowedImagesSetting](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2AllowedImagesSetting.html).

```
Enable-EC2AllowedImagesSetting -AllowedImagesSettingsState enabled
```

Para habilitar o modo de auditoria em vez disso, especifique `audit-mode` em vez de `enabled`.

```
Enable-EC2AllowedImagesSetting -AllowedImagesSettingsState audit-mode
```

------

## Definir os critérios de AMIs permitidas
<a name="update-allowed-amis-criteria"></a>

Depois de habilitar as AMIs permitidas, será possível definir ou substituir os critérios de AMIs permitidas.

Para obter a configuração correta e valores válidos, consulte [Configuração de AMIs permitidas](ec2-allowed-amis.md#allowed-amis-json-configuration) e [Parâmetros de AMIs permitidas](ec2-allowed-amis.md#allowed-amis-criteria).

------
#### [ Console ]

**Para definir os critérios de AMIs permitidas**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Painel**.

1. No cartão **Atributos da conta**, em **Configurações**, escolha **AMIs permitidas**.

1. Na guia **AMIs permitidas**, escolha **Gerenciar**.

1. Em **Critérios de AMI**, verifique os critérios no formato JSON.

1. Selecione **Atualizar**.

------
#### [ AWS CLI ]

**Para definir os critérios de AMIs permitidas**  
Use o comando [replace-image-criteria-in-allowed-images-settings](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-image-criteria-in-allowed-images-settings.html) e especifique o arquivo JSON que contém os critérios para AMIs permitidas.

```
aws ec2 replace-image-criteria-in-allowed-images-settings --cli-input-json file://file_name.json
```

------
#### [ PowerShell ]

**Para definir os critérios de AMIs permitidas**  
Use o cmdlet [Set-EC2ImageCriteriaInAllowedImagesSetting](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2ImageCriteriaInAllowedImagesSetting.html) e especifique o arquivo JSON que contém os critérios para AMIs permitidas.

```
$imageCriteria = Get-Content -Path .\file_name.json | ConvertFrom-Json
Set-EC2ImageCriteriaInAllowedImagesSetting -ImageCriterion $imageCriteria
```

------

## Desabilitar AMIs permitidas
<a name="disable-allowed-amis-criteria"></a>

É possível desabilitar as AMIs permitidas da seguinte maneira.

------
#### [ Console ]

**Para desabilitar AMIs permitidas**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Painel**.

1. No cartão **Atributos da conta**, em **Configurações**, escolha **AMIs permitidas**.

1. Na guia **AMIs permitidas**, escolha **Gerenciar**.

1. Em **Configurações de AMIs permitidas**, escolha **Desabilitado**.

1. Selecione **Atualizar**.

------
#### [ AWS CLI ]

**Para desabilitar AMIs permitidas**  
Use o comando [disable-allowed-images-settings](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-allowed-images-settings.html).

```
aws ec2 disable-allowed-images-settings
```

------
#### [ PowerShell ]

**Para desabilitar AMIs permitidas**  
Use o cmdlet [Disable-EC2AllowedImagesSetting](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2AllowedImagesSetting.html).

```
Disable-EC2AllowedImagesSetting
```

------

## Obter os critérios de AMIs permitidas
<a name="identify-allowed-amis-state-and-criteria"></a>

É possível obter o estado atual da configuração de AMIs permitidas e os critérios de AMIs permitidas.

------
#### [ Console ]

**Para obter o estado e os critérios das AMIs permitidas**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Painel**.

1. No cartão **Atributos da conta**, em **Configurações**, escolha **AMIs permitidas**.

1. Na guia **AMIs permitidas**, as **Configurações de AMIs permitidas** estarão definidas como **Habilitado**, **Desabilitado** ou **Modo de auditoria**.

1. Se o estado das AMIs permitidas for **Habilitado** ou **Modo de auditoria**, os **Critérios da AMI** exibirão os critérios da AMI no formato JSON.

------
#### [ AWS CLI ]

**Para obter o estado e os critérios das AMIs permitidas**  
Use o comando [get-allowed-images-settings](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-allowed-images-settings.html).

```
aws ec2 get-allowed-images-settings
```

Na exemplo de saída a seguir, o estado é `audit-mode` e os critérios de imagem são definidos na conta.

```
{
    "State": "audit-mode",
    "ImageCriteria": [
        {
            "MarketplaceProductCodes": [
                "abcdefg1234567890"
            ]
        },
        {
            "ImageProviders": [
                "123456789012",
                "123456789013"
            ],
            "CreationDateCondition": {
                "MaximumDaysSinceCreated": 300
            }
        },
        {
            "ImageProviders": [
                "123456789014"
            ],
            "ImageNames": [
                "golden-ami-*"
            ]
        },
        {
            "ImageProviders": [
                "amazon"
            ],
            "DeprecationTimeCondition": {
                "MaximumDaysSinceDeprecated": 0
            }
        }
    ],
    "ManagedBy": "account"
}
```

------
#### [ PowerShell ]

**Para obter o estado e os critérios das AMIs permitidas**  
Use o cmdlet [Get-EC2AllowedImagesSetting](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2AllowedImagesSetting.html).

```
Get-EC2AllowedImagesSetting | Select-Object `
    State, `
    ManagedBy, `
    @{Name='ImageProviders'; Expression={($_.ImageCriteria.ImageProviders)}}, `
    @{Name='MarketplaceProductCodes'; Expression={($_.ImageCriteria.MarketplaceProductCodes)}}, `
    @{Name='ImageNames'; Expression={($_.ImageCriteria.ImageNames)}}, `
    @{Name='MaximumDaysSinceCreated'; Expression={($_.ImageCriteria.CreationDateCondition.MaximumDaysSinceCreated)}}, `
    @{Name='MaximumDaysSinceDeprecated'; Expression={($_.ImageCriteria.DeprecationTimeCondition.MaximumDaysSinceDeprecated)}}
```

Na exemplo de saída a seguir, o estado é `audit-mode` e os critérios de imagem são definidos na conta.

```
State      : audit-mode
ManagedBy  : account
ImageProviders            : {123456789012, 123456789013, 123456789014, amazon}
MarketplaceProductCodes   : {abcdefg1234567890}
ImageNames                : {golden-ami-*}
MaximumDaysSinceCreated  : 300
MaximumDaysSinceDeprecated: 0
```

------

## Localizar AMIs que são permitidas
<a name="identify-amis-that-meet-allowed-amis-criteria"></a>

É possível encontrar as AMIs que são permitidas ou não são permitidas pelos critérios atuais de AMIs permitidas.

**nota**  
As AMIs permitidas precisam estar no modo de auditoria.

------
#### [ Console ]

**Para identificar se uma AMI atende aos critérios de AMIs permitidas**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione a AMI.

1. Na guia **Detalhes** (se você marcou a caixa de seleção) ou na área de resumo (se você selecionou o ID da AMI), encontre o campo **Imagem permitida**.
   + **Sim**: a AMI atende aos critérios de AMIs permitidas. Essa AMI estará disponível para os usuários em sua conta depois que você habilitar as AMIs permitidas.
   + **Não**: a AMI não atende aos critérios de AMIs permitidas.

1. No painel de navegação, escolha **AMI Catalog** (Catálogo de AMIs).

   Uma AMI marcada como **Não permitida** indica uma AMI que não atende aos critérios de AMIs permitidas. Essa AMI não estará visível ou disponível para os usuários em sua conta quando as AMIs permitidas estiverem habilitadas.

------
#### [ AWS CLI ]

**Para identificar se uma AMI atende aos critérios de AMIs permitidas**  
Use o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --image-id ami-0abcdef1234567890 \
    --query Images[].ImageAllowed \
    --output text
```

O seguinte é um exemplo de saída.

```
True
```

**Para encontrar AMIs que atendam aos critérios de AMIs permitidas**  
Use o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --filters "Name=image-allowed,Values=true" \
    --max-items 10 \
    --query Images[].ImageId
```

O seguinte é um exemplo de saída.

```
ami-000eaaa8be2fd162a
ami-000f82db25e50de8e
ami-000fc21eb34c7a9a6
ami-0010b876f1287d7be
ami-0010b929226fe8eba
ami-0010957836340aead
ami-00112c992a47ba871
ami-00111759e194abcc1
ami-001112565ffcafa5e
ami-0011e45aaee9fba88
```

------
#### [ PowerShell ]

**Para identificar se uma AMI atende aos critérios de AMIs permitidas**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).ImageAllowed
```

O seguinte é um exemplo de saída.

```
True
```

**Para encontrar AMIs que atendam aos critérios de AMIs permitidas**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
Get-EC2Image `
    -Filter @{Name="image-allows";Values="true"} `
    -MaxResult 10 | `
    Select ImageId
```

O seguinte é um exemplo de saída.

```
ami-000eaaa8be2fd162a
ami-000f82db25e50de8e
ami-000fc21eb34c7a9a6
ami-0010b876f1287d7be
ami-0010b929226fe8eba
ami-0010957836340aead
ami-00112c992a47ba871
ami-00111759e194abcc1
ami-001112565ffcafa5e
ami-0011e45aaee9fba88
```

------

## Encontrar instâncias inicializadas de AMIs que não são permitidas
<a name="identify-instances-with-allowed-AMIs"></a>

É possível identificar as instâncias que foram iniciadas com uma AMI que não atende aos critérios de AMIs permitidas.

------
#### [ Console ]

**Para verificar se uma instância foi iniciada usando uma AMI que não é permitida**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Selecione a instância.

1. Na guia **Detalhes**, em **Detalhes da instância**, encontre **Imagem permitida**.
   + **Sim**: a AMI atende aos critérios de AMIs permitidas.
   + **Não**: a AMI não atende aos critérios de AMIs permitidas.

------
#### [ AWS CLI ]

**Para encontrar instâncias inicializadas usando AMIs que não são permitidas**  
Use o comando [describe-instance-image-metadata](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-image-metadata.html) com o filtro `image-allowed`.

```
aws ec2 describe-instance-image-metadata \
    --filters "Name=image-allowed,Values=false" \
    --query "InstanceImageMetadata[*].[InstanceId,ImageMetadata.ImageId]" \
    --output table
```

O seguinte é um exemplo de saída.

```
--------------------------------------------------
|          DescribeInstanceImageMetadata         |
+----------------------+-------------------------+
|  i-08fd74f3f1595fdbd |  ami-09245d5773578a1d6  |
|  i-0b1bf24fd4f297ab9 |  ami-07cccf2bd80ed467f  |
|  i-026a2eb590b4f7234 |  ami-0c0ec0a3a3a4c34c0  |
|  i-006a6a4e8870c828f |  ami-0a70b9d193ae8a799  |
|  i-0781e91cfeca3179d |  ami-00c257e12d6828491  |
|  i-02b631e2a6ae7c2d9 |  ami-0bfddf4206f1fa7b9  |
+----------------------+-------------------------+
```

------
#### [ PowerShell ]

**Para encontrar instâncias inicializadas usando AMIs que não são permitidas**  
Use o cmdlet [Get-EC2InstanceImageMetadata](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceImageMetadata.html).

```
Get-EC2InstanceImageMetadata `
    -Filter @{Name="image-allowed";Values="false"} | `
    Select InstanceId, @{Name='ImageId'; Expression={($_.ImageMetadata.ImageId)}}
```

O seguinte é um exemplo de saída.

```
InstanceId          ImageId
----------          -------
i-08fd74f3f1595fdbd ami-09245d5773578a1d6
i-0b1bf24fd4f297ab9 ami-07cccf2bd80ed467f
i-026a2eb590b4f7234 ami-0c0ec0a3a3a4c34c0
i-006a6a4e8870c828f ami-0a70b9d193ae8a799
i-0781e91cfeca3179d ami-00c257e12d6828491
i-02b631e2a6ae7c2d9 ami-0bfddf4206f1fa7b9
```

------
#### [ AWS Config ]

É possível adicionar a regra **ec2-instance-launched-with-allowed-ami** do AWS Config, configurá-la de acordo com seus requisitos e usá-la para avaliar suas instâncias.

Para obter mais informações, consulte [Adicionar regras do AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_add-rules.html) e [ec2-instance-launched-with-allowed-ami](https://docs.aws.amazon.com/config/latest/developerguide/ec2-instance-launched-with-allowed-ami.html) no *Guia do desenvolvedor do AWS Config*.

------

# Disponibilizar publicamente sua AMI para uso no Amazon EC2
<a name="sharingamis-intro"></a>

É possível tornar sua AMI disponível publicamente compartilhando-a com todos os Contas da AWS.

Se você quiser impedir o compartilhamento público de suas AMIs, você pode habilitar o *bloqueio de acesso público para AMIs*. Isso bloqueia qualquer tentativa de tornar uma AMI pública, ajudando a evitar acesso não autorizado e possível uso indevido dos dados da AMI. Observe que habilitar o bloqueio de acesso público não afeta as AMIs que já estão publicamente disponíveis; elas permanecem publicamente acessíveis. Para obter mais informações, consulte [Saiba mais sobre o bloqueio de acesso público para AMIs](block-public-access-to-amis.md).

Para permitir que apenas contas específicas usem sua AMI para iniciar instâncias, consulte [Compartilhar uma AMI com contas específicas da AWS](sharingamis-explicit.md).

**Topics**
+ [Considerações](#considerations-for-sharing-public-AMIs)
+ [Compartilhe uma AMI com todas as AWS contas (compartilhe publicamente)](#share-an-ami-publicly)

## Considerações
<a name="considerations-for-sharing-public-AMIs"></a>

Considere as informações a seguir antes de tornar uma AMI pública.
+ **Propriedade**: para tornar uma AMI pública, sua Conta da AWS deve ser proprietária da AMI.
+ **Region**: as AMIs são um recurso regional. Quando você compartilha uma AMI, ela só está disponível na região de onde foi compartilhada. Para disponibilizar uma AMI em uma região diferente, copie a AMI para a região e compartilhe-a. Para obter mais informações, consulte [Copiar uma AMI do Amazon EC2](CopyingAMIs.md).
+ **Bloquear o acesso público** — Para compartilhar publicamente uma AMI, o [bloqueio do acesso público para AMIs](block-public-access-to-amis.md) deve ser desativado em cada região na qual a AMI será compartilhada publicamente. Depois de compartilhar publicamente a AMI, você pode reativar o bloqueio do acesso público para AMIs para evitar mais compartilhamentos públicos de suas AMIs.
+ **Algumas AMIs não podem ser tornadas públicas**: se sua AMI tiver um dos seguintes componentes, você não poderá torná-la pública (mas poderá [compartilhar a AMI com Contas da AWS específicas](sharingamis-explicit.md)):
  + Volumes criptografados
  + Snapshots de volumes criptografados
  + Códigos do produto
+ **Evite a exposição de dados confidenciais**: para evitar expor dados confidenciais ao compartilhar uma AMI, leia as considerações de segurança em [Recomendações para criar AMIs compartilhadas no Linux](building-shared-amis.md) e siga as ações recomendadas.
+ **Uso**: quando você compartilha uma AMI, os usuários podem apenas iniciar instâncias pela AMI. Eles não podem excluí-la, compartilhá-la nem modificá-la. Porém, após iniciarem uma instância usando sua AMI, poderão criar uma AMI com base na instância que iniciaram.
+ **Descontinuação automática**: por padrão, a data de descontinuação de todas as AMIs públicas é definida como dois anos após a data de criação da AMI. É possível definir a data de descontinuação para antes de dois anos. Para cancelar a data de descontinuação ou adiá-la para uma data posterior, você deve tornar a AMI privada [compartilhando-a somente com Contas da AWS específicas](sharingamis-explicit.md).
+ **Remoção de AMIs obsoletas**: depois que uma AMI pública atinge a data de descontinuação, se novas instâncias não forem iniciadas usando a AMI por seis meses ou mais, a AWS eventualmente remove a propriedade de compartilhamento público para que as AMIs obsoletas não apareçam nas listas de AMI públicas.
+ **Faturamento**: você não é cobrado quando sua AMI é usada por outras Contas da AWS para executar instâncias. As contas que iniciam instâncias usando a AMI são cobradas pelas instâncias que iniciam.

## Compartilhe uma AMI com todas as AWS contas (compartilhe publicamente)
<a name="share-an-ami-publicly"></a>

Depois de tornar uma AMI pública, ela fica disponível nas **AMIs da comunidade** no console, que você pode acessar no **catálogo da AMI** no navegador esquerdo do console do EC2 ou ao iniciar uma instância usando o console. Observe que pode demorar um pouco para a AMI aparecer em **AMIs da comunidade** depois de você torná-la pública. 

------
#### [ Console ]

**Para tornar um AMI pública**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione a AMI na lista e escolha **Actions** (Ações), **Edit AMI permissions** (Editar permissões de AMI).

1. Em **AMI availability** (Disponibilidade da AMI), escolha **Public** (Pública).

1. Escolha **Save changes**.

------
#### [ AWS CLI ]

Cada AMI tem uma propriedade `launchPermission` que controla quais Contas da AWS, além do proprietário, têm permissão para usar essa AMI para executar instâncias. Ao modificar a propriedade `launchPermission` da AMI, é possível torná-la pública (o que concede permissões de execução a todas as Contas da AWS) ou compartilhá-la somente com as Contas da AWS que você especificar.

É possível adicionar ou remover os IDs da lista de contas que tiverem permissões de execução para uma AMI. Para tornar a AMI pública, especifique o grupo `all`. É possível especificar permissões públicas e permissões de execução explícita.

**Para tornar um AMI pública**

1. Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) da seguinte forma para adicionar o grupo `all` à lista `launchPermission` para a AMI especificada.

   ```
   aws ec2 modify-image-attribute \
       --image-id ami-0abcdef1234567890 \
       --launch-permission "Add=[{Group=all}]"
   ```

1. Para verificar as permissões de execução da AMI, use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html).

   ```
   aws ec2 describe-image-attribute \
       --image-id ami-0abcdef1234567890 \
       --attribute launchPermission
   ```

1. (Opcional) Para tornar a AMI privada novamente, remova o grupo `all` de suas permissões de execução. Observe que o proprietário da AMI sempre tem permissões de execução e, portanto, não é afetado por este comando.

   ```
   aws ec2 modify-image-attribute \
       --image-id ami-0abcdef1234567890 \
       --launch-permission "Remove=[{Group=all}]"
   ```

------
#### [ PowerShell ]

Cada AMI tem uma propriedade `launchPermission` que controla quais Contas da AWS, além do proprietário, têm permissão para usar essa AMI para executar instâncias. Ao modificar a propriedade `launchPermission` da AMI, é possível torná-la pública (o que concede permissões de execução a todas as Contas da AWS) ou compartilhá-la somente com as Contas da AWS que você especificar.

É possível adicionar ou remover os IDs da lista de contas que tiverem permissões de execução para uma AMI. Para tornar a AMI pública, especifique o grupo `all`. É possível especificar permissões públicas e permissões de execução explícita.

**Para tornar um AMI pública**

1. Use o comando [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html) da seguinte forma para adicionar o grupo `all` à lista `launchPermission` para a AMI especificada.

   ```
   Edit-EC2ImageAttribute `
       -ImageId ami-0abcdef1234567890 `
       -Attribute launchPermission `
       -OperationType add `
       -UserGroup all
   ```

1. Para verificar as permissões de execução da AMI, use o seguinte comando [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html).

   ```
   Get-EC2ImageAttribute `
       -ImageId ami-0abcdef1234567890 `
       -Attribute launchPermission
   ```

1. (Opcional) Para tornar a AMI privada novamente, remova o grupo `all` de suas permissões de execução. Observe que o proprietário da AMI sempre tem permissões de execução e, portanto, não é afetado por este comando.

   ```
   Edit-EC2ImageAttribute `
       -ImageId ami-0abcdef1234567890 `
       -Attribute launchPermission `
       -OperationType remove `
       -UserGroup all
   ```

------

# Saiba mais sobre o bloqueio de acesso público para AMIs
<a name="block-public-access-to-amis"></a>

Para evitar o compartilhamento público de suas AMIs, habilite o *bloqueio de acesso público para AMIs* no nível da conta.

Quando o bloqueio de acesso público está habilitado, qualquer tentativa de tornar uma AMI pública é automaticamente bloqueada. Entretanto, se você já tiver AMIs públicas, elas permanecerão disponíveis publicamente.

Para compartilhar AMIs publicamente, é necessário desabilitar o bloqueio de acesso público. Quando você terminar de compartilhar, é uma prática recomendada reabilitar o bloqueio de acesso público para evitar qualquer compartilhamento público não intencional das suas AMIs. 

**nota**  
Essa configuração é definida no nível da conta, diretamente na conta ou usando uma política declarativa. Ela deve ser configurada em cada Região da AWS onde você desejar impedir o compartilhamento público de suas AMIs. O uso de uma política declarativa permite que você aplique a configuração em várias regiões simultaneamente, bem como em várias contas simultaneamente. Quando uma política declarativa está em uso, você não pode modificar a configuração diretamente em uma conta. Este tópico descreve como ajustar a configuração diretamente em uma conta. Para obter informações sobre o uso de políticas declarativas, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) no *Guia do usuário do AWS Organizations*.

É possível restringir as permissões do IAM a um usuário administrador para que apenas essa pessoa possa habilitar ou desabilitar o bloqueio de acesso público para AMIs.

**Topics**
+ [Configurações padrão](#block-public-access-to-amis-default-settings)
+ [Gerenciar a configuração do bloqueio de acesso público para AMIs](manage-block-public-access-for-amis.md)

## Configurações padrão
<a name="block-public-access-to-amis-default-settings"></a>

A configuração **Bloquear acesso público para AMIs** está habilitada ou desabilitada por padrão, dependendo se sua conta for nova ou existente e se você tem AMIs públicas. A tabela abaixo mostra as configurações padrão:


| Conta da AWS | Configuração padrão de bloquear acesso público para AMIs | 
| --- | --- | 
| Novas contas | Habilitado | 
|  Contas existentes sem AMIs públicas¹  | Habilitado | 
|  Contas existentes com um ou mais AMIs públicas  | Desabilitado | 

¹ Se sua conta tinha uma ou mais AMIs públicas em ou após 15 de julho de 2023, a opção **Bloquear acesso público para AMIs** estará desabilitada por padrão, mesmo que você tenha posteriormente tornado todas as AMIs privadas.

# Gerenciar a configuração do bloqueio de acesso público para AMIs
<a name="manage-block-public-access-for-amis"></a>

É possível gerenciar a configuração de bloqueio de acesso público para suas AMIs para controlar se elas podem ser compartilhadas publicamente. É possível habilitar, desabilitar ou exibir o estado atual do bloqueio de acesso público para suas AMIs usando o console do Amazon EC2 ou a AWS CLI.

## Veja o estado do bloqueio de acesso público para AMIs
<a name="get-block-public-access-state-for-amis"></a>

Para ver se o compartilhamento público de suas AMIs está bloqueado em sua conta, você pode ver o estado do bloqueio de acesso público para AMIs. Você deve visualizar o estado em cada um Região da AWS no qual deseja ver se o compartilhamento público de suas AMIs está bloqueado.

**Permissões obrigatórias**  
Para obter a configuração atual do bloqueio de acesso público para AMIs, você deve ter a permissão `GetImageBlockPublicAccessState` do IAM.

------
#### [ Console ]

**Para visualizar o estado do bloqueio de acesso público para AMIs na região especificada**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Na barra de navegação (na parte superior da tela), selecione a região na qual deseja visualizar o estado de bloqueio de acesso público para AMIs. 

1. No painel de navegação, escolha **Painel**.

1. No cartão **Atributos da conta**, em **Configurações**, escolha **Proteção e segurança de dados**.

1. Em **Block public access for AMIs (Bloquear acesso público para AMIs)**, marque o campo **Public access (Acesso público)**. O valor é **New public sharing blocked (Novo compartilhamento público bloqueado)** ou **New public sharing allowed (Novo compartilhamento público permitido)**.

------
#### [ AWS CLI ]

**Para obter o estado do bloqueio de acesso público para as AMIs**  
Use o comando [get-image-block-public-access-state](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-image-block-public-access-state.html). O valor é `block-new-sharing` ou `unblocked`.

**Exemplo: para uma região específica**

```
aws ec2 get-image-block-public-access-state --region us-east-1
```

O campo `ManagedBy` indica a entidade que definiu a configuração. Neste exemplo, `account` indica que a configuração foi definida diretamente na conta. Um valor de `declarative-policy` significaria que a configuração foi definida por uma política declarativa. Para obter mais informações, consulte [Políticas declarativas](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_declarative.html) no *Guia do Usuário do AWS Organizations*.

```
{
    "ImageBlockPublicAccessState": "block-new-sharing",
    "ManagedBy": "account"
}
```

**Exemplo: para todas as regiões em sua conta**

```
echo -e "Region   \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 get-image-block-public-access-state \
            --region $region \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

O seguinte é um exemplo de saída.

```
Region           Public Access State
--------------   ----------------------
ap-south-1       block-new-sharing
eu-north-1       unblocked
eu-west-3        block-new-sharing
...
```

------
#### [ PowerShell ]

**Para obter o estado do bloqueio de acesso público para as AMIs**  
Use o cmdlet [Get-EC2ImageBlockPublicAccessState](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageBlockPublicAccessState.html). O valor é `block-new-sharing` ou `unblocked`.

**Exemplo: para uma região específica**

```
Get-EC2ImageBlockPublicAccessState -Region us-east-1
```

O seguinte é um exemplo de saída.

```
block-new-sharing
```

**Exemplo: para todas as regiões em sua conta**

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
        [PSCustomObject]@{
            Region   = $_
            PublicAccessState = (Get-EC2ImageBlockPublicAccessState -Region $_)
        }
} | `
Format-Table -AutoSize
```

O seguinte é um exemplo de saída.

```
Region         PublicAccessState
------         -----------------
ap-south-1     block-new-sharing
eu-north-1     block-new-sharing
eu-west-3      block-new-sharing
...
```

------

## Habilite o bloqueio de acesso público para AMIs
<a name="enable-block-public-access-for-amis"></a>

Para evitar o compartilhamento público de suas AMIs, habilite o bloqueio de acesso público para AMIs no nível da conta. Você deve habilitar o bloqueio de acesso público para AMIs em cada Região da AWS na qual deseja evitar o compartilhamento público das suas AMIs. Se você já tiver AMIs públicas, elas permanecerão disponíveis publicamente.

**Permissões obrigatórias**  
Para habilitar a configuração atual do bloqueio de acesso público para AMIs, você deve ter a permissão `EnableImageBlockPublicAccess` do IAM.

**Considerações**
+ A configuração dessa opção poderá demorar até 10 minutos. Durante esse período, se você descrever o estado de acesso público, a resposta será `unblocked`. Quando a configuração for concluída, a resposta será `block-new-sharing`.

------
#### [ Console ]

**Para habilitar o bloqueio de acesso público para AMIs na região especificada**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Na barra de navegação (na parte superior da tela), selecione a região na qual deseja executar o bloqueio de acesso público para as AMIs.

1. No painel de navegação, escolha **Painel**.

1. No cartão **Atributos da conta**, em **Configurações**, escolha **Proteção e segurança de dados**.

1. Em **Block public access for AMIs (Bloquear acesso público para AMIs)**, escolha **Manage (Gerenciar)**.

1. Marque a caixa de seleção **Bloquear novos compartilhamentos públicos** e escolha **Atualizar**.

------
#### [ AWS CLI ]

**Para habilitar o bloqueio de acesso público para as AMIs**  
Use o comando [enable-image-block-public-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/enable-image-block-public-access.html).

**Exemplo: para uma região específica**

```
aws ec2 enable-image-block-public-access \
--region us-east-1 \
--image-block-public-access-state block-new-sharing
```

O seguinte é um exemplo de saída.

```
{ 
    "ImageBlockPublicAccessState": "block-new-sharing"
}
```

**Exemplo: para todas as regiões em sua conta**

```
echo -e "Region   \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 enable-image-block-public-access \
            --region $region \
            --image-block-public-access-state block-new-sharing \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

O seguinte é um exemplo de saída.

```
Region           Public Access State
--------------   ----------------------
ap-south-1       block-new-sharing
eu-north-1       block-new-sharing
eu-west-3        block-new-sharing
...
```

------
#### [ PowerShell ]

**Para habilitar o bloqueio de acesso público para as AMIs**  
Use o comando [Enable-EC2ImageBlockPublicAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Enable-EC2ImageBlockPublicAccess.html).

**Exemplo: para uma região específica**

```
Enable-EC2ImageBlockPublicAccess `
    -Region us-east-1 `
    -ImageBlockPublicAccessState block-new-sharing
```

O seguinte é um exemplo de saída.

```
Value
-----
block-new-sharing
```

**Exemplo: para todas as regiões em sua conta**

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region            = $_
        PublicAccessState = (
        Enable-EC2ImageBlockPublicAccess `
         -Region $_ `
         -ImageBlockPublicAccessState block-new-sharing)
    }
} | `
Format-Table -AutoSize
```

O seguinte é um exemplo de saída.

```
Region         PublicAccessState
------         -----------------
ap-south-1     block-new-sharing
eu-north-1     block-new-sharing
eu-west-3      block-new-sharing
...
```

------

## Desabilite o bloqueio de acesso público para AMIs
<a name="disable-block-public-access-for-amis"></a>

Para permitir que os usuários da sua conta compartilhem publicamente suas AMIs, desative o bloqueio do acesso público no nível da conta. Você deve desabilitar o bloqueio de acesso público para AMIs em cada Região da AWS na qual deseja permitir o compartilhamento público das suas AMIs. 

**Permissões obrigatórias**  
Para desabilitar a configuração atual do bloqueio de acesso público para AMIs, você deve ter a permissão `DisableImageBlockPublicAccess` do IAM.

**Considerações**
+ A configuração dessa opção poderá demorar até 10 minutos. Durante esse período, se você descrever o estado de acesso público, a resposta será `block-new-sharing`. Quando a configuração for concluída, a resposta será `unblocked`.

------
#### [ Console ]

**Para desabilitar o bloqueio de acesso público para AMIs na região especificada**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Na barra de navegação (na parte superior da tela), selecione a região na qual deseja desabilitar o bloqueio de acesso público para AMIs. 

1. No painel de navegação, escolha **Painel**.

1. No cartão **Atributos da conta**, em **Configurações**, escolha **Proteção e segurança de dados**.

1. Em **Block public access for AMIs (Bloquear acesso público para AMIs)**, escolha **Manage (Gerenciar)**.

1. Desmarque a caixa de seleção **Bloquear novos compartilhamentos públicos** e escolha **Atualizar**.

1. Insira **confirm** quando solicitado para confirmação e, em seguida, escolha **Allow public sharing** (Permitir compartilhamento público).

------
#### [ AWS CLI ]

**Para desabilitar o bloqueio de acesso público para as AMIs**  
Use o comando [disable-image-block-public-access](https://docs.aws.amazon.com/cli/latest/reference/ec2/disable-image-block-public-access.html).

**Exemplo: para uma região específica**

```
aws ec2 disable-image-block-public-access --region us-east-1
```

O seguinte é um exemplo de saída.

```
{
   "ImageBlockPublicAccessState": "unblocked"
}
```

**Exemplo: para todas as regiões em sua conta**

```
echo -e "Region   \t Public Access State" ; \
echo -e "-------------- \t ----------------------" ; \
for region in $(
    aws ec2 describe-regions \
        --region us-east-1 \
        --query "Regions[*].[RegionName]" \
        --output text
    ); 
    do (output=$(
        aws ec2 disable-image-block-public-access \
            --region $region \
            --output text)
        echo -e "$region \t $output" 
    );
done
```

O seguinte é um exemplo de saída.

```
Region           Public Access State
--------------   ----------------------
ap-south-1       unblocked
eu-north-1       unblocked
eu-west-3        unblocked
...
```

------
#### [ PowerShell ]

**Para desabilitar o bloqueio de acesso público para as AMIs**  
Use o cmdlet [Disable-EC2ImageBlockPublicAccess](https://docs.aws.amazon.com/powershell/latest/reference/items/Disable-EC2ImageBlockPublicAccess.html).

**Exemplo: para uma região específica**

```
Disable-EC2ImageBlockPublicAccess -Region us-east-1
```

O seguinte é um exemplo de saída.

```
Value
-----
unblocked
```

**Exemplo: para todas as regiões em sua conta**

```
(Get-EC2Region).RegionName | `
    ForEach-Object {
    [PSCustomObject]@{
        Region            = $_
        PublicAccessState = (Disable-EC2ImageBlockPublicAccess -Region $_)
    }
} | `
Format-Table -AutoSize
```

O seguinte é um exemplo de saída.

```
Region         PublicAccessState
------         -----------------
ap-south-1     unblocked
eu-north-1     unblocked
eu-west-3      unblocked
...
```

------

# Compartilhar uma AMI com organizações e unidades organizacionais
<a name="share-amis-with-organizations-and-OUs"></a>

 O [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services_list.html) é um serviço de gerenciamento de contas que permite consolidar várias Contas da AWS em uma só organização, que você cria e gerencia centralmente. É possível compartilhar uma AMI com uma organização ou uma unidade organizacional (UO) que você criou, além de [compartilhá-la com contas específicas](sharingamis-explicit.md).

Uma organização é uma entidade que você cria para consolidar e gerenciar suas Contas da AWS. É possível organizar as contas em uma estrutura em árvore hierárquica, com uma [raiz](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#root) no alto e [unidades organizacionais](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit) aninhadas abaixo da raiz. Cada conta pode ser adicionada diretamente na raiz ou ser colocada em uma das UOs na hierarquia. Para obter mais informações, consulte [Terminologia e conceitos das organizações da AWS](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) no *Guia do usuário do AWS Organizations*.

Quando você compartilha uma AMI com uma organização ou uma UO, todas as contas subordinadas ganham acesso à AMI. Por exemplo, no diagrama a seguir, a AMI é compartilhada com uma UO de nível superior (indicada pela seta no número **1**). Todas as UOs e contas aninhadas sob essa UO de nível superior (indicadas pela linha pontilhada no número **2**) também têm acesso à AMI. As contas na organização e UO fora da linha pontilhada (indicadas pelo número **3**) não têm acesso à AMI porque não são filhas da UO com a qual a AMI é compartilhada.

![\[A AMI é compartilhada com uma UO, e todas as UOs e contas filhas têm acesso à AMI.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/ami-share-with-orgs-and-ous.png)


**Topics**
+ [Considerações](#considerations-org-ou)
+ [Obter o ARN de uma organização ou unidade organizacional](get-org-ou-ARN.md)
+ [Permitir que organizações e UOs usem uma chave do KMS](allow-org-ou-to-use-key.md)
+ [Gerenciar o compartilhamento de uma AMI com uma organização ou uma UO](share-amis-org-ou-manage.md)

## Considerações
<a name="considerations-org-ou"></a>

Considere as informações a seguir ao compartilhar AMIs com organizações ou unidades organizacionais específicas.
+ **Propriedade**: para compartilhar uma AMI, sua Conta da AWS deve ser proprietária da AMI.
+ **Limites de compartilhamento:** o proprietário da AMI pode compartilhar uma AMI com qualquer organização ou UO, incluindo organizações e UOs às quais ele não pertence.

  Para saber o número máximo de entidades com as quais uma AMI pode ser compartilhada em uma região, consulte [Service Quotas do Amazon EC2](https://docs.aws.amazon.com//general/latest/gr/ec2-service.html#limits_ec2).
+ **Tags**: você não pode compartilhar tags definidas pelo usuário (tags que você anexa a uma AMI). Quando você compartilha uma AMI, as tags definidas pelo usuário não estão disponíveis para nenhuma Conta da AWS em uma organização ou UO com a qual a AMI é compartilhada.
+ **Formato de ARN**: ao especificar uma organização ou UO em um comando, verifique se usou o formato de ARN correto. Você receberá um erro se especificar apenas o ID, por exemplo, se você especificar apenas `o-123example` ou `ou-1234-5example`.

  Formatos corretos de ARN:
  + ARN de organização: `arn:aws:organizations::111122223333:organization/organization-id`
  + ARN de UO: `arn:aws:organizations::111122223333:ou/organization-id/ou-id`

  Em que:
  + *`111122223333`* é um exemplo do ID de conta de 12 dígitos para a conta gerencial. Se você não souber o número da conta de gerenciamento, poderá descrever a organização ou a unidade organizacional para obter o ARN, que inclui o número da conta de gerenciamento. Para obter mais informações, consulte [Obter o ARN de uma organização ou unidade organizacional](get-org-ou-ARN.md).
  + *`organization-id`* é o ID da organização, por exemplo, `o-123example`.
  + *`ou-id`* é o ID da unidade organizacional, por exemplo, `ou-1234-5example`.

  Para obter mais informações sobre o formato dos ARNs, consulte [Nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) no *Guia do usuário do IAM*.
+ **Criptografia e chaves**: é possível compartilhar AMIs que tenham snapshots criptografados e não criptografados.
  + Os snapshots criptografados devem ser criptografados com uma chave gerenciada pelo cliente. Não é possível compartilhar AMIs que tenham snapshots que sejam criptografados com a chave gerenciada pela AWS padrão.
  + Se você compartilhar uma AMI que tenha snapshots criptografados, deverá permitir que as organizações ou UOs usem as chaves gerenciadas pelo cliente que foram usadas para criptografar os snapshots. Para obter mais informações, consulte [Permitir que organizações e UOs usem uma chave do KMS](allow-org-ou-to-use-key.md).
+ **Region**: as AMIs são um recurso regional. Quando você compartilha uma AMI, ela só está disponível na região de onde foi compartilhada. Para disponibilizar uma AMI em uma região diferente, copie a AMI para a região e compartilhe-a. Para obter mais informações, consulte [Copiar uma AMI do Amazon EC2](CopyingAMIs.md).
+ **Uso**: quando você compartilha uma AMI, os usuários podem apenas iniciar instâncias pela AMI. Eles não podem excluí-la, compartilhá-la nem modificá-la. Porém, após iniciarem uma instância usando sua AMI, poderão criar uma AMI com base na instância que iniciaram.
+ **Faturamento**: você não é cobrado quando sua AMI é usada por outras Contas da AWS para executar instâncias. As contas que iniciam instâncias usando a AMI são cobradas pelas instâncias que iniciam.

# Obter o ARN de uma organização ou unidade organizacional
<a name="get-org-ou-ARN"></a>

Os ARNs de organizações e de unidades organizacionais contêm o número da conta de gerenciamento de 12 dígitos. Se você não souber o número da conta de gerenciamento, poderá descrever a organização e a unidade organizacional para obter o ARN para cada uma delas. Nos exemplos a seguir, `123456789012` é o ID da conta gerencial.

**Permissões obrigatórias**  
Antes de obter os ARNs, é necessário ter permissão para descrever organizações e unidades organizacionais. O modelo de política a seguir fornece as permissões necessárias.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "organizations:Describe*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------
#### [ AWS CLI ]

**Para obter o ARN de uma organização**  
Use o comando [https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organization.html](https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organization.html). Adicione a opção `--query` para retornar apenas o ARN da organização.

```
aws organizations describe-organization --query 'Organization.Arn'
```

O seguinte é um exemplo de saída.

```
"arn:aws:organizations::123456789012:organization/o-1234567abc"
```

**Para obter o ARN de uma unidade organizacional**  
Use o comando [https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organizational-unit.html](https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organizational-unit.html). Use o parâmetro `--query` para retornar apenas o ARN da unidade organizacional.

```
aws organizations describe-organizational-unit \
    --organizational-unit-id ou-a123-b4567890 \
    --query 'OrganizationalUnit.Arn'
```

O seguinte é um exemplo de saída.

```
"arn:aws:organizations::123456789012:ou/o-1234567abc/ou-a123-b4567890"
```

------
#### [ PowerShell ]

**Para obter o ARN de uma organização**  
Use o cmdlet [Get-ORGOrganization](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ORGOrganization.html).

```
(Get-ORGOrganization).Arn
```

O seguinte é um exemplo de saída.

```
arn:aws:organizations::123456789012:organization/o-1234567abc
```

**Para obter o ARN de uma unidade organizacional**  
Use o cmdlet [Get-ORGOrganizationalUnit](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ORGOrganizationalUnit.html).

```
(Get-ORGOrganizationalUnit -OrganizationalUnitId "ou-a123-b4567890").Arn
```

O seguinte é um exemplo de saída.

```
arn:aws:organizations::123456789012:ou/o-1234567abc/ou-a123-b4567890
```

------

# Permitir que organizações e UOs usem uma chave do KMS
<a name="allow-org-ou-to-use-key"></a>

Se você compartilhar uma AMI que tenha snapshots criptografados, também deverá permitir que as organizações ou unidades organizacionais (UOs) usem as chaves do KMS que foram usadas para criptografar os snapshots.

**nota**  
Os snapshots criptografados devem ser criptografados com uma chave *gerenciada pelo cliente*. Não é possível compartilhar AMIs que tenham snapshots que sejam criptografados com a chave gerenciada pela AWS padrão.

Para controlar o acesso à chave do KMS, na [política de chave](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), é possível usar as chaves de condição [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths) para conceder permissão somente a determinadas entidades principais para as ações especificadas. Uma entidade principal pode ser um usuário, um perfil do IAM, um usuário federado ou um usuário-raiz da Conta da AWS.

As chaves de condição são usadas da seguinte forma:
+ `aws:PrincipalOrgID`: permite qualquer entidade principal pertencente à organização representada pelo ID especificado.
+ `aws:PrincipalOrgPaths`: permite qualquer entidade principal pertencente às UOs representadas pelos caminhos especificados.

Para conceder a uma organização (incluindo as UOs e contas que pertençam a ela) permissão para usar uma chave do KMS, adicione a instrução a seguir à política de chave.

```
{
    "Sid": "Allow access for organization root",
    "Effect": "Allow",
    "Principal": "*",
    "Action": [
        "kms:Describe*",
        "kms:List*",
        "kms:Get*",
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:CreateGrant"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:PrincipalOrgID": "o-123example"
        }
    }
}
```

Para dar permissão a UOs específicas (e às contas que pertençam a elas) para usar uma chave do KMS, é possível usar uma política semelhante ao exemplo a seguir.

```
{
        "Sid": "Allow access for specific OUs and their descendants",
        "Effect": "Allow",
        "Principal": "*",
        "Action": [
            "kms:Describe*",
            "kms:List*",
            "kms:Get*",
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:ReEncrypt*",
            "kms:GenerateDataKey*",
            "kms:CreateGrant"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "aws:PrincipalOrgID": "o-123example"
            },
            "ForAnyValue:StringLike": {
                "aws:PrincipalOrgPaths": [
                    "o-123example/r-ab12/ou-ab12-33333333/*",
                    "o-123example/r-ab12/ou-ab12-22222222/*"
                ]
            }
        }
}
```

Para obter mais exemplos de instruções de condição, consulte [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths) no *Guia do usuário do IAM*. 

Para obter mais informações sobre acesso entre contas, consulte [Permissão para que usuários de outras contas usem uma chave do KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) no *Guia do desenvolvedor do AWS Key Management Service*.

# Gerenciar o compartilhamento de uma AMI com uma organização ou uma UO
<a name="share-amis-org-ou-manage"></a>

É possível gerenciar o compartilhamento de AMIs com organizações e unidades organizacionais (UO) para controlar se elas podem executar instâncias do Amazon EC2.

## Veja as organizações e as UOs com as quais uma AMI é compartilhada
<a name="decribe-ami-launch-permissions"></a>

É possível descobrir as organizações e UOs com as quais você compartilhou sua AMI.

------
#### [ Console ]

**Para verificar com quais organizações e UOs você compartilhou sua AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione sua AMI na lista, escolha a guia **Permissions** (Permissões) e role para baixo até **Shared organizations/OUs** (Organizações/UOs compartilhadas).

   Para localizar as AMIs que são compartilhadas com você, consulte [Encontre AMIs compartilhadas para usar em instâncias do Amazon EC2](usingsharedamis-finding.md).

------
#### [ AWS CLI ]

**Para verificar com quais organizações e UOs você compartilhou sua AMI**  
Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-image-attribute.html) com o atributo `launchPermission`.

```
aws ec2 describe-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute launchPermission
```

O seguinte é um exemplo de resposta.

```
{
    "ImageId": "ami-0abcdef1234567890",
    "LaunchPermissions": [
        {
            "OrganizationalUnitArn": "arn:aws:organizations::111122223333:ou/o-123example/ou-1234-5example"
        }
    ]
}
```

------
#### [ PowerShell ]

**Para verificar com quais organizações e UOs você compartilhou sua AMI**  
Use o cmdlet [Get-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2ImageAttribute.html).

```
Get-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission
```

------

## Compartilhar uma AMI com uma organização ou uma UO
<a name="share-amis-org-ou"></a>

É possível compartilhar uma AMI com uma organização ou UO

**nota**  
Você não precisa compartilhar os snapshots do Amazon EBS aos quais a AMI faz referência para compartilhar a AMI. Apenas a própria AMI precisa ser compartilhada, e o sistema fornece automaticamente à instância acesso aos snapshots do EBS referenciados para a execução. Mas, você precisa compartilhar todas as chaves do KMS usadas para criptografar os snapshots referenciados pela AMI. Para obter mais informações, consulte [Permitir que organizações e UOs usem uma chave do KMS](allow-org-ou-to-use-key.md).

------
#### [ Console ]

**Para compartilhar uma AMI com uma organização ou uma UO**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione sua AMI na lista e escolha **Actions** (Ações), **Edit AMI permissions** (Editar permissões de AMI).

1. Em **AMI availability** (Disponibilidade da AMI), escolha **Private** (Privado).

1. Próximo a **Shared organizations/OUs** (Organizações/UOs compartilhadas), escolha **Add organization/OU ARN** (Adicionar ARN de organização/UO).

1. Em **Organization/OU ARN** (ARN de organização/UO), insira o ARN da organização ou o ARN da UO com o qual você deseja compartilhar a AMI e, em seguida, escolha **Share AMI** (Compartilhar AMI). Observe que especifique o ARN completo, e não apenas o ID.

   Para compartilhar essa AMI com várias organizações ou UOs, repita essa etapa até adicionar todas as organizações ou UOs necessárias.

1. Após terminar, escolha **Save changes** (Salvar alterações).

1. (Opcional) Para visualizar as organizações ou UOs com as quais você compartilhou a AMI, selecione a AMI na lista, escolha a guia **Permissions** (Permissões) e role para baixo até **Shared organizations/OUs** Organizações/UOs compartilhadas. Para localizar as AMIs que são compartilhadas com você, consulte [Encontre AMIs compartilhadas para usar em instâncias do Amazon EC2](usingsharedamis-finding.md).

------
#### [ AWS CLI ]

**Para compartilhar uma AMI com uma organização**  
Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) para conceder à organização especificada permissões de execução para a AMI especificada.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Add=[{OrganizationArn=arn:aws:organizations::123456789012:organization/o-123example}]"
```

**Para compartilhar uma AMI com uma UO**  
O comando [modify-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) concede permissões de execução para a AMI especificada à UO especificada. Observe que especifique o ARN completo, e não apenas o ID.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Add=[{OrganizationalUnitArn=arn:aws:organizations::123456789012:ou/o-123example/ou-1234-5example}]"
```

------
#### [ PowerShell ]

Use o comando [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html) (Tools for Windows PowerShell) para compartilhar uma AMI conforme exibido nos exemplos a seguir.

**Para compartilhar uma AMI com uma organização ou uma UO**  
O comando a seguir concede permissões de execução para a AMI especificada à organização especificada.

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission `
    -OperationType add `
    -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"
```

**Para interromper o compartilhamento de uma AMI com uma organização ou uma UO**  
O comando a seguir remove as permissões de execução para a AMI especificada da organização especificada:

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission `
    -OperationType remove `
    -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"
```

**Para interromper o compartilhamento de uma AMI com todas as organizações, UOs e Contas da AWS**  
O comando a seguir remove todas as permissões de execução explícita e pública da AMI especificada. Observe que o proprietário da AMI sempre tem permissões de execução e, portanto, não é afetado por este comando.

```
Reset-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission
```

------

## Interromper o compartilhamento de uma AMI com uma organização ou uma UO
<a name="stop-sharing-amis-org-ou"></a>

É possível interromper o compartilhamento de uma AMI com uma organização ou UO.

**nota**  
Você não pode interromper o compartilhamento de uma AMI com uma conta específica se ela estiver em uma organização ou UO com a qual uma AMI é compartilhada. Se você tentar parar de compartilhar a AMI removendo as permissões de execução da conta, o Amazon EC2 retornará uma mensagem de êxito. Porém, a AMI continua sendo compartilhada com a conta.

------
#### [ Console ]

**Para interromper o compartilhamento de uma AMI com uma organização ou uma UO**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione sua AMI na lista e escolha **Actions** (Ações), **Edit AMI permissions** (Editar permissões de AMI).

1. Em **Shared organizations/OUs** (Organizações/UOs compartilhadas), selecione as organizações ou UOs com as quais você deseja parar de compartilhar a AMI e, em seguida, escolha **Remove selected** (Remover selecionado).

1. Após terminar, escolha **Save changes** (Salvar alterações).

1. (Opcional) Para confirmar que você parou de compartilhar a AMI com as organizações ou UOs, selecione a AMI na lista, escolha a guia **Permissions** (Permissões) e role para baixo até **Shared organizations/OUs** (Organizações/UOs compartilhadas).

------
#### [ AWS CLI ]

**Para interromper o compartilhamento de uma AMI com uma organização ou uma UO**  
Use o comando [modify-image-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html). Este exemplo remove da organização especificada as permissões de execução para a AMI especificada.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Remove=[{OrganizationArn=arn:aws:organizations::123456789012:organization/o-123example}]"
```

**Para interromper o compartilhamento de uma AMI com todas as organizações, UOs e Contas da AWS**  
Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/reset-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/reset-image-attribute.html). Este exemplo remove todas as permissões de execução explícita e pública da AMI especificada. Observe que o proprietário da AMI sempre tem permissões de execução e, portanto, não é afetado por este comando.

```
aws ec2 reset-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute launchPermission
```

------
#### [ PowerShell ]

**Para interromper o compartilhamento de uma AMI com uma organização ou uma UO**  
Use o cmdlet [Edit-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html). Este exemplo remove da organização especificada as permissões de execução para a AMI especificada.

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission `
    -OperationType remove `
    -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"
```

**Para interromper o compartilhamento de uma AMI com todas as organizações, UOs e Contas da AWS**  
Use o cmdlet [Reset-EC2ImageAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Reset-EC2ImageAttribute.html). Este exemplo remove todas as permissões de execução explícita e pública da AMI especificada. Observe que o proprietário da AMI sempre tem permissões de execução e, portanto, não é afetado por este comando.

```
Reset-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute LaunchPermission
```

------

# Compartilhar uma AMI com contas específicas da AWS
<a name="sharingamis-explicit"></a>

É possível compartilhar uma AMI com Contas da AWS específicas sem torná-la pública. Basta ter os IDs de Conta da AWS.

Um ID de Conta da AWS é um número de 12 dígitos, como `012345678901`, que identifica de forma exclusiva uma Conta da AWS. Para obter mais informações, consulte [View Conta da AWS identifiers](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html) no *AWS Gerenciamento de contas Reference Guide*.



## Considerações
<a name="considerations-for-sharing-AMI-with-accounts"></a>

Considere as informações a seguir ao compartilhar AMIs com Contas da AWS específicas.
+ **Propriedade**: para compartilhar uma AMI, sua Conta da AWS deve ser proprietária da AMI.
+ **Limites de compartilhamento**: para saber o número máximo de entidades com as quais uma AMI pode ser compartilhada em uma região, consulte [Service Quotas do Amazon EC2](https://docs.aws.amazon.com//general/latest/gr/ec2-service.html#limits_ec2).
+ **Tags**: você não pode compartilhar tags definidas pelo usuário (tags que você anexa a uma AMI). Quando você compartilha uma AMI, suas tags definidas pelo usuário não estão disponíveis para nenhuma Conta da AWS com a qual a AMI é compartilhada.
+ **Snapshots**: não é necessário compartilhar os snapshots do Amazon EBS referenciados por uma AMI para compartilhá-la. É possível compartilhar apenas a própria AMI, e o sistema fornecerá à instância acesso imediato aos snapshots do Amazon EBS referenciados para a inicialização. Porém, você deve compartilhar todas as chaves do KMS usadas para criptografar os snapshots referenciados por uma AMI. Para obter mais informações, consulte [Compartilhar um snapshot do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-modifying-snapshot-permissions.html) no *Guia do usuário do Amazon EBS*.
+ **Criptografia e chaves**: é possível compartilhar AMIs que tenham snapshots criptografados e não criptografados.
  + Os snapshots criptografados devem ser criptografados com uma chave do KMS. Não é possível compartilhar AMIs que tenham snapshots que sejam criptografados com a chave gerenciada pela AWS padrão.
  + Se você compartilhar uma AMI que tenha snapshots criptografados, permita que as Contas da AWS usem as chaves do KMS que foram usadas para criptografar os snapshots. Para obter mais informações, consulte [Permitir que organizações e UOs usem uma chave do KMS](allow-org-ou-to-use-key.md). Para configurar a política de chave de que você precisa para executar instâncias do Auto Scaling ao usar uma chave gerenciada pelo cliente para criptografia, consulte [Política necessária de AWS KMS key para uso com volumes criptografados](https://docs.aws.amazon.com/autoscaling/ec2/userguide/key-policy-requirements-EBS-encryption.html) no *Guia do usuário do Amazon EC2 Auto Scaling*. 
+ **Region**: as AMIs são um recurso regional. Quando você compartilha uma AMI, ela só está disponível naquela região. Para disponibilizar uma AMI em uma região diferente, copie a AMI para a região e compartilhe-a. Para obter mais informações, consulte [Copiar uma AMI do Amazon EC2](CopyingAMIs.md).
+ **Uso**: quando você compartilha uma AMI, os usuários podem apenas iniciar instâncias pela AMI. Eles não podem excluí-la, compartilhá-la nem modificá-la. Porém, após iniciarem uma instância usando a sua AMI, eles podem criar uma AMI a partir da instância deles.
+ **Cópias de AMIs compartilhadas**: se os usuários em outra conta quiserem copiar uma AMI compartilhada, você deverá conceder a eles permissões de leitura para o armazenamento que oferece suporte à AMI. Para obter mais informações, consulte [Cópia entre contas](how-ami-copy-works.md#copy-ami-across-accounts).
+ **Faturamento**: você não é cobrado quando sua AMI é usada por outras Contas da AWS para executar instâncias. As contas que iniciam instâncias usando a AMI são cobradas pelas instâncias que iniciam.

------
#### [ Console ]

**Para conceder permissões de execução explícitas**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione sua AMI na lista e escolha **Actions** (Ações), **Edit AMI permissions** (Editar permissões de AMI).

1. Selecione **Private (Privado)**.

1. Em **Shared accounts** (Contas compartilhadas), escolha **Add account ID** (Adicionar ID de conta).

1. Em **Conta da AWS ID** (ID da ), insira o ID da Conta da AWS com a qual você deseja compartilhar a AMI e, em seguida, escolha **Share AMI** (Compartilhar AMI).

   Para compartilhar essa AMI com várias contas, repita as Etapas 5 e 6 até adicionar todos os ID de conta necessários.

1. Quando concluir, escolha **Salvar alterações**.

1. (Opcional) Para visualizar os IDs de Conta da AWS com a qual você compartilhou a AMI, selecione a AMI na lista e escolha a guia **Permissions** (Permissões). Para localizar as AMIs que são compartilhadas com você, consulte [Encontre AMIs compartilhadas para usar em instâncias do Amazon EC2](usingsharedamis-finding.md).

------
#### [ AWS CLI ]

Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html) para compartilhar uma AMI conforme indicado nos exemplos a seguir.

**Para conceder permissões de execução explícitas**  
O exemplo a seguir concede permissões de execução da AMI especificada à Conta da AWS especificada.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Add=[{UserId=123456789012}]"
```

**Para remover as permissões de execução de uma conta**  
O exemplo a seguir remove permissões de execução da AMI especificada da Conta da AWS especificada.

```
aws ec2 modify-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --launch-permission "Remove=[{UserId=123456789012}]"
```

**Para remover todas as permissões de execução**  
O exemplo a seguir remove todas as permissões de execução explícita e pública da AMI especificada. Observe que o proprietário da AMI sempre tem permissões de execução e, portanto, não é afetado por este comando.

```
aws ec2 reset-image-attribute \
    --image-id ami-0abcdef1234567890 \
    --attribute launchPermission
```

------
#### [ PowerShell ]

Use o comando [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2ImageAttribute.html) (Tools for Windows PowerShell) para compartilhar uma AMI conforme exibido nos exemplos a seguir.

**Para conceder permissões de execução explícitas**  
O exemplo a seguir concede permissões de execução da AMI especificada à Conta da AWS especificada.

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 ` 
    -Attribute launchPermission `
    -OperationType add `
    -UserId "123456789012"
```

**Para remover as permissões de execução de uma conta**  
O exemplo a seguir remove permissões de execução da AMI especificada da Conta da AWS especificada.

```
Edit-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission -OperationType remove `
    -UserId "123456789012"
```

**Para remover todas as permissões de execução**  
O exemplo a seguir remove todas as permissões de execução explícita e pública da AMI especificada. Observe que o proprietário da AMI sempre tem permissões de execução e, portanto, não é afetado por este comando.

```
Reset-EC2ImageAttribute `
    -ImageId ami-0abcdef1234567890 `
    -Attribute launchPermission
```

------

# Cancelar o compartilhamento de uma AMI com sua Conta da AWS
<a name="cancel-sharing-an-AMI"></a>

Uma imagem de máquina da Amazon (AMI) pode ser [compartilhada com Contas da AWS específicas](sharingamis-explicit.md) adicionando as contas às permissões de execução da AMI. Se uma AMI tiver sido compartilhada com sua Conta da AWS e você não quiser mais compartilhá-la com sua conta, poderá remover sua conta das permissões de execução da AMI. É possível fazer isso executando o comando `cancel-image-launch-permission` da AWS CLI. Ao executar esse comando, sua Conta da AWS é removida das permissões de execução para a AMI especificada. Para localizar as AMIs que são compartilhadas com sua Conta da AWS, consulte [Encontre AMIs compartilhadas para usar em instâncias do Amazon EC2](usingsharedamis-finding.md).

É possível cancelar o compartilhamento de uma AMI com sua conta, p. ex., para reduzir a probabilidade de executar uma instância com uma AMI não utilizada ou obsoleta que tenha sido compartilhada com você. Quando você cancela o compartilhamento de uma AMI com sua conta, ela não aparece mais em nenhuma lista de AMI no console do EC2 ou na saída do comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

**Topics**
+ [Limitações](#cancel-sharing-an-AMI-limitations)
+ [Cancelar o compartilhamento de uma AMI com sua conta](#cancel-image-launch-permission)

## Limitações
<a name="cancel-sharing-an-AMI-limitations"></a>
+ É possível remover sua conta das permissões de execução de uma AMI que seja compartilhada apenas com a sua Conta da AWS. Você não pode usar `cancel-image-launch-permission` para remover sua conta das permissões de execução de uma [AMI compartilhada com uma organização ou unidade organizacional (UO)](share-amis-with-organizations-and-OUs.md) ou para remover o acesso a AMIs públicas.
+ Você não pode remover permanentemente sua conta das permissões de execução de uma AMI. O proprietário de uma AMI pode compartilhar uma AMI com sua conta novamente.
+ As AMIs são um recurso regional. Ao executar `cancel-image-launch-permission`, você deve especificar a região na qual a AMI está localizada. Especifique uma região no comando ou use a [variável de ambiente](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html) AWS\$1DEFAULT\$1REGION.
+ Somente a AWS CLI e os SDKs são compatíveis com a remoção de sua conta das permissões de execução de uma AMI. No momento, o console do EC2 não é compatível com essa ação.

## Cancelar o compartilhamento de uma AMI com sua conta
<a name="cancel-image-launch-permission"></a>

**nota**  
Após cancelar o compartilhamento de uma AMI com sua conta, você não poderá desfazer essa ação. Para recuperar o acesso à AMI, o proprietário da AMI deverá compartilhá-la com sua conta.

------
#### [ AWS CLI ]

**Para cancelar o compartilhamento de uma AMI com sua conta**  
Use o comando [https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-image-launch-permission.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-image-launch-permission.html).

```
aws ec2 cancel-image-launch-permission \
    --image-id ami-0abcdef1234567890 \
    --region us-east-1
```

------
#### [ PowerShell ]

**Para cancelar o compartilhamento de uma AMI com sua conta**  
Use o cmdlet [https://docs.aws.amazon.com/powershell/latest/reference/index.html](https://docs.aws.amazon.com/powershell/latest/reference/index.html).

```
Stop-EC2ImageLaunchPermission `
    -ImageId ami-0abcdef1234567890 `
    -Region us-east-1
```

------

# Recomendações para criar AMIs compartilhadas no Linux
<a name="building-shared-amis"></a>

Use as diretrizes a seguir para reduzir a superfície de ataque e melhorar a confiabilidade das AMIs criadas.

**Importante**  
Nenhuma lista de diretrizes de segurança consegue ser exaustiva. Crie suas AMIs compartilhadas cuidadosamente e tire um tempo para considerar onde é possível expor dados confidenciais.

**Topics**
+ [Desabilitar logins remotos com senha para o usuário raiz](#public-amis-disable-password-logins-for-root)
+ [Desabilitar o acesso à raiz local](#restrict-root-access)
+ [Remover pares de chave do host SSH](#remove-ssh-host-key-pairs)
+ [Instalação de credenciais de chave pública](#public-amis-install-credentials)
+ [Desabilitação de verificações de DNS para SSHD (opcional)](#public-amis-disable-ssh-dns-lookups)
+ [Remover dados confidenciais](#public-amis-protect-yourself)

Se você estiver criando AMIs para o AWS Marketplace, consulte [Práticas recomendadas para a criação de AMIs](https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html) no *Guia do vendedor do AWS Marketplace* para obter diretrizes, políticas e práticas recomendadas.

## Desabilitar logins remotos com senha para o usuário raiz
<a name="public-amis-disable-password-logins-for-root"></a>

Usar uma senha de raiz fixa com uma AMI pública é um risco de segurança que pode rapidamente ficar conhecido. Até mesmo depender dos usuários para alterar a senha depois do primeiro login abre uma pequena janela de oportunidade para potencial abuso. 

Para resolver esse problema, desabilite logins remotos com senha para o usuário raiz.

**Para desabilitar logins remotos com senha para o usuário raiz**

1. Abra o arquivo `/etc/ssh/sshd_config` com um editor de texto e localize a seguinte linha:

   ```
   #PermitRootLogin yes
   ```

1. Altere a linha para:

   ```
   PermitRootLogin without-password
   ```

   O local desse arquivo de configuração pode diferir para sua distribuição ou se você não estiver executando OpenSSH. Se esse for o caso, consulte a documentação apropriada. 

## Desabilitar o acesso à raiz local
<a name="restrict-root-access"></a>

Quando você trabalha com AMIs compartilhadas, a prática recomendada é desabilitar logins diretos na raiz. Para isso, faça login na sua instância em execução e emita o seguinte comando:

```
[ec2-user ~]$ sudo passwd -l root
```

**nota**  
Esse comando não afeta o uso de `sudo`.

## Remover pares de chave do host SSH
<a name="remove-ssh-host-key-pairs"></a>

 Se você pretende compartilhar uma AMI derivada de uma AMI pública, remova os pares de chaves do host SSH existentes localizadas em `/etc/ssh`. Isso força o SSH a gerar novos pares de chaves SSH exclusivos quando alguém executar uma instância usando sua AMI, melhorando a segurança e reduzindo a probabilidade de ataques "man-in-the-middle". 

Elimine todos os arquivos de chave a seguir presentes no seu sistema.
+  ssh\$1host\$1dsa\$1key 
+  ssh\$1host\$1dsa\$1key.pub 
+  ssh\$1host\$1key 
+  ssh\$1host\$1key.pub 
+  ssh\$1host\$1rsa\$1key 
+  ssh\$1host\$1rsa\$1key.pub 
+ ssh\$1host\$1ecdsa\$1key
+ ssh\$1host\$1ecdsa\$1key.pub
+ ssh\$1host\$1ed25519\$1key
+ ssh\$1host\$1ed25519\$1key.pub

É possível remover com segurança todos esses arquivos com o comando a seguir.

```
[ec2-user ~]$ sudo shred -u /etc/ssh/*_key /etc/ssh/*_key.pub
```

**Atenção**  
Utilitários de exclusão segura, como **shred**, podem não remover todas as cópias de um arquivo da sua mídia de armazenamento. Podem ser criadas cópias ocultas de arquivos ao criar registros dos sistemas de arquivos (incluindo Amazon Linux padrão ext4), snapshots, backups, RAID e cache temporário. Para obter mais informações, consulte a [documentação de shred](https://www.gnu.org/software/coreutils/manual/html_node/shred-invocation.html).

**Importante**  
Se você se esquecer de remover o par de chaves existente do host SSH da AMI pública, nosso processo de auditoria de rotina notificará você e todos os clientes que executam instâncias da sua AMI sobre o risco potencial à segurança. Após um breve período de carência, marcamos a AMI como privada. 

## Instalação de credenciais de chave pública
<a name="public-amis-install-credentials"></a>

Depois de configurar a AMI para impedir o login usando uma senha, é necessário garantir que os usuários possam fazer login usando outro mecanismo. 

O Amazon EC2 permite que os usuários especifiquem um nome de par de chaves público-privado ao executarem uma instância. Quando um nome válido de par de chaves for fornecido para a chamada de API `RunInstances` (ou pelas ferramentas de API da linha de comando), a chave pública (a parte do par de chaves que o Amazon EC2 retém no servidor depois de uma chamada para `CreateKeyPair` ou `ImportKeyPair`) será disponibilizada para a instância por meio de uma consulta HTTP contra os metadados de instância. 

Para fazer login com SSH, sua AMI deve recuperar o valor da chave na inicialização e anexá-la a `/root/.ssh/authorized_keys` (ou o equivalente para qualquer outra conta de usuário na AMI). Os usuários podem executar instâncias da sua AMI com um par de chaves e fazer login sem exigir uma senha raiz. 

Muitas distribuições, inclusive Amazon Linux e Ubuntu, usam o pacote `cloud-init` para injetar credenciais de chave pública a um usuário configurado. Se sua distribuição não oferecer suporte a `cloud-init`, é possível adicionar o código a seguir a um script de inicialização do sistema (como `/etc/rc.local`) para puxar a chave pública especificada na execução para o usuário raiz.

**nota**  
No exemplo a seguir, o endereço IP do http://169.254.169.254/ é um endereço local de link e é válido apenas a partir da instância.

------
#### [ IMDSv2 ]

```
if [ ! -d /root/.ssh ] ; then
        mkdir -p /root/.ssh
        chmod 700 /root/.ssh
fi
# Fetch public key using HTTP
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/public-keys/0/openssh-key > /tmp/my-key
if [ $? -eq 0 ] ; then
        cat /tmp/my-key >> /root/.ssh/authorized_keys
        chmod 700 /root/.ssh/authorized_keys
        rm /tmp/my-key
fi
```

------
#### [ IMDSv1 ]

```
if [ ! -d /root/.ssh ] ; then
        mkdir -p /root/.ssh
        chmod 700 /root/.ssh
fi
# Fetch public key using HTTP
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /tmp/my-key
if [ $? -eq 0 ] ; then
        cat /tmp/my-key >> /root/.ssh/authorized_keys
        chmod 700 /root/.ssh/authorized_keys
        rm /tmp/my-key
fi
```

------

 Isso pode se aplicar a qualquer usuário; não precisa ficar restrito ao `root`.

**nota**  
Reempacotar uma instância baseada nessa AMI inclui a chave com a qual ela foi executada. Para evitar a inclusão de chaves, é necessário desmarcar (ou excluir) o arquivo `authorized_keys` ou excluir esse arquivo do reempacotamento. 

## Desabilitação de verificações de DNS para SSHD (opcional)
<a name="public-amis-disable-ssh-dns-lookups"></a>

Desabilitar as verificações de DNS sshd enfraquece levemente a segurança de sshd. Contudo, se uma solução de DNS falhar, o login de SSH continuará funcionando. Se você não desabilitar verificações de sshd, falhas de resolução de DNS impedirão todos os logins. 

**Para desabilitar as verificações de DNS sshd**

1. Abra o arquivo `/etc/ssh/sshd_config` com um editor de texto e localize a seguinte linha:

   ```
   #UseDNS yes
   ```

1. Altere a linha para: 

   ```
   UseDNS no
   ```

**nota**  
O local desse arquivo de configuração pode diferir para sua distribuição ou se você não estiver executando OpenSSH. Se esse for o caso, consulte a documentação apropriada. 

## Remover dados confidenciais
<a name="public-amis-protect-yourself"></a>

Não recomendamos armazenar dados confidenciais ou software em nenhuma AMI compartilhada. Os usuários que executarem uma AMI compartilhada podem ser capazes de reempacotá-la e registrá-la como própria. Siga estas diretrizes para ajudá-lo a evitar alguns riscos de segurança facilmente negligenciados: 
+ Recomendamos usar a opção `--exclude directory` em `ec2-bundle-vol` para ignorar todos os diretórios e subdiretórios que contêm informações secretas que você não gostaria de incluir no seu pacote. Mais especificamente, exclua todos os arquivos `authorized_keys` de pares de chaves públicas/privadas e SSH de propriedade do usuário ao empacotar a imagem. As AMIs públicas da Amazon os armazenam na `/root/.ssh` do usuário raiz e `/home/user_name/.ssh/` para os usuário regulares. Para obter mais informações, consulte [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol).
+ Sempre exclua o histórico do shell antes de empacotar. Se você tentar fazer mais de um upload de bundle na mesma AMI, o histórico do shell conterá sua chave de acesso. O exemplo a seguir deve ser o último comando executado antes de empacotar na instância.

  ```
  [ec2-user ~]$ shred -u ~/.*history
  ```
**Atenção**  
As limitações de **shred** descritas no alerta acima aplicam-se aqui também.   
Esteja ciente de que, ao sair, o bash grava o histórico da sessão atual no disco. Se você fizer logout da sua instância após a exclusão de `~/.bash_history`, e depois fizer login de volta, descobrirá que `~/.bash_history` foi recriado e contém todos os comandos executados durante a sessão anterior.  
Outros programas além do bash também gravam históricos no disco. Use com cuidado e remova ou exclua arquivos-ponto ou diretórios-ponto desnecessários.
+ O empacotamento de uma instância em execução requer sua chave privada e o certificado X.509. Coloque essas e outras credenciais em um local que não seja empacotado (como armazenamento de instâncias).

# Monitorar eventos da AMI usando o Amazon EventBridge
<a name="monitor-ami-events"></a>

Quando o estado de uma imagem de máquina da Amazon (AMI) muda, o Amazon EC2 gera um evento que é enviado para o Amazon EventBridge (anteriormente conhecido como Amazon CloudWatch Events). Os eventos são enviados para o barramento de eventos do EventBridge padrão no formato JSON. É possível usar o Amazon EventBridge para detectar e reagir a esses eventos. Você faz isso criando regras no EventBridge que acionem uma ação em resposta a um evento. Por exemplo, é possível criar uma regra do EventBridge que detecte quando o processo de criação da AMI foi concluído e, em seguida, invoque um tópico do Amazon SNS para enviar uma notificação por email para você.

O Amazon EC2 gera um evento `EC2 AMI State Change` quando uma AMI entra em qualquer um dos seguintes estados:
+ `available`
+ `failed`
+ `deregistered`
+ `disabled`

Os eventos são gerados com base no melhor esforço.

A tabela abaixo mostra as operações da AMI e os estados que podem ser atribuídos a ela. Na tabela, **Sim** indica os estados que podem ser atribuídos à AMI ao executar a operação correspondente.


| Operações da AMI | available | failed | deregistered | disabled | 
| --- | --- | --- | --- | --- | 
| CopyImage | Sim | Sim |  |  | 
|  CreateImage  |  Sim  |  Sim  |  |  | 
|  CreateRestoreImageTask  | Sim | Sim |  |  | 
| DeregisterImage |  |  |  Sim  |  | 
|  DisableImage  |  |  |  |  Sim  | 
|  EnableImage  |  Sim  |  |  |  | 
| RegisterImage | Sim | Sim |  |  | 

**EC2 AMI State ChangeEventos do **
+ [Detalhes do evento](#ami-events)
+ [availableEventos do](#ami-event-available)
+ [failedEventos do](#ami-event-failed)
+ [deregisteredEventos do](#ami-event-deregistered)
+ [disabledEventos do](#ami-event-disabled)

## Detalhes do evento
<a name="ami-events"></a>

Você pode usar os seguintes campos no evento para criar regras que acionem uma ação:

`"source": "aws.ec2"`  
Identifica que o evento é do Amazon EC2.

`"detail-type": "EC2 AMI State Change"`  
Identifica o nome do evento.

`"detail": { "ImageId": "ami-0abcdef1234567890", "State": "available", }`  
Fornece o ID e o estado da AMI (`available`, `failed`, `deregistered` ou `disabled`).

Para obter mais informações, consulte os seguintes tópicos no *Guia do usuário do Amazon EventBridge*:
+ [Eventos do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html)
+ [Padrões de eventos do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)
+ [Regras do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html)

Para obter um tutorial sobre como criar uma função do Lambda e uma regra do EventBridge que execute a função do Lambda, consulte [Tutorial: Log the state of an Amazon EC2 instance using EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-log-ec2-instance-state.html) no *Guia do desenvolvedor do AWS Lambda*.

## availableEventos do
<a name="ami-event-available"></a>

Veja a seguir um exemplo de um evento que o Amazon EC2 gera quando a AMI entra no estado `available` após uma operação de `CreateImage`, `CopyImage`, `RegisterImage`, `CreateRestoreImageTask` ou `EnableImage` com êxito.

`"State": "available"` indica que a operação teve êxito.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "available",
        "ErrorMessage": ""
    }
}
```

## failedEventos do
<a name="ami-event-failed"></a>

Veja a seguir um exemplo de um evento que o Amazon EC2 gera quando a AMI entra no estado `failed` após uma operação de `CreateImage`, `CopyImage`, `RegisterImage` ou `CreateRestoreImageTask` com êxito.

Os campos a seguir fornecem informações pertinentes:
+ `"State": "failed"`: indica que a operação falhou.
+ `"ErrorMessage": ""`: Fornece o motivo da operação com falha.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "failed",
        "ErrorMessage": "Description of failure"
    }
}
```

## deregisteredEventos do
<a name="ami-event-deregistered"></a>

Veja a seguir um exemplo de um evento que o Amazon EC2 gera quando a AMI entra no estado `deregistered` após uma operação de `DeregisterImage` com êxito. Se a operação falhar, nenhum evento será gerado. Qualquer falha será conhecida imediatamente, pois `DeregisterImage` é uma operação síncrona.

`"State": "deregistered"` indica que a operação `DeregisterImage` teve êxito.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "deregistered",
        "ErrorMessage": ""
    }
}
```

## disabledEventos do
<a name="ami-event-disabled"></a>

Veja a seguir um exemplo de um evento que o Amazon EC2 gera quando a AMI entra no estado `disabled` após uma operação de `DisableImage` com êxito. Se a operação falhar, nenhum evento será gerado. Qualquer falha será conhecida imediatamente, pois `DisableImage` é uma operação síncrona.

`"State": "disabled"` indica que a operação `DisableImage` teve êxito.

```
{
    "version": "0",
    "id": "example-9f07-51db-246b-d8b8441bcdf0",
    "detail-type": "EC2 AMI State Change",
    "source": "aws.ec2",
    "account": "012345678901",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-1",
    "resources": ["arn:aws:ec2:us-east-1::image/ami-0abcdef1234567890"],
    "detail": {
        "RequestId": "example-9dcc-40a6-aa77-7ce457d5442b",
        "ImageId": "ami-0abcdef1234567890",
        "State": "disabled",
        "ErrorMessage": ""
    }
}
```

# Noções básicas sobre as informações de faturamento da AMI
<a name="ami-billing-info"></a>

Há muitas Imagens de máquina da Amazon (AMIs) para escolher ao executar suas instâncias e elas oferecem suporte a uma variedade de plataformas e recursos do sistema operacional. Para entender como a AMI escolhida ao executar sua instância afeta os resultados da sua fatura da AWS, é possível pesquisar a plataforma do sistema operacional associada e as informações de faturamento. Faça isso antes de executar qualquer on-demand ou Instâncias spot, ou comprar uma Instância reservada. 

Aqui estão dois exemplos de como pesquisar sua AMI com antecedência pode ajudá-lo a escolher a AMI que melhor se adapte às suas necessidades:
+ Para Instâncias spot, é possível usar os **detalhes da plataforma** da AMI para confirmar se há suporte à AMI para Instâncias spot.
+ Ao comprar uma Instância reservada, é possível certificar-se de selecionar a plataforma do sistema operacional (**Plataforma**) que mapeia para os **detalhes da Plataforma** AMI.

Para obter mais informações sobre a definição de instâncias, consulte [Definição de preço do Amazon EC2](https://aws.amazon.com/ec2/pricing/).

**Topics**
+ [Campos de informações de faturamento da AMI](billing-info-fields.md)
+ [Localizando detalhes de faturamento e uso da AMI](view-billing-info.md)
+ [Verificar cobranças da AMI em sua fatura](verify-ami-charges.md)

# Campos de informações de faturamento da AMI
<a name="billing-info-fields"></a>

Os campos a seguir fornecem informações de faturamento associadas a uma AMI:

Detalhes da plataforma  
 Os detalhes da plataforma associada ao código de faturamento da AMI. Por exemplo, .`Red Hat Enterprise Linux`

Operação de uso  
A operação da instância do Amazon EC2 e o código de faturamento associado à AMI. Por exemplo, .`RunInstances:0010` A **Usage operation** (Operação de uso) corresponde à coluna [lineitem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation) (lineitem/Operação) no seu Relatório de custos e uso (CUR) da AWS e na [API de tabela de preços da AWS](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html).

É possível visualizar esses campos na página **Instâncias** ou **AMIs** no console do Amazon EC2 ou na resposta retornada pelo comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) ou [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

## Dados de amostra: operação de uso por plataforma
<a name="billing-info"></a>

A tabela a seguir lista os detalhes da plataforma e os valores de operação de uso que podem ser exibidos na página **Instâncias** ou **AMIs** no console do Amazon EC2 ou na resposta retornada pelo comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) ou [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).


| Detalhes da plataforma | Operação de uso 2 | 
| --- | --- | 
|  Linux/UNIX  |  RunInstances  | 
|  Red Hat BYOL Linux  |  RunInstances:00g0 3  | 
|  Red Hat Enterprise Linux  |  RunInstances:0010  | 
|  Red Hat Enterprise Linux with HA  |  RunInstances:1010  | 
|  Red Hat Enterprise Linux with SQL Server Standard and HA  |  RunInstances:1014  | 
|  Red Hat Enterprise Linux with SQL Server Enterprise and HA  |  RunInstances:1110  | 
|  Red Hat Enterprise Linux with SQL Server Standard  |  RunInstances:0014  | 
|  Red Hat Enterprise Linux with SQL Server Web  |  RunInstances:0210  | 
|  Red Hat Enterprise Linux with SQL Server Enterprise  |  RunInstances:0110  | 
|  SQL Server Enterprise  |  RunInstances:0100  | 
|  SQL Server Standard  |  RunInstances:0004  | 
|  SQL Server Web  |  RunInstances:0200  | 
|  SUSE Linux  |  RunInstances:000g  | 
| Ubuntu Pro |  RunInstances:0g00  | 
|  Windows  |  RunInstances:0002  | 
|  Windows BYOL  |  RunInstances:0800  | 
|  Windows with SQL Server Enterprise 1  |  RunInstances:0102  | 
|  Windows with SQL Server Standard 1  |  RunInstances:0006  | 
|  Windows with SQL Server Web 1  |  RunInstances:0202  | 

1 Se duas licenças de software estiverem associadas a uma AMI, o campo **Detalhes da plataforma** mostrará ambas.

2 Se você estiver executando instâncias spot, o item [https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation) no Relatório de Custos e Uso da AWS poderá ser diferente do valor da **Operação de uso** listado aqui. Por exemplo, se `[lineitem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation)` exibir `RunInstances:0010:SV006`, significa que o Amazon EC2 está executando a instância spot do Red Hat Enterprise Linux por hora no Leste dos EUA (Norte da Virgínia) na Zona 6.

3 Isso aparece como RunInstances (Linux/UNIX) em seus relatórios de uso.

# Localizando detalhes de faturamento e uso da AMI
<a name="view-billing-info"></a>

As propriedades a seguir podem ajudar a verificar as cobranças da AMI em sua fatura:
+ **Detalhes da plataforma**
+ **Operação de uso**
+ **ID DA AMI**

------
#### [ Console ]

**Para encontrar as informações de cobrança de AMI para uma AMI**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **AMIs**.

1. Selecione a AMI.

1. Na guia **Detalhes**, vá para **Detalhes da plataforma** e **Operação de uso**.

**Para encontrar as informações de cobrança de AMI para uma instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Selecione a instância.

1. Na guia **Detalhes**, expanda **Detalhes da instância** e vá para **Detalhes da plataforma** e **Operação de uso**.

------
#### [ AWS CLI ]

**Para encontrar as informações de cobrança de AMI para uma AMI**  
Use o comando [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query "Images[].{PlatformDetails:PlatformDetails,UsageOperation:UsageOperation}"
```

Veja a seguir um exemplo de saída de uma AMI do Linux.

```
[
    {
        "PlatformDetails": "Linux/UNIX",
        "UsageOperation": "RunInstances"
    }
]
```

**Para encontrar as informações de cobrança de AMI para uma instância**  
Use o comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[].Instances[].{PlatformDetails:PlatformDetails,UsageOperation:UsageOperation}"
```

Este é um exemplo de saída de uma instância do Windows.

```
[
    {
        "PlatformDetails": "Windows",
        "UsageOperation": "RunInstances:0002"
    }
]
```

------
#### [ PowerShell ]

**Para encontrar as informações de cobrança de AMI para uma AMI**  
Use o cmdlet [Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
Get-EC2Image `
    -ImageId ami-0abcdef1234567890 | `
    Format-List PlatformDetails, UsageOperation
```

Veja a seguir um exemplo de saída de uma AMI do Linux.

```
PlatformDetails : Linux/UNIX
UsageOperation  : RunInstances
```

**Para encontrar as informações de cobrança de AMI para uma instância**  
Use o cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance `
    -InstanceId i-1234567890abcdef0).Instances | `
    Format-List PlatformDetails, UsageOperation
```

Este é um exemplo de saída de uma instância do Windows.

```
PlatformDetails : Windows
UsageOperation  : RunInstances:0002
```

------

# Verificar cobranças da AMI em sua fatura
<a name="verify-ami-charges"></a>

Para garantir que você não incorra em custos não planejados, verifique se as informações de faturamento de uma instância no Relatório de custos e uso (CUR) da AWS correspondem às informações de faturamento associadas à AMI que você usou para executar a instância.

Para confirmar as informações de faturamento, localize o ID da instância no CUR e verifique o valor correspondente na coluna `[lineitem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation)`. O valor deve corresponder ao valor da **Usage operation** (Operação de uso) associada à AMI.

Por exemplo, a AMI `ami-0123456789EXAMPLE` tem as seguintes informações de faturamento:
+ **Detalhes da plataforma** = `Red Hat Enterprise Linux`
+ **Operação de uso** = `RunInstances:0010`

Se você executou uma instância usando essa AMI, poderá localizar o ID da instância no CUR e verificar o valor correspondente na coluna `[lineitem/Operation](https://docs.aws.amazon.com/cur/latest/userguide/Lineitem-columns.html#Lineitem-details-O-Operation)`. Neste exemplo, o valor deve ser `RunInstances:0010`.

# Cotas da AMI no Amazon EC2
<a name="ami-quotas"></a>

As cotas a seguir se aplicam à criação e ao compartilhamento de AMIs. Estas cotas são aplicáveis por Região da AWS.


****  

| Nome da cota | Descrição | Cota padrão por região | 
| --- | --- | --- | 
| AMIs | O número máximo de AMIs públicas e privadas permitido por região. Isso inclui AMIs disponíveis, pendentes e desabilitadas e AMIs na Lixeira. | 50.000 | 
| AMIs públicas | O número máximo de AMIs públicas, inclusive AMIs públicas na Lixeira, permitido por região. | 5 | 
| Compartilhamento de AMIs | O número máximo de entidades (organizações, unidades organizacionais [UOs] e contas) com as quais uma AMI pode ser compartilhada em uma região. Se você compartilhar uma AMI com uma organização ou UO, o número de contas na organização ou na UO não contará para a cota. | 1.000 | 

Se exceder suas cotas e quiser criar ou compartilhar mais AMIs, você poderá fazer o seguinte:
+ Se você exceder sua cota de AMIs total ou de AMIs públicas, considere cancelar o registro de imagens não usadas.
+ Se você exceder sua cota de AMIs públicas, considere tornar uma ou mais AMIs públicas privadas.
+ Se você exceder sua cota de compartilhamento de AMIs, considere compartilhar suas AMIs com uma organização ou UO em vez de contas separadas.
+ Solicite um aumento de cota para AMIs.

## Solicitar um aumento de cota para AMIs
<a name="request-ami-quota-increase"></a>

Se precisar exceder a cota padrão de AMIs, solicite um aumento de cota.

**Para solicitar um aumento de cota para AMIs**

1. Abra o console Service Quotas em [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/).

1. No painel de navegação, selecione **serviços da AWS**.

1. Escolha **Amazon Elastic Compute Cloud (Amazon EC2)** na lista ou digite o nome do serviço na caixa de pesquisa.

1. Escolha a cota da AMI para solicitar um aumento. As cotas da AMI que você pode selecionar são:
   + AMIs
   + AMIs públicas
   + Compartilhamento de AMI

1. Selecione **Solicitar aumento de cota**.

1. Em **Change quota value** (Alterar valor da cota), insira o novo valor da cota e escolha **Request** (Solicitar).

Para exibir quaisquer solicitações pendentes ou resolvidas recentemente, escolha **Dashboard (Painel)** no painel de navegação. Para solicitações pendentes, escolha o status da solicitação para abrir o recibo da solicitação. O status inicial de uma solicitação é **Pending** (Pendente). Depois que o status for alterado para **Quota requested** (Cota solicitada), você verá o número do caso em **Support Center case number** (Número do caso no Support Center). Escolha o número do caso para abrir o tíquete de sua solicitação.

Depois que a solicitação é resolvida, o **Applied quota value (Valor da cota aplicada)** para a cota é definido como o novo valor.

Para obter mais informações, consulte o [Manual do usuário do Service Quotas](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).