

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

------