View a markdown version of this page

Contrôlez l'accès aux API avec des politiques IAM - AWS Secrets Manager

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

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'adresses IPv6. Ce guide explique les différences entre IPv4 et IPv6 et décrit comment mettre à jour vos politiques IAM afin de 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 prenant en charge le protocole IPv6.

Qu’est-ce qu’IPv6 ?

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

Pour plus d'informations, consultez la page Web VPC IPv6.

Voici des exemples d'adresses 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.

Politiques IAM à double pile (IPv4 et IPv6)

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

Le responsable des secrets. Le point de terminaison à double pile {region} .amazonaws.com pour les API Secrets Manager prend en charge les protocoles IPv6 et IPv4.

Si vous devez prendre en charge à la fois les protocoles IPv4 et IPv6, mettez à jour vos politiques de filtrage des adresses IP afin de gérer les adresses IPv6. Sinon, vous ne pourrez peut-être pas vous connecter à Secrets Manager via IPv6.

Qui doit effectuer ce changement ?

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

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

Qui ne devrait pas effectuer ce changement ?

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

Ajouter IPv6 à une politique IAM

Les politiques IAM utilisent la clé de aws:SourceIp condition pour contrôler l'accès depuis des 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'adresses IPv6.

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'adresse IPv6 valides.

Ces exemples utilisentaws:SourceIp. Pour les VPC, 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 du guide de l'utilisateur IAM. L'Conditionélément NotIpAddress in the to répertorie deux plages d'adresses IPv4, 192.0.2.0/24 et203.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'adresses IPv6 2001:DB8:1234:5678::/64 et2001:cdba:3257:8593::/64.

Note

Ne supprimez pas les adresses IPv4 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 que votre client prend en charge le protocole IPv6

Si vous utilisez le secretsmanager. Point de terminaison {region} .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 qui possède des points de terminaison compatibles IPv6 situés sur le point de terminaison amazonaws.com.

Note

Le responsable des secrets. {region} .amazonaws.com diffère de la convention de dénomination classique à double pile. Pour une liste complète des points de terminaison de Secrets Manager, consultezAWS Secrets Manager points de terminaison.

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 adresse IPv6 à l'aide de la dig commande suivante.

    $ dig +short AAAA secretsmanager.us-east-1.amazonaws.com > 2600:1f18:e2f:4e05:1a8a:948e:7c08:c1c3
  2. Déterminez si le réseau client peut établir une connexion IPv6 à 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 pas0, une connexion réseau a été établie avec succès avec le terminal via IPv6. L'adresse IP distante doit être une adresse IPv6 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'est0, le réseau client ou le chemin réseau vers le point de terminaison l'est IPv4-only. 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