

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

------