기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWSIP 주소 범위
Amazon Web Services(AWS)는 현재 IP 주소 범위를 JSON 형식으로 게시합니다. 현재 범위를 보려면 .json
파일을 다운로드합니다. 기록을 유지하려면 연속 버전의 .json
파일을 시스템에 저장합니다. 파일을 마지막으로 저장한 이후에 변경 사항이 있는지 확인하려면 현재 파일의 게시 시간을 마지막으로 저장한 파일의 게시 시간과 비교합니다.
Download
ip-ranges.json
이 파일에 프로그래밍 방식으로 액세스할 경우 애플리케이션에서 서버에 제공된 TLS 인증서를 확인한 이후에 파일을 다운로드하는지 직접 확인해야 합니다.
Syntax
ip-ranges.json
구문은 다음과 같습니다.
{ "syncToken": "
0123456789
", "createDate": "yyyy
-mm
-dd
-hh
-mm
-ss
", "prefixes": [ { "ip_prefix": "cidr
", "region": "region
", "network_border_group": "network_border_group
", "service": "subset
" } ], "ipv6_prefixes": [ { "ipv6_prefix": "cidr
", "region": "region
", "network_border_group": "network_border_group
", "service": "subset
" } ] }
- syncToken
-
게시 시간(Unix epoch 시간 형식)
Type: 문자열
예:
"syncToken": "1416435608"
- createDate
-
게시 날짜 및 시간 (UTC Y-MM-DD-HH-MM-SS 형식) 입니다.
Type: 문자열
예:
"createDate": "2014-11-19-23-29-02"
- prefixes
-
IPv4 주소 범위에 대한 IP 접두사
Type: 배열
- ipv6_prefixes
-
IPv6 주소 범위에 대한 IP 접두사
Type: 배열
- ip_prefix
-
퍼블릭 IPv4 주소 범위(CIDR 표기법)입니다. AWS에서는 구체적인 범위로 접두사를 알릴 수 있습니다. 예를 들어, 파일의 96.127.0.0/17 접두사를 96.127.0.0/21, 96.127.8.0/21, 96.127.32.0/19 및 96.127.64.0/18로 알릴 수 있습니다.
Type: 문자열
예:
"ip_prefix": "198.51.100.2/24"
- ipv6_prefix
-
퍼블릭 IPv6 주소 범위(CIDR 표기법)입니다. AWS에서는 구체적인 범위로 접두사를 알릴 수 있습니다.
Type: 문자열
예:
"ipv6_prefix": "2001:db8:1234::/64"
- network_border_group
-
네트워크 경계 그룹 이름, 즉 에서 에서 사용할 수 있는 고유 가용 영역 또는 Local Zones 입니다.AWS는 IP 주소를 공고합니다.
Type: 문자열
예:
"network_border_group": "us-west-2-lax-1"
- region
-
엣지 로케이션에 대한 AWS 리전 또는
GLOBAL
입니다.CLOUDFRONT
및ROUTE53
범위는GLOBAL
입니다.Type: 문자열
유효한 값:
ap-east-1
|ap-northeast-1
|ap-northeast-2
|ap-northeast-3
|ap-south-1
|ap-southeast-1
|ap-southeast-2
|ca-central-1
|cn-north-1
|cn-northwest-1
|eu-central-1
|eu-north-1
|eu-west-1
|eu-west-2
|eu-west-3
|sa-east-1
|us-east-1
|us-east-2
|us-gov-east-1
|us-gov-west-1
|us-west-1
|us-west-2
|GLOBAL
예:
"region": "us-east-1"
- service
-
IP 주소 범위의 일부입니다.
API_GATEWAY
에 대해 나열된 주소는 송신 전용입니다. 모든 IP 주소 범위를 가져오도록AMAZON
을 지정합니다. 이렇게 하면 모든 서브셋이AMAZON
서브셋에도 있습니다. 하지만 일부 IP 주소 범위는AMAZON
서브셋에만 있습니다. 즉, 다른 서브셋에서 사용할 수 없습니다.Type: 문자열
유효한 값:
AMAZON
|AMAZON_APPFLOW
|AMAZON_CONNECT
|API_GATEWAY
|CHIME_MEETINGS
|CHIME_VOICECONNECTOR
|CLOUD9
|CLOUDFRONT
|CODEBUILD
|DYNAMODB
|EBS
|EC2
|EC2_INSTANCE_CONNECT
|GLOBALACCELERATOR
|KINESIS_VIDEO_STREAMS
|ROUTE53
|ROUTE53_HEALTHCHECKS
|ROUTE53_HEALTHCHECKS_PUBLISHING
|ROUTE53_RESOLVER
|S3
|WORKSPACES_GATEWAYS
예:
"service": "AMAZON"
JSON 파일 필터링
명령줄 도구를 다운로드하여 원하는 정보만 표시하도록 필터링할 수 있습니다.
Windows
AWS Tools for Windows PowerShell에는 이 JSON 파일을 구문 분석하는 cmdlet인 Get-AWSPublicIpAddressRange
가 포함되어 있습니다. 다음 예는 이 cmdlet의 사용법을 보여줍니다. 자세한 내용은 Querying the Public IP Address Ranges for AWS
예 1. 생성 날짜 가져오기
PS C:\>
Get-AWSPublicIpAddressRange -OutputPublicationDate
Wednesday, August 22, 2018 9:22:35 PM
예 2. 특정 리전에 대한 정보 가져오기
PS C:\>
Get-AWSPublicIpAddressRange -Region us-east-1
IpPrefix Region NetworkBorderGroup Service -------- ------ ------- ------- 23.20.0.0/14 us-east-1 us-east-1 AMAZON 50.16.0.0/15 us-east-1 us-east-1 AMAZON 50.19.0.0/16 us-east-1 us-east-1 AMAZON ...
예 3. 모든 IP 주소 가져오기
PS C:\>
(Get-AWSPublicIpAddressRange).IpPrefix
23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ... 2406:da00:ff00::/64 2600:1fff:6000::/40 2a01:578:3::/64 2600:9000::/28
예 4. 모든 IPv4 주소 가져오기
PS C:\>
Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv4"} | select IpPrefix
IpPrefix -------- 23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...
예 5. 모든 IPv6 주소 가져오기
PS C:\>
Get-AWSPublicIpAddressRange | where {$_.IpAddressFormat -eq "Ipv6"} | select IpPrefix
IpPrefix -------- 2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...
예 6. 특정 서비스에 대한 모든 IP 주소를 가져옵니다.
PS C:\>
Get-AWSPublicIpAddressRange -ServiceKey CODEBUILD | select IpPrefix
IpPrefix -------- 52.47.73.72/29 13.55.255.216/29 52.15.247.208/29 ...
Linux
다음 예제 명령에서는 jq 도구
예 1. 생성 날짜 가져오기
$
jq .createDate < ip-ranges.json
"2016-02-18-17-22-15"
예 2. 특정 리전에 대한 정보 가져오기
$
jq '.prefixes[] | select(.region=="us-east-1")' < ip-ranges.json
{ "ip_prefix": "23.20.0.0/14", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, { "ip_prefix": "50.16.0.0/15", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, { "ip_prefix": "50.19.0.0/16", "region": "us-east-1", "network_border_group": "us-east-1", "service": "AMAZON" }, ...
예 3. 모든 IPv4 주소 가져오기
$
jq -r '.prefixes | .[].ip_prefix' < ip-ranges.json
23.20.0.0/14 27.0.0.0/22 43.250.192.0/24 ...
예 4. 모든 IPv6 주소 가져오기
$
jq -r '.ipv6_prefixes | .[].ipv6_prefix' < ip-ranges.json
2a05:d07c:2000::/40 2a05:d000:8000::/40 2406:dafe:2000::/40 ...
예 5. 특정 서비스에 대한 모든 IPv4 주소를 가져옵니다.
$
jq -r '.prefixes[] | select(.service=="CODEBUILD") | .ip_prefix' < ip-ranges.json
52.47.73.72/29 13.55.255.216/29 52.15.247.208/29 ...
예 6. 특정 리전의 특정 서비스에 대한 모든 IPv4 주소 가져오기
$
jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="CODEBUILD") | .ip_prefix' < ip-ranges.json
34.228.4.208/28
예 7. 특정 네트워크 경계 그룹에 대한 정보 가져오기
$
jq -r '.prefixes[] | select(.region=="us-west-2") | select(.network_border_group=="us-west-2-lax-1") | .ip_prefix' < ip-ranges.json
us-west-2-lax-1
송신 제어 구현
인스턴스만 액세스하도록 허용하려면AWS서비스에서 CIDR 블록에 대한 아웃바운드 트래픽을 허용하는 규칙을 사용하여 보안 그룹을 생성합니다.AMAZON
목록에 있는 CIDR 블록을 빼고EC2
목록을 참조하십시오. EC2
목록의 IP 주소를 EC2 인스턴스에 할당할 수 있습니다.
Windows PowerShell
다음 PowerShell 예는 AMAZON
목록에는 있지만 EC2
목록에는 없는 IP 주소를 가져오는 방법을 보여줍니다. 스크립트를 복사해 Select_address.ps1
파일에 저장합니다.
$amazon_addresses = Get-AWSPublicIpAddressRange -ServiceKey amazon $ec2_addresses = Get-AWSPublicIpAddressRange -ServiceKey ec2 ForEach ($address in $amazon_addresses) { if( $ec2_addresses.IpPrefix -notcontains $address.IpPrefix) { ($address).IpPrefix } }
이 스크립트는 다음과 같이 실행할 수 있습니다.
PS C:\>
.\Select_address.ps1
13.32.0.0/15 13.35.0.0/16 13.248.0.0/20 13.248.16.0/21 13.248.24.0/22 13.248.28.0/22 27.0.0.0/22 43.250.192.0/24 43.250.193.0/24 ...
jq
다음 예는 모든 리전에 대해 AMAZON
목록에는 있지만 EC2
목록에는 없는 IP 주소를 가져오는 방법을 보여줍니다.
jq -r '[.prefixes[] | select(.service=="AMAZON").ip_prefix] - [.prefixes[] | select(.service=="EC2").ip_prefix] | .[]' < ip-ranges.json
52.94.22.0/24 52.94.17.0/24 52.95.154.0/23 52.95.212.0/22 54.239.0.240/28 54.239.54.0/23 52.119.224.0/21 ...
다음 예는 결과를 한 리전으로 필터링하는 방법을 보여줍니다.
jq -r '[.prefixes[] | select(.region=="us-east-1" and .service=="AMAZON").ip_prefix] - [.prefixes[] | select(.region=="us-east-1" and .service=="EC2").ip_prefix] | .[]' < ip-ranges.json
Python
다음 python 스크립트는 AMAZON
목록에는 있지만 EC2
목록에는 없는 IP 주소를 가져오는 방법을 보여줍니다. 스크립트를 복사해 get_ips.py
파일에 저장합니다.
#!/usr/bin/env python import requests ip_ranges = requests.get('https://ip-ranges.amazonaws.com/ip-ranges.json').json()['prefixes'] amazon_ips = [item['ip_prefix'] for item in ip_ranges if item["service"] == "AMAZON"] ec2_ips = [item['ip_prefix'] for item in ip_ranges if item["service"] == "EC2"] amazon_ips_less_ec2=[] for ip in amazon_ips: if ip not in ec2_ips: amazon_ips_less_ec2.append(ip) for ip in amazon_ips_less_ec2: print(str(ip))
이 스크립트는 다음과 같이 실행할 수 있습니다.
$
python ./get_ips.py
13.32.0.0/15 13.35.0.0/16 13.248.0.0/20 13.248.16.0/21 13.248.24.0/22 13.248.28.0/22 27.0.0.0/22 43.250.192.0/24 43.250.193.0/24 ...
AWSIP 주소 범위 알림
변경 사항이 있을 때마다AWSIP 주소 범위 알림을 구독자에게 알림을 보냅니다.AmazonIpSpaceChanged
주제를 참조하십시오. 페이로드에는 다음 형식의 정보가 포함되어 있습니다.
{ "create-time":"
yyyy
-mm
-dd
Thh
:mm
:ss
+00:00", "synctoken":"0123456789
", "md5":"6a45316e8bc9463c9e926d5d37836d33
", "url":"https://ip-ranges.amazonaws.com/ip-ranges.json" }
- create-time
-
생성 날짜 및 시간
알림이 제공되는 순서는 정해져 있지 않습니다. 따라서 타임스탬프를 통해 올바른 순서를 확인하는 것이 좋습니다.
- synctoken
-
게시 시간(Unix epoch 시간 형식)
- md5
-
ip-ranges.json
파일의 암호화 해시 값입니다. 이 값을 사용하여 다운로드한 파일이 손상되었는지 여부를 확인할 수 있습니다. - url
-
ip-ranges.json
파일의 위치
에 대한 변경 사항이 있을 때마다 알림을 받으려면AWSIP 주소 범위를 사용하는 경우 Amazon SNS 사용하여 알림을 수신하도록 다음과 같이 구독할 수 있습니다.
을 구독하려면AWSIP 주소 범위 알림
Amazon SNS 콘솔을 엽니다.https://console.aws.amazon.com/sns/v3/home
. -
필요한 경우 탐색 모음에서 리전을 미국 동부(버지니아 북부)로 변경합니다. 구독하는 SNS 알림이 이 리전에 생성되었기 때문에 이 리전을 선택해야 합니다.
-
탐색 창에서 구독을 선택합니다.
-
Create subscription을 선택합니다.
-
구독 생성 대화 상자에서 다음 작업을 수행합니다.
-
[Topic ARN]의 경우, 다음 Amazon 리소스 이름(ARN)을 복사합니다.
arn:aws:sns:us-east-1:806199016981:AmazonIpSpaceChanged
-
[Protocol]의 경우, 사용할 프로토콜을 선택합니다(예:
Email
). -
[Endpoijnt]의 경우, 알림을 받을 엔드포인트를 입력합니다(예: 이메일 주소).
-
Create subscription을 선택합니다.
-
-
지정한 엔드포인트에서 연락이 오고 구독을 확인하라는 메시지가 표시됩니다. 예를 들어 이메일 주소를 지정한 경우, 제목이
AWS Notification - Subscription Confirmation
인 이메일 메시지를 받게 됩니다. 지시에 따라 구독을 확인합니다.
알림은 엔드포인트의 가용성을 따릅니다. 따라서 JSON 파일을 주기적으로 확인하여 최신 범위를 가져왔는지 확인할 수 있습니다. Amazon SNS 안정성에 대한 자세한 내용은 단원을 참조하십시오.http://aws.amazon.com/sns/faqs/#Reliability
이런 알림을 더 이상 받지 않기를 원하는 경우, 다음 절차를 수행해서 구독을 해제하십시오.
구독을 해지하려면AWSIP 주소 범위 알림
-
Amazon SNS 콘솔을 엽니다.https://console.aws.amazon.com/sns/v3/home
. -
탐색 창에서 구독을 선택합니다.
-
구독의 확인란을 선택합니다.
-
[Actions], [Delete subscriptions]를 차례로 선택합니다.
-
확인 메시지가 나타나면 삭제를 선택합니다.
Amazon SNS 대한 자세한 내용은Amazon Simple Notification 서비스 개발자 가이드.
릴리스 정보
다음 표에서 업데이트에 대해 설명합니다.AWSIP 주소 범위 또한 각 리전 출시와 함께 새로운 리전 코드도 추가됩니다.
설명 | 릴리스 날짜 |
---|---|
ROUTE53_RESOLVER 서비스 코드를 추가했습니다. |
2021년 6월 24일 |
EBS 서비스 코드를 추가했습니다. |
2021년 5월 12일 |
KINESIS_VIDEO_STREAMS 서비스 코드를 추가했습니다. |
202019년 11월 19일 |
CHIME_MEETINGS 및 CHIME_VOICECONNECTOR 서비스 코드를 추가했습니다. |
2020년 6월 19일 |
AMAZON_APPFLOW 서비스 코드를 추가했습니다. |
2020년 6월 9일 |
네트워크 경계 그룹에 대한 지원을 추가합니다. | 2020년 4월 7일 |
WORKSPACES_GATEWAYS 서비스 코드를 추가했습니다. |
2020년 3월 30일 |
ROUTE53_HEALTHCHECK_PUBLISHING 서비스 코드를 추가했습니다. |
20202019년 1월 30일 |
API_GATEWAY 서비스 코드를 추가했습니다. |
2019년 9월 26일 |
EC2_INSTANCE_CONNECT 서비스 코드를 추가했습니다. |
2018년 26월 6일 |
DYNAMODB 서비스 코드를 추가했습니다. |
2019년 4월 25일 |
GLOBALACCELERATOR 서비스 코드를 추가했습니다. |
2018년 12월 20일 |
AMAZON_CONNECT 서비스 코드를 추가했습니다. |
2018년 20월 6일 |
CLOUD9 서비스 코드를 추가했습니다. |
2018년 20월 6일 |
CODEBUILD 서비스 코드를 추가했습니다. |
2018년 19월 4일 |
S3 서비스 코드를 추가했습니다. |
2017년 2월 28일 |
IPv6 주소 범위에 대한 지원을 추가했습니다. | 2016년 8월 22일 |
최초 릴리스 | 2014년 11월 19일 |