

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Contrôlez l'accès aux API avec des politiques IAM
<a name="ip-access"></a>

Si vous utilisez des politiques IAM pour contrôler l'accès en Services AWS fonction des adresses IP, vous devrez peut-être mettre à jour vos politiques pour inclure les plages d' IPv6 adresses. Ce guide explique les différences entre IPv4 et IPv6 et décrit comment mettre à jour vos politiques IAM pour prendre en charge les deux protocoles. La mise en œuvre de ces modifications vous permet de conserver un accès sécurisé à vos AWS ressources tout en assurant le support IPv6.

## Qu'est-ce que c'est IPv6 ?
<a name="what-is-ipv6"></a>

IPv6 est la norme IP de prochaine génération destinée à être remplacée à terme IPv4. La version précédente utilise un schéma d'adressage 32 bits pour prendre en charge 4,3 milliards d'appareils. IPv4 IPv6 utilise plutôt un adressage 128 bits pour prendre en charge environ 340 billions de billions de milliards de milliards de milliards de dollars (soit 2 appareils à la 128e puissance). 

Pour plus d'informations, consultez la [ IPv6page Web VPC](https://aws.amazon.com/vpc/ipv6/).

Voici des exemples d' IPv6 adresses :

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

## Politiques IAM à double pile (IPv4 et IPv6)
<a name="ipv6-access"></a>

Vous pouvez utiliser les politiques IAM pour contrôler l'accès à Secrets Manager APIs et empêcher les adresses IP situées en dehors de la plage configurée d'accéder à Secrets Manager APIs.

Le responsable *des secrets. Le point de terminaison à double pile \$1region\$1 .amazonaws.com* pour Secrets Manager APIs prend en charge les deux et. IPv6 IPv4

Si vous devez prendre en charge IPv4 les deux IPv6, mettez à jour vos politiques de filtrage des adresses IP pour gérer IPv6 les adresses. Sinon, il se peut que vous ne puissiez pas vous connecter à Secrets Manager IPv6.

### Qui doit effectuer ce changement ?
<a name="customers-impacted"></a>

Cette modification vous concerne si vous utilisez le double adressage avec des politiques contenant`aws:sourceIp`. *Le double adressage* signifie que le réseau prend en charge à la fois IPv4 et IPv6. 

Si vous utilisez le double adressage, mettez à jour vos politiques IAM qui utilisent actuellement des adresses de IPv4 format pour inclure les adresses de IPv6 format.

### Qui ne devrait pas effectuer ce changement ?
<a name="customers-not-impacted"></a>

Cette modification ne vous concerne pas si vous utilisez *uniquement* des IPv4 réseaux.

## Ajout IPv6 à une politique IAM
<a name="updating-for-ipv6"></a>

Les politiques IAM utilisent la clé de `aws:SourceIp` condition pour contrôler l'accès à partir d'adresses IP spécifiques. Si votre réseau utilise le double adressage (IPv4 et IPv6), mettez à jour vos politiques IAM pour inclure les plages d' IPv6 adresses.

Dans l'`Condition`élément de vos politiques, utilisez les `NotIpAddress` opérateurs `IpAddress` et pour les conditions d'adresse IP. N'utilisez pas d'opérateurs de chaîne, car ils ne peuvent pas gérer les différents formats d' IPv6 adresse valides.

Ces exemples utilisent`aws:SourceIp`. Pour VPCs, utilisez `aws:VpcSourceIp` plutôt.

Ce qui suit indique le [refus d'accès AWS basé sur la politique de référence IP source](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html) du *guide de l'utilisateur IAM*. L'`Condition`élément `NotIpAddress` in the to répertorie deux plages d' IPv4 adresses, `192.0.2.0/24` et`203.0.113.0/24`, auxquelles l'accès à l'API sera refusé.

------
#### [ 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"
            }
        }
    }
}
```

------

Pour mettre à jour cette politique, modifiez l'`Condition`élément afin d'inclure les plages d' IPv6adresses `2001:DB8:1234:5678::/64` et`2001:cdba:3257:8593::/64`.

**Note**  
Ne supprimez pas les IPv4 adresses existantes. Ils sont nécessaires pour assurer la rétrocompatibilité.

```
"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"
                }
            }
```

Pour mettre à jour cette politique pour un VPC, utilisez `aws:VpcSourceIp` au lieu 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"
                }
            }
```

## Vérifier le support de vos clients IPv6
<a name="testing-connection"></a>

Si vous utilisez le *secretsmanager. Point de terminaison \$1region\$1 .amazonaws.com*, vérifiez que vous pouvez vous y connecter. Les étapes suivantes décrivent comment effectuer la vérification. 

**Cet exemple utilise Linux et la version 8.6.0 de curl et utilise le [AWS Secrets Manager service](https://docs.aws.amazon.com/general/latest/gr/secretsmanager.html) qui a IPv6 activé les points de terminaison situés sur le point de terminaison amazonaws.com.** 

**Note**  
Le responsable **des secrets. \$1region\$1 .amazonaws.com** diffère de la convention de dénomination [classique à double pile](https://docs.aws.amazon.com/general/latest/gr/rande.html#dual-stack-endpoints). Pour une liste complète des points de terminaison de Secrets Manager, consultez[AWS Secrets Manager points de terminaison](asm_access.md#endpoints).  
Remplacez-le Région AWS par la même région que celle où se trouve votre service. Dans cet exemple, nous utilisons USA Est (Virginie du Nord) : le point de terminaison `us-east-1`.

1. Déterminez si le point de terminaison est résolu avec une IPv6 adresse à l'aide de la `dig` commande suivante. 

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

1. Déterminez si le réseau client peut établir une IPv6 connexion à l'aide de la `curl` commande suivante. Un code de réponse 404 signifie que la connexion a réussi, tandis qu'un code de réponse 0 signifie que la connexion a échoué.

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

Si une adresse IP distante a été identifiée **mais** que le code de réponse ne l'est pas`0`, une connexion réseau a été établie avec succès avec le terminal à l'aide de IPv6. L'adresse IP distante doit être une IPv6 adresse car le système d'exploitation doit sélectionner le protocole valide pour le client.

Si l'adresse IP distante est vide ou si le code de réponse l'est`0`, le réseau client ou le chemin réseau vers le point de IPv4 terminaison est uniquement disponible. Vous pouvez vérifier cette configuration à l'aide de la `curl` commande suivante. 

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