J'utilisais le groupe de sécurité parce que j'exploitais le service cible et que je voulais limiter le nombre de personnes pouvant le voir. J'essayais donc d'utiliser les vérifications de l'état de Route 53 pour la surveillance synthétique Cependant, si vous souhaitez limiter le nombre de personnes pouvant voir pendant la surveillance, vous avez besoin de la plage d'adresses IP des vérifications de l'état de Route 53. Si vous cochez, il existe deux types de méthodes d'acquisition, et chacune a une adresse IP légèrement différente, elle sera donc partagée.
Lorsque j'ai vérifié la plage IP des vérifications de l'état d'Amazon Route 53, il y a deux modèles ci-dessous.
Le premier json est la méthode à vérifier à partir du json de here géré par AWS. Le deuxième SDK est un moyen de vérifier la portée du SDK Route 53. Cette fois, j'utiliserai Python
$ python --version
Python 3.6.8
$ pip list | grep boto3
boto3 1.13.9
>>> import requests
>>> ip_ranges = requests.get('https://ip-ranges.amazonaws.com/ip-ranges.json').json()['prefixes']
>>> route53_ips_json = [item['ip_prefix'] for item in ip_ranges if item["service"] == "ROUTE53_HEALTHCHECKS"]
>>> route53_ips_json
['54.252.254.192/26', '177.71.207.128/26', '54.255.254.192/26', '54.244.52.192/26', '54.251.31.128/26', '54.241.32.64/26', '54.245.168.0/26', '54.232.40.64/26', '54.248.220.0/26', '176.34.159.192/26', '54.252.79.128/26', '54.183.255.128/26', '54.250.253.192/26', '15.177.0.0/18', '54.228.16.0/26', '107.23.255.0/26', '54.243.31.192/26']
>>> len(route53_ips_json)
17
>>> import boto3
>>> client = boto3.client('route53')
>>> route53_ips_sdk = client.get_checker_ip_ranges()
>>> route53_ips_sdk['CheckerIpRanges']
['15.177.2.0/23', '15.177.6.0/23', '15.177.10.0/23', '15.177.14.0/23', '15.177.18.0/23', '15.177.22.0/23', '15.177.26.0/23', '15.177.30.0/23', '15.177.34.0/23', '15.177.38.0/23', '15.177.42.0/23', '15.177.46.0/23', '15.177.50.0/23', '15.177.54.0/23', '15.177.58.0/23', '15.177.62.0/23', '54.183.255.128/26', '54.228.16.0/26', '54.232.40.64/26', '54.241.32.64/26', '54.243.31.192/26', '54.244.52.192/26', '54.245.168.0/26', '54.248.220.0/26', '54.250.253.192/26', '54.251.31.128/26', '54.252.79.128/26', '54.252.254.192/26', '54.255.254.192/26', '107.23.255.0/26', '176.34.159.192/26', '177.71.207.128/26']
>>> len(route53_ips_sdk['CheckerIpRanges'])
32
Ainsi, comme mentionné ci-dessus, les longueurs des tableaux sont différentes, il n'y avait donc pas de correspondance. Donc, ce qui est différent est comme suit
>>> set(route53_ips_json) - set(route53_ips_sdk['CheckerIpRanges'])
{'15.177.0.0/18'}
>>> set(route53_ips_sdk['CheckerIpRanges']) - set(route53_ips_json)
{'15.177.18.0/23', '15.177.2.0/23', '15.177.42.0/23', '15.177.50.0/23', '15.177.34.0/23', '15.177.54.0/23', '15.177.10.0/23', '15.177.6.0/23', '15.177.26.0/23', '15.177.14.0/23', '15.177.46.0/23', '15.177.58.0/23', '15.177.38.0/23', '15.177.62.0/23', '15.177.22.0/23', '15.177.30.0/23'}
En d'autres termes, il était différent de savoir si cela était résumé dans 15.177.0.0/18.
La plage d'adresses IP des vérifications de l'état de Route 53 différait selon la méthode d'acquisition La méthode d'acquisition avec json avait une large plage d'adresses IP et le SDK était en train d'être coupé en petits morceaux. Pour être honnête, il est douteux de savoir lequel est correct, mais je souhaite personnellement réduire la maintenance du groupe de sécurité, donc J'ai pensé qu'il valait mieux prendre un gros json
Recommended Posts