

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Controlar o acesso à API com políticas do IAM
<a name="ip-access"></a>

Se você usa políticas do IAM para controlar o acesso Serviços da AWS com base em endereços IP, talvez seja necessário atualizar suas políticas para incluir intervalos de endereços IPv6. Este guia explica as diferenças entre IPv4 e IPv6 e descreve como atualizar suas políticas do IAM para oferecer suporte a ambos os protocolos. A implementação dessas mudanças ajuda você a manter o acesso seguro aos seus recursos da AWS , oferecendo, ao mesmo tempo, suporte ao IPv6.

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

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

Para obter mais informações, consulte a [página de IPv6 da VPC](https://aws.amazon.com/vpc/ipv6/).

Veja a seguir exemplos de endereços IPv6:

```
2001:cdba:0000:0000:0000:0000:3257:9652 # This is a full, unabbreviated IPv6 address.
2001:cdba:0:0:0:0:3257:9652             # The same address with leading zeros in each group omitted
2001:cdba::3257:965                     # A compressed version of the same address.
```

## Políticas de pilha dupla do IAM (IPv4 e IPv6)
<a name="ipv6-access"></a>

É possível usar políticas do IAM para controlar o acesso às APIs do Secrets Manager e impedir que qualquer endereço IP fora do intervalo configurado possa acessar as APIs do Secrets Manager.

O endpoint de pilha dupla *secretsmanager.{region}.amazonaws.com* para APIs do Secrets Manager oferece suporte a IPv6 e IPv4.

Se você precisar de suporte a IPv4 e IPv6, atualize suas políticas de filtragem de endereços IP para gerenciar endereços IPv6. Caso contrário, é possível que você não consiga se conectar ao Secrets Manager por IPv6.

### Quem deve fazer essa alteração?
<a name="customers-impacted"></a>

Essa alteração afetará você caso use o endereçamento duplo com políticas que contenham `aws:sourceIp`. O *endereçamento duplo* indica que a rede oferece suporte a IPv4 e IPv6. 

Se você estiver usando endereçamento duplo, atualize suas políticas do IAM que usem atualmente endereços no formato IPv4 para incluírem endereços no formato IPv6.

### Quem não deve fazer essa alteração?
<a name="customers-not-impacted"></a>

Essa alteração não afetará você se você usar *somente* redes IPv4.

## Adição de IPv6 a uma política do IAM
<a name="updating-for-ipv6"></a>

As políticas do IAM usam a chave de condição `aws:SourceIp` para controlar o acesso a partir de endereços IP específicos. Se sua rede usa endereçamento duplo (IPv4 e IPv6), atualize suas políticas do IAM para incluir intervalos de endereços IPv6.

No elemento `Condition` das suas políticas, use os operadores `IpAddress` e `NotIpAddress` para condições de endereço IP. Não use operadores de string, pois eles não podem lidar com os vários formatos de endereço IPv6 válidos.

Estes exemplos usam `aws:SourceIp`. Para VPCs, use `aws:VpcSourceIp`.

A seguir está a política de referência de [negação de acesso AWS com base na política de referência de IP de origem](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html) do *Guia do usuário do IAM*. O `NotIpAddress` no elemento `Condition` lista dois intervalos de endereços IPv4, `192.0.2.0/24` e `203.0.113.0/24`, aos quais será negado o acesso à API.

------
#### [ JSON ]

****  

```
{
    "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, altere o elemento `Condition` para incluir os intervalos de endereços IPv6 `2001:DB8:1234:5678::/64` e `2001:cdba:3257:8593::/64`.

**nota**  
Não remova os endereços IPv4 existentes. Eles são necessários para retrocompatibilidade.

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

Para atualizar essa política para uma VPC, use `aws:VpcSourceIp` em vez de `aws:SourceIp`:

```
"Condition": {
                "NotIpAddress": {
                    "aws:VpcSourceIp": [
                        "10.0.2.0/24", <<DO NOT REMOVE existing IPv4 address>>
                        "10.0.113.0/24", <<DO NOT REMOVE existing IPv4 address>>
                        "fc00:DB8:1234:5678::/64", <<New IPv6 IP address>>
                        "fc00:cdba:3257:8593::/64" <<New IPv6 IP address>>
                    ]
                },
                "Bool": {
                    "aws:ViaAWSService": "false"
                }
            }
```

## Verificação se seu cliente tem suporte a IPv6
<a name="testing-connection"></a>

Se você usar o endpoint *secretsmanager.{region}.amazonaws.com*, verifique se é possível se conectar a ele. As etapas a seguir descrevem como realizar a verificação. 

Este exemplo usa Linux e curl versão 8.6.0 e usa o [serviço AWS Secrets Manager](https://docs.aws.amazon.com/general/latest/gr/secretsmanager.html) que possui endpoints habilitados para IPv6 localizados no endpoint **amazonaws.com**. 

**nota**  
O **secretsmanager.{region}.amazonaws.com** difere da [convenção de nomenclatura típica de pilha dupla](https://docs.aws.amazon.com/general/latest/gr/rande.html#dual-stack-endpoints). Para obter uma lista completa de endpoints do Secrets Manager, consulte [AWS Secrets Manager endpoints](asm_access.md#endpoints).  
Mude Região da AWS para a mesma região em que seu serviço está localizado. Neste exemplo, usamos o endpoint `us-east-1`, ou seja, Leste dos EUA (Norte da Virgínia).

1. Determine se o endpoint é resolvido com um endereço IPv6 usando o comando `dig` a seguir. 

   ```
   $ dig +short AAAA secretsmanager.us-east-1.amazonaws.com 
   
   > 2600:1f18:e2f:4e05:1a8a:948e:7c08:c1c3
   ```

1. Determine se a rede do cliente pode fazer uma conexão IPv6 usando o comando `curl` a seguir. Um código de resposta 404 significa uma conexão bem-sucedida, enquanto um código de resposta 0 significa falha da conexão.

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

Se um IP remoto foi identificado **e** o código de resposta não é `0`, uma conexão de rede terá sido estabelecida com sucesso com o endpoint usando IPv6. O IP remoto deve ser um endereço IPv6 porque o sistema operacional deve selecionar o protocolo válido para o cliente.

Se o IP remoto estiver em branco ou o código de resposta estiver`0`, a rede do cliente ou o caminho da rede até o endpoint estará. IPv4-only É 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://secretsmanager.us-east-1.amazonaws.com 

> remote ip: 3.123.154.250
> response code: 404
```