[AWS] AWS 서비스 IP 리스트 출력

가끔가다 데이터센터 방화벽에서 AWS 서비스들에 대해서 IP를 허용해줘야 하는 경우가 있다.

AWS에서는 서비스들의 ip 범위를 JSON 파일로 제공한다.

여기서 내가 원하는 서비스, 리전들에 대해서만 JQ를 이용해서 뽑을 수 있다.

curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="CLOUDFRONT") | select((.region=="ap-northeast-2") or (.region=="GLOBAL"))| [.ip_prefix, .region]' > cf_apne2_ip.txt

위의 예는 ap-northeast-2 서울리전과, 글로벌 리전의 CloudFront 서비스 IP들만 뽑는 명령어이다.

특정 서비스들은 서울리전 뿐만 아니라 Global 리전이라고 되어있는 IP들도 허용해주어야 정상적으로 서비스 이용이 가능하다.

S3, CloudFront의 경우가 그렇다. 해당 내용은 AWS Support Engineer가 권장한 사항이다.

또한 여기서 조회되지 않는 서비스들도 있는데, ECR 같은 경우는 결국 S3에서 컨테이너 레이어를 당겨오기 때문에, S3 IP를 열어주어야 한다.