Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Comment identifier, surveiller et optimiser l'utilisation de mon adresse IPv4 publique Amazon VPC ?
Je souhaite identifier, surveiller et optimiser l’utilisation de mon adresse IPv4 Amazon Virtual Private Cloud (Amazon VPC).
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Toutes les adresses IPv4 publiques entraînent des frais de 0,005 $ pour chaque adresse IP par heure, qu'elle soit associée à un service ou non. Si vous êtes un client d’une offre gratuite AWS pour Amazon Elastic Compute Cloud (Amazon EC2), vous bénéficiez d’une utilisation gratuite de 750 heures. Cette utilisation gratuite est réservée au lancement d'une instance Amazon EC2 avec une adresse IPv4 publique.
Activer Public IP Insights
Vous pouvez utiliser Public IP Insights pour surveiller, analyser et auditer les adresses IPv4 publiques que vos services utilisent actuellement dans les régions AWS.
Pour activer Public IP Insights, créez un pool Gestionnaire d'adresses IP (IPAM) Amazon VPC. Pour identifier l'utilisation des adresses IPv4 publiques, intégrez Public IP Insights IPAM à un compte AWS unique ou à vos comptes AWS Organizations.
Remarque : Aucun coût n’est associé à Public IP Insights dans le cadre de l’offre gratuite. Pour plus d'informations sur la tarification du niveau avancé, consultez l'onglet IPAM de la page de tarification d'Amazon VPC. Lorsque vous intégrez IPAM à des organisations, vous pouvez utiliser Public IP Insights pour toutes les régions et tous les comptes de votre organisation, même dans l’offre gratuite.
Pour consulter les résultats, vous pouvez utiliser la console Amazon VPC ou l'AWS CLI.
Remarque : Après avoir créé un pool IPAM, Public IP Insights génère un rapport pour vos adresses IPv4 publiques. Le temps nécessaire pour générer le rapport dépend de la taille de votre organisation.
Activer votre rapport d’utilisation et de coût
Votre rapport de coût et d’utilisation AWS (CUR) inclut des données d'utilisation pour les adresses IPv4 publiques utilisées et non utilisées. Lorsque vous créez votre CUR, sélectionnez Inclure des ID de ressource pour obtenir une analyse détaillée au niveau des ressources. Une fois que vous avez créé votre CUR, AWS met à jour les fichiers de rapport qui contient les données du mois à ce jour au moins une fois par jour. Vous pouvez utiliser les fichiers de rapport pour analyser les données historiques d'utilisation des adresses IPv4.
Remarque : Vous pouvez également accéder aux rapports depuis un compartiment Amazon Simple Storage Service (Amazon S3). AWS peut mettre jusqu’à 24 heures à diffuser des rapports dans votre compartiment Amazon S3.
Identifier immédiatement les adresses IPv4 publiques
Remarque : Il est recommandé d'utiliser CUR et Public IP insights pour l'analyse planifiée de l'utilisation des adresses IPv4 publiques.
Pour identifier immédiatement les services qui utilisent des adresses IPv4 publiques, utilisez la console Amazon EC2 ou l'AWS CLI.
Console Amazon EC2
Pour analyser vos interfaces réseau afin de visualiser les services AWS qui utilisent des adresses IPv4 publiques, procédez comme suit :
- Ouvrez la console Amazon EC2.
- Dans le volet de navigation, sous Réseau et sécurité, sélectionnez Interfaces réseau.
- Dans le filtre Adresses IPv4 publiques, saisissez <*> pour identifier les interfaces réseau Elastic qui utilisent l'adresse IPv4 publique principale.
- Utilisez la description de l'interface réseau et le type d'interface pour identifier le service qui utilise l'adresse IPv4 publique.
- Pour afficher toutes les adresses IP publiques et secondaires dotées d'interfaces réseau dans une région, exécutez la commande suivante :
Remarque : Vous devez remplacer example-region par votre région.aws ec2 describe-network-interfaces --region example-region --query 'NetworkInterfaces[*].PrivateIpAddresses[?Association.PublicIp].Association.PublicIp[]' --output table
Pour les adresses IPv4 publiques utilisées par l’AWS Site-to-Site VPN, consultez la section Comment vérifier le statut actuel de mon tunnel VPN ?
Pour les adresses IPv4 publiques utilisées par AWS Global Accelerator standard et personnalisé, consultez la section Affichage de vos accélérateurs.
Pour afficher les adresses IP Elastic inactives ou associées, procédez comme suit :
- Ouvrez la console Amazon EC2.
- Dans le volet de navigation, sous Réseau et sécurité, choisissez Adresses IP Elastic.
- Sélectionnez une adresse IP Elastic pour afficher les ressources qui utilisent cette adresse IP Elastic.
Remarque : Pour plus d'informations sur l'utilisation, consultez les champs Interface réseau ou Instance.
Aucun frais n’est exigé pour la Fourniture de vos propres adresses IP (BYOIP). AWS facture Global Accelerator dans la région us-west-2.
AWS CLI
Prérequis : Exécutez la commande aws configure de l’AWS CLI pour définir vos informations d'identification. Installez également Boto3. Pour plus d'informations, consultez la page Installer Boto3 sur le site Web de Boto3.
Pour identifier immédiatement les services qui utilisent des adresses IPv4 publiques, effectuez les étapes suivantes depuis un environnement AWS CloudShell ou Linux :
-
Créez le fichier suivant :
touch public_ipv4_recon.py -
Exécutez la commande suivante pour modifier le fichier :
vim public_ipv4_recon.py -
Copiez et collez le code suivant dans le fichier, puis enregistrez le fichier :
#!/usr/bin/env python3 import pprint import boto3, sys profile = boto3.Session(profile_name=sys.argv[1]) aga = profile.client('globalaccelerator', region_name='us-west-2') ec2 = boto3.client('ec2') def global_public_ipv4_lookup(aga): try: # global accelerator next_token = None while True: if next_token: resource = aga.list_accelerators( NextToken = next_token ) else: resource = aga.list_accelerators( ) print('Describing world wide Global Accelerators...') print('Note: AWS Global Accelerators are billed in us-west-2....') print(f'Number of AGA: {len(resource["Accelerators"])}') print('-'*40) for item in resource["Accelerators"]: print(f'Name: {item["Name"]}') if 'IpSets' in item.keys(): for ip in item["IpSets"][0]["IpAddresses"]: print(f'Public IPv4: {ip}') print(f'Status: {item["Status"]}') print() next_token = resource.get("NextToken") if next_token is None: break print() # custom_routing_accelerators next_token = None while True: if next_token: custom_routing = aga.list_custom_routing_accelerators( NextToken = next_token ) else: custom_routing = aga.list_custom_routing_accelerators( ) print('Describing world wide Custom Routing Accelerators...') print('Note: AWS Global Accelerators are billed in us-west-2....') print(f'Number of custom AGA: {len(custom_routing["Accelerators"])}') print('-'*40) for item in custom_routing["Accelerators"]: if 'IpSets' in item.keys(): for ip in item["IpSets"][0]["IpAddresses"]: print(f'Public IPv4: {ip}') print(f'Status: {item["Status"]}') print() next_token = custom_routing.get("NextToken") if next_token is None: break print() except Exception as err: print(f'Error found: {err}...') pass def public_ipv4_lookup(ec2): try: # vpn next_token = None while True: if next_token: vpn = ec2.describe_vpn_connections( NextToken = next_token ) else: vpn = ec2.describe_vpn_connections( ) print('Describing VPNs...') print(f'Number of Vpn connections: {len(vpn["VpnConnections"])}') print('-'*40) for item in vpn["VpnConnections"]: if 'VpnConnectionId' in item.keys(): print(f'Vpn Id: {item["VpnConnectionId"]}') for ip in item["VgwTelemetry"]: print(f'Public ipv4: {ip["OutsideIpAddress"]}') print() next_token = vpn.get("NextToken") if next_token is None: break print() # elastic ip eip = ec2.describe_addresses( ) print('Describing Elastic IPs...') print(f'Number of Elastic Ips: {len(eip["Addresses"])}') print('-'*40) for item in eip["Addresses"]: if 'AllocationId' in item.keys(): print(f'Eip Id: {item["AllocationId"]}') print(f'Public ipv4: {item["PublicIp"]}') print() print() # network interfaces next_token = None while True: if next_token: interface = ec2.describe_network_interfaces( NextToken=next_token ) else: interface = ec2.describe_network_interfaces( ) print('Describing Network Interfaces...') print(f'Number of interfaces: {len(interface["NetworkInterfaces"])}') print('Only printing Interfaces with a public IPv4 address...') print('-'*40) for item in interface["NetworkInterfaces"]: for ip in item["PrivateIpAddresses"]: if 'Association' not in ip.keys(): pass else: print(f'Interface Id: {item["NetworkInterfaceId"]}') print(f'Description: {item["Description"]}') print(f'Status: {interface["NetworkInterfaces"][0]["Status"]}') print(f'Public Ip: {ip["Association"]["PublicIp"]}\n') next_token = interface.get("NextToken") if next_token is None: break except Exception as err: print(f'Error found: {err}...') pass # Run code if len(sys.argv) < 3 or not sys.argv[2]: global_public_ipv4_lookup(aga) regions_list = ec2.describe_regions( AllRegions=False ) for region in regions_list['Regions']: if region["OptInStatus"] == 'opted-in' or 'opt-in-not-required': print(f'\n**********-[{region["RegionName"]}]-**********\n') public_ipv4_lookup( ec2=profile.client('ec2', region_name=region["RegionName"]) ) elif sys.argv[2]: global_public_ipv4_lookup(aga) public_ipv4_lookup( ec2=profile.client('ec2', region_name=sys.argv[2]) ) -
Pour vérifier toutes les régions, exécutez la commande suivante :
python3 public_ipv4_recon.py example-cli-profileRemarque : Remplacez example-cli profile par le nom du profil AWS CLI configuré ou par tout nom de profil défini dans le fichier .aws/credentials. Si vous utilisez Windows, remplacez python3 par python.
-ou-
Pour vérifier une région spécifique, exécutez la commande suivante :python3 public_ipv4_recon.py example-cli-profile example-regionRemarque : Remplacez example-cli profile par le nom du profil AWS CLI configuré ou par tout nom de profil défini dans le fichier .aws/credentials. Remplacez example-region par votre région.
Si vous n'êtes pas autorisé à exécuter la requête ou si la région est désactivée pour votre compte, le message d'erreur suivant peut s'afficher :
« Error found: An error occurred (AuthFailure) when calling the <API> operation: AWS was not able to validate the provided access credentials... »
Optimiser l'utilisation des adresses IPv4 publiques et adopter les adresses IPv6
Pour optimiser les coûts, améliorez votre architecture actuelle afin de minimiser l'utilisation d'adresses IPv4 publiques. Il est recommandé de migrer vers IPv6. Aucun frais n’est exigé pour les adresses IPv6.
- Balises
- Amazon VPC
- Langue
- Français

Contenus pertinents
- demandé il y a 2 ans
- demandé il y a un an
- demandé il y a un an
- demandé il y a 2 ans
- demandé il y a un an
AWS OFFICIELA mis à jour il y a 5 mois
AWS OFFICIELA mis à jour il y a 6 mois