

# Atualizar as políticas do IAM para IPv6
<a name="security_iam_cwim_security-ipv6-upgrade"></a>

Os clientes do Monitor de Internet usam políticas do IAM para definir um intervalo permitido de endereços IP e impedir que qualquer endereço IP fora do intervalo configurado possa acessar APIs do Monitor de Internet.

O endpoint *internetmonitor.{{region}}.api.aws*, no qual você acessa as APIs do Monitor de Internet, está sendo atualizado para compatibilidade com pilha dupla (IPv4 e IPv6). 

As políticas de filtragem de endereços IP que não estiverem atualizadas para processar endereços IPv6 poderão resultar na perda de acesso de clientes às APIs do Monitor de Internet. 

## Clientes afetados pela atualização para inclusão de IPv6
<a name="customers-impacted"></a>

Os clientes que estiverem usando pilha dupla com políticas que contenham o filtro *aws:sourceIp* são afetados por essa atualização. A pilha dupla significa que a rede é compatível com IPv4 e IPv6. 

Se você usar pilha dupla, será necessário atualizar as políticas do IAM atualmente configuradas com endereços no formato IPv4 para incluir endereços no formato IPv6. 

O seguinte resume as ações recomendadas, dependendo do seu cenário. Para confirmar o endpoint que seu SDK usa, consulte [Identify the Internet Monitor endpoint used by your code](#IMConfirmSDKEndpoint).


| Endpoint | Usa a política do IAM com a condição `aws:sourceIp`? | Ação recomendada | 
| --- | --- | --- | 
| `internetmonitor.region.amazonaws.com` (sem pilha dupla) | Sim | Para restringir o acesso somente a IPv4, não faça mais nada. Ou, se você prevê que precisará de compatibilidade com IPv6 no futuro, poderá tomar medidas para garantir a compatibilidade com IPv4 e IPv6.<br />Para garantir compatibilidade futura, a partir de 1.º de novembro de 2024, atualize seu SDK e, em seguida, atualize sua aplicação para usar o endpoint de pilha dupla configurando `useDualstackEndpoint=true`. Para obter mais informações, consulte [Dual-stack and FIPS endpoints](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html).<br />Se você optar por usar IPv4 e IPv6, também deverá atualizar a condição de filtragem de endereço IP (`aws:sourceIp`) em suas políticas do IAM para incluir endereços IPv6.  | 
| `internetmonitor.region.amazonaws.com` (sem pilha dupla) | Não | Para restringir o acesso somente a IPv4, não faça mais nada. Ou, se você prevê que precisará de compatibilidade com IPv6 no futuro, poderá tomar medidas para garantir a compatibilidade com IPv4 e IPv6.<br />Para garantir compatibilidade futura, a partir de 1.º de novembro de 2024, atualize seu SDK e, em seguida, atualize sua aplicação para usar o endpoint de pilha dupla configurando `useDualstackEndpoint=true`. Para obter mais informações, consulte [Dual-stack and FIPS endpoints](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html).  | 
| `internetmonitor.region.api.aws` | Sim | Para garantir compatibilidade futura com IPv4 e IPv6, atualize seu SDK e, em seguida, atualize sua aplicação para usar o endpoint de pilha dupla configurando `useDualstackEndpoint=true`. Para obter mais informações, consulte [Dual-stack and FIPS endpoints](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html). <br />Ao fazer a mudança para usar IPv4 e IPv6, você também deverá atualizar a condição de filtragem de endereço IP (`aws:sourceIp`) em suas políticas do IAM para incluir endereços IPv6.<br />Em vez disso, se quiser restringir o acesso somente a IPv4, defina `useDualstackEndpoint=false`. Para obter mais informações, consulte [Dual-stack and FIPS endpoints](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html). | 
| `internetmonitor.region.api.aws` | Não | Para garantir compatibilidade futura com IPv4 e IPv6, atualize seu SDK e, em seguida, atualize sua aplicação para usar o endpoint de pilha dupla configurando `useDualstackEndpoint=true`. Para obter mais informações, consulte [Dual-stack and FIPS endpoints](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html). <br />Em vez disso, se quiser restringir o acesso somente a IPv4, defina `useDualstackEndpoint=false`. Para obter mais informações, consulte [Dual-stack and FIPS endpoints](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html). | 

Para obter ajuda com problemas de acesso, entre em contato com [Suporte](https://support.console.aws.amazon.com/support/home/?nc1=f_dr#/case/create).

## O que é IPv6?
<a name="security_iam_cwim_security-ipv6-upgrade.what-is-ipv6"></a>

IPv6 é o padrão IP de última geração destinado a substituir o IPv4. O IPv4 usa um esquema de endereçamento de 32 bits para compatibilidade com 4,3 bilhões de dispositivos. Em vez disso, o IPv6 usa endereçamento de 128 bits para compatibilidade com aproximadamente 340 trilhões de trilhões de trilhões (ou 2 vezes a 128.ª potência) de dispositivos. 

Veja a seguir exemplos de endereços IPv6:

```
2001:cdba:0000:0000:0000:0000:3257:9652
2001:cdba:0:0:0:0:3257:9652
2001:cdba::3257:965
```

O IPv6 oferece um espaço de endereço maior, maior eficiência de roteamento e melhor compatibilidade com novos serviços de Internet. Ao atualizar para pilha dupla e oferecer suporte a IPv6, o Monitor de Internet viabiliza melhor desempenho e escalabilidade. Siga as etapas desta seção para atualizar suas configurações e aproveitar a compatibilidade com pilha dupla.

## Identificar o endpoint do Monitor de Internet usado por seu código
<a name="security_iam_cwim_security-ipv6-upgrade.identify-endpoint"></a>

Se você usa um SDK do Monitor de Internet, comece verificando qual endpoint seu código está usando: o endpoint IPv4 ou o endpoint de pilha dupla (IPv4 e IPv6). Se você não usar um SDK com o Monitor de Internet, ignore esta seção.

Você pode executar o exemplo de código a seguir para determinar o endpoint do Monitor de Internet que está usando. Para este exemplo, estamos usando o SDK do Monitor de Internet para Go na região Leste dos EUA (Norte da Virgínia).

```
package main

import (
    "fmt"
    "log"
    
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/internetmonitor"
)

func main() {
    // Create a new session with the default configuration
    sess := session.Must(session.NewSession(&aws.Config{
        Region: aws.String("us-east-1"),
    }))

    // Create a new Internet Monitor client
    internetMonitorClient := internetmonitor.New(sess)

    // Get the endpoint URL
    endpoint := internetMonitorClient.Endpoint

    fmt.Printf("Internet Monitor endpoint URL: %s\n", endpoint)
}
```

Quando você executa esse código, ele retorna o endpoint do Monitor de Internet. Se receber a resposta a seguir, você está usando o domínio do Monitor de Internet compatível apenas com IPv4. É possível afirmar isso porque o formato do URL do endpoint inclui `amazonaws.com`.

```
Internet Monitor endpoint URL: https://internetmonitor.us-east-1.amazonaws.com
```

Se você receber a seguinte resposta, então está usando o domínio que está sendo atualizado para compatibilidade com pilha dupla (IPv4 e IPv6). Aqui, é possível afirmar isso porque o URL do endpoint inclui `api.aws`. No entanto, observe que até a conclusão da atualização, esse endpoint será compatível somente com IPv4. 

```
Internet Monitor endpoint URL: https://internetmonitor.us-east-1.api.aws
```



## Atualizar uma política do IAM para IPv6
<a name="security_iam_cwim_security-ipv6-upgrade.updating-for-ipv6"></a>

As políticas do IAM usam o filtro `aws:SourceIp` para definir um intervalo permitido de endereços IP. 

A pilha dupla é compatível com tráfego IPv4 e IPv6. Se sua rede usa pilha dupla, você deve garantir que todas a políticas do IAM usadas para filtragem de endereços IP estejam atualizadas para incluir intervalos de endereços IPv6.

Por exemplo, essa política permite intervalos de endereços IPv4 `192.0.2.0.*` e `203.0.113.0.*`, identificados no elemento `Condition`. 

```
# https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html
{
    "Version": "2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*",
        "Condition": {
            "NotIpAddress": {
                "*aws:SourceIp*": [
                    "*192.0.2.0/24*",
                    "*203.0.113.0/24*"
                ]
            },
            "Bool": {
                "aws:ViaAWSService": "false"
            }
        }
    }
}
```

Para atualizar essa política, alteraremos o elemento `Condition` da política para adicionar intervalos de endereços IPv6, conforme apresentado no exemplo a seguir:

```
"Condition": {
            "NotIpAddress": {
                "*aws:SourceIp*": [
                    "*192.0.2.0/24*", <<Existing IPv4 address - DO NOT REMOVE>>
                    "*203.0.113.0/24*", <<Existing IPv4 address  - DO NOT REMOVE>>
                    "{{*2001:DB8:1234:5678::/64*}}", <<New IPv6 IP address>>
                    "{{*2001:cdba:3257:8593::/64*}}" <<New IPv6 IP address>>
                ]
            },
            "Bool": {
                "aws:ViaAWSService": "false"
            }
        }
```

**Importante**  
Não remova os endereços IPv4 existentes na política. Eles são necessários para compatibilidade com versões anteriores.

Para obter mais informações sobre permissões de acesso com o IAM, consulte [Políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) no *Guia do usuário do AWS Identity and Access Management*.

## Testar a rede depois de atualizar as políticas
<a name="security_iam_cwim_security-ipv6-upgrade.testing-connection"></a>

Após atualizar suas políticas do IAM para incluir compatibilidade com endereços IPv6, recomendamos que você teste se sua rede é capaz de acessar um endpoint IPv6. Esta seção fornece vários exemplos, dependendo do sistema operacional que você usa.

### Testar a rede com Linux/Unix ou Mac OS X
<a name="security_iam_cwim_security-ipv6-upgrade.testing-unix"></a>

Se usar o Linux/Unix ou o Mac OS X, você poderá testar se sua rede pode acessar o endpoint IPv6 usando o comando curl a seguir.

`curl -v -s -o /dev/null http://ipv6.ec2-reachability.amazonaws.com/`

Se estiver conectado por IPv6, o endereço IP conectado exibirá informações semelhantes às seguintes:

```
* About to connect() to aws.amazon.com port 443 (#0)
*   Trying IPv6 address... connected
* Connected to aws.amazon.com (IPv6 address) port 443 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.18.1 (x86_64-unknown-linux-gnu) libcurl/7.18.1 OpenSSL/1.0.1t zlib/1.2.3
> Host: aws.amazon.com
```

### Testar a rede com o Windows
<a name="security_iam_cwim_security-ipv6-upgrade.testing-windows"></a>

Se usar o Windows, você poderá testar se sua rede pode acessar um endpoint de pilha dupla por meio de IPv6 ou IPv4 usando um comando `ping`, como o seguinte:

`ping aws.amazon.com`

Se `ping` acessar o endpoint por meio do IPv6, o comando retornará endereços IPv6.

## Verificar se os clientes são compatíveis com IPv6
<a name="security_iam_cwim_security-ipv6-upgrade.verify"></a>

Antes que você passe a usar o endpoint *internetmonitor.{region}.api.aws*, recomendamos que você verifique se seus clientes podem acessar outros endpoints do AWS service (Serviço da AWS) que já estão habilitados para IPv6. As etapas a seguir descrevem como verificar isso usando um endpoint IPv6 existente. 

Este exemplo usa Linux e o curl versão 8.6.0 com o [serviço Amazon Athena](https://docs.aws.amazon.com/general/latest/gr/athena.html), que tem endpoints habilitados para IPv6 localizados no domínio *api.aws*. 

**nota**  
Mude sua Região da AWS para a mesma região em que o cliente está localizado. Neste exemplo, usamos o endpoint `us-east-1`, ou seja, Leste dos EUA (Norte da Virgínia).

Use o exemplo a seguir para verificar se seus clientes podem acessar um endpoint da AWS habilitado para IPv6.

1. Verifique se o endpoint do Athena é resolvido com um endereço IPv6 usando o comando a seguir. 

   ```
   dig +short AAAA athena.us-east-1.api.aws
   2600:1f18:e2f:4e05:1a8a:948e:7c08:d2d6
   2600:1f18:e2f:4e03:4a1e:83b0:8823:4ce5
   2600:1f18:e2f:4e04:34c3:6e9a:2b0d:dc79
   ```

1. Agora, determine se sua rede cliente consegue estabelecer conexão usando IPv6 usando o seguinte comando: 

   ```
   curl --ipv6 -o /dev/null --silent -w "\nremote ip: %{remote_ip}\nresponse code: %{response_code}\n" https://athena.us-east-1.api.aws
   
   remote ip: 2600:1f18:e2f:4e05:1a8a:948e:7c08:d2d6
   response code: 404
   ```

   Se o endereço IP remoto tiver sido identificado **e** o código de resposta não for `0`, uma conexão de rede terá sido estabelecida com sucesso com o endpoint usando IPv6.

   Se o endereço IP remoto estiver em branco ou o código de resposta for `0`, a rede cliente ou o caminho da rede até o endpoint será somente IPv4. É possível verificar isso com o seguinte comando do curl: 

   ```
   curl -o /dev/null --silent -w "\nremote ip: %{remote_ip}\nresponse code: %{response_code}\n" https://athena.us-east-1.api.aws
   
   remote ip: 3.210.103.49
   response code: 404
   ```

   Se você executar esse comando e o endereço IP remoto tiver sido identificado **e** o código de resposta não for `0`, uma conexão de rede terá sido estabelecida com sucesso com o endpoint usando IPv4. 