

# Gerenciar os endereços IPv4 para as instâncias do EC2
<a name="working-with-ip-addresses"></a>

É possível atribuir um endereço IPv4 à instância ao executá-la. É possível ver os endereços IPv4 no console nas páginas **Instances** (Instâncias) ou **Network Interfaces** (Interfaces de rede).

**Topics**
+ [Atribuir um endereço IPv4 público na inicialização](#public-ip-addresses)
+ [Atribuir um endereço IPv4 privado na inicialização](#assign-private-ipv4-address)
+ [Visualizar o endereço IPv4 primário](#view-instance-ipv4-addresses)
+ [Visualizar os endereços IPv4 usando metadados de instância](#view-instance-ipv4-addresses-imds)

## Atribuir um endereço IPv4 público na inicialização
<a name="public-ip-addresses"></a>

Toda sub-rede tem um atributo que determina se as instâncias executadas nessa sub-rede recebem um endereço IP público. Por padrão, as sub-redes não padrão têm esse atributo definido como false, e as sub-redes padrão têm esse atributo definido como true. Quando você executa uma instância, um recurso de endereçamento IPv4 público também está disponível para controlar se a instância está atribuída a um endereço IPv4 público. É possível substituir o comportamento padrão do atributo de endereçamento IP da sub-rede. O endereço IPv4 público é atribuído no grupo de endereços IPv4 públicos da Amazon, e é atribuído à interface de rede com o índice de dispositivo 0. Esse recurso depende de determinadas condições no momento em que você executa a instância. 

**Considerações**
+ É possível cancelar a atribuição do endereço IP público da sua instância após a execução [gerenciando os endereços IP associados a uma interface de rede](managing-network-interface-ip-addresses.md). Para mais informações sobre endereços IPv4 públicos, consulte [Endereços IPv4 públicos](using-instance-addressing.md#concepts-public-addresses).
+ Você não pode atribuir automaticamente um endereço IP público se especificar mais de uma interface de rede. Além disso, você não pode substituir a configuração da sub-rede usando o atributo de atribuição automática de endereço IP público, se especificar uma interface de rede existente com o índice de dispositivo 0.
+ Independentemente de você atribuir ou não um endereço IP público à instância ao iniciá-la, é possível associar um endereço IP elástico à instância depois que ela for executada. Para obter mais informações, consulte [Endereços IP elásticos](elastic-ip-addresses-eip.md). Também é possível modificar o comportamento do endereçamento IPv4 público da sub-rede. Para obter mais informações, consulte [Modificar o atributo de endereçamento IPv4 público para a sub-rede](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-public-ip.html).

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

**Para atribuir um endereço IPv4 público na inicialização**  
Siga o procedimento para [iniciar uma instância](ec2-launch-instance-wizard.md) e, ao definir as [Network Settings](ec2-instance-launch-parameters.md#liw-network-settings) (Configurações de rede), escolha a opção **Auto-assign Public IP** (Atribuir IP público automaticamente).

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

**Para atribuir um endereço IPv4 público na inicialização**  
Use o comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) com a opção `--associate-public-ip-address`.

```
--associate-public-ip-address
```

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

**Para atribuir um endereço IPv4 público na inicialização**  
Use o cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) com o parâmetro `-AssociatePublicIp`.

```
-AssociatePublicIp $true
```

------

## Atribuir um endereço IPv4 privado na inicialização
<a name="assign-private-ipv4-address"></a>

É possível especificar um endereço IPv4 privado no intervalo de endereços IPv4 da sub-rede ou deixar que o Amazon EC2 escolha um para você. Esse endereço é atribuído à interface de rede primária.

Para atribuir endereços IPv4 após a inicialização, consulte [Atribuir endereços IP secundários a uma instância](instance-secondary-ip-addresses.md#assign-secondary-ip-address).

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

**Para atribuir um endereço IPv4 privado na inicialização**  
Siga o procedimento para [iniciar uma instância](ec2-launch-instance-wizard.md). Ao definir [Configurações de rede](ec2-instance-launch-parameters.md#liw-network-settings), expanda **Configuração avançada de rede** e insira um valor para **IP primário**.

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

**Para atribuir um endereço IPv4 privado na inicialização**  
Use o comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) com a opção `--private-ip-address`.

```
--private-ip-addresses 10.251.50.12
```

Para permitir que o Amazon EC2 escolha o endereço IP, omita essa opção.

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

**Para atribuir um endereço IPv4 privado na inicialização**  
Use o cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) com o parâmetro `-PrivateIpAddress`.

```
-PrivateIpAddress 10.251.50.12
```

Para permitir que o Amazon EC2 escolha o endereço IP, omita esse parâmetro.

------

## Visualizar o endereço IPv4 primário
<a name="view-instance-ipv4-addresses"></a>

O endereço IPv4 público é exibido como uma propriedade da interface de rede no console, mas é mapeado para o endereço IPv4 privado primário por meio da NAT. Portanto, se você inspecionar as propriedades da interface de rede na instância, por exemplo, por meio do `ifconfig` (Linux) ou do `ipconfig` (Windows), o endereço IPv4 público não será exibido.

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

**Para visualizar os endereços IPv4 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, escolha **Instances (Instâncias)**.

1. Selecione a instância.

1. Na guia **Rede**, encontre **Endereço IPv4 público** e **Endereço IPv4 privado**. 

1. (Opcional) A guia **Rede** também contém as interfaces de rede e os endereços IP elásticos da instância.

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

**Para visualizar o endereço IPv4 primário de 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[].PrivateIpAddress" \
    --output text
```

O seguinte é um exemplo de saída.

```
10.251.50.12
```

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

**Para visualizar o endereço IPv4 primário de 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.PrivateIpAddress
```

O seguinte é um exemplo de saída.

```
10.251.50.12
```

------

## Visualizar os endereços IPv4 usando metadados de instância
<a name="view-instance-ipv4-addresses-imds"></a>

Você pode obter os endereços IPv4 para a instância recuperando os metadados da instância. Para obter mais informações, consulte [Usar metadados da instância para gerenciar a instância do EC2](ec2-instance-metadata.md).

**Para visualizar os endereços IPv4 usando metadados de instância**

1. Conecte-se à sua instância. Para obter mais informações, consulte [Conexão com a instância do EC2](connect.md).

1. Execute um dos seguintes comandos:

------
#### [ 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/local-ipv4
   ```

**Windows**  
Execute o seguinte comando em 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/local-ipv4
   ```

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

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

   ```
   curl http://169.254.169.254/latest/meta-data/local-ipv4
   ```

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

   ```
   Invoke-RestMethod http://169.254.169.254/latest/meta-data/local-ipv4
   ```

------

1. Use um dos seguintes comandos para acessar o endereço IP público. Se houver um endereço IP elástico associado à instância, o comando retornará o endereço IP elástico.

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

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

   ```
   [ec2-user ~]$ 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-ipv4
   ```

**Windows**  
Execute o seguinte comando em 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/public-ipv4
   ```

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

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

   ```
   curl http://169.254.169.254/latest/meta-data/public-ipv4
   ```

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

   ```
   Invoke-RestMethod http://169.254.169.254/latest/meta-data/public-ipv4
   ```

------