AWS 서비스의 IP 주소 찾기 및 서비스 액세스 제한 - Amazon Virtual Private Cloud

AWS 서비스의 IP 주소 찾기 및 서비스 액세스 제한

AWS에서 제공하는 'ip-ranges.json' 파일은 다양한 AWS 서비스의 IP 주소를 찾고 해당 정보를 활용하여 네트워크 보안 및 액세스 제어를 강화하는 데 유용한 리소스가 될 수 있습니다. 이 JSON 파일에 포함된 세부 데이터를 구문 분석하면 특정 AWS 서비스 및 리전과 연결된 IP 주소 범위를 정확하게 식별할 수 있습니다.

예를 들어, IP 주소 범위를 활용하여 강력한 네트워크 보안 정책을 구성하고, 세분화된 방화벽 규칙을 설정하여 특정 AWS 리소스에 대한 액세스를 허용하거나 거부할 수 있습니다. 이 정보는 다양한 AWS Network Firewall 네트워크 방화벽 작업에도 유용할 수 있습니다. 이러한 수준의 제어는 애플리케이션과 데이터를 보호하는 데 매우 중요하며, 승인된 트래픽만 필요한 AWS 서비스에 도달할 수 있도록 보장합니다. 또한 이러한 IP 인텔리전스를 확보하면 애플리케이션이 올바른 AWS 엔드포인트와 통신하도록 적절하게 구성되어 전반적인 안정성과 성능을 개선하는 데 도움이 됩니다.

방화벽 규칙뿐 아니라 'ip-ranges.json' 파일을 활용하여 네트워크 인프라에서 정교한 송신 필터링을 구성할 수도 있습니다. 다양한 AWS 서비스의 대상 IP 주소 범위를 파악하면 라우팅 정책을 설정하거나 고급 네트워크 보안 솔루션을 활용하여 의도한 대상에 따라 아웃바운드 트래픽을 선택적으로 허용하거나 차단할 수 있습니다. 이러한 송신 제어는 데이터 유출과 무단 액세스의 위험을 완화하는 데 필수적입니다.

'ip-ranges.json' 파일은 정기적으로 업데이트되므로 가장 정확하고 최신 정보를 확보하려면 최신 로컬 복사본을 유지하는 것이 중요합니다. 이 파일의 콘텐츠를 지속적으로 활용하면 AWS 기반 애플리케이션에 대한 네트워크 액세스와 보안을 효율적으로 관리하여 전반적인 클라우드 보안 태세를 강화할 수 있습니다.

JSON 파일 필터링

명령줄 도구를 다운로드하여 원하는 정보만 표시하도록 필터링할 수 있습니다.

Windows

AWS Tools for Windows PowerShell에는 이 JSON 파일을 구문 분석하는 cmdlet인 Get-AWSPublicIpAddressRange가 포함되어 있습니다. 다음 예는 이 cmdlet의 사용법을 보여줍니다. 자세한 내용은 Querying the Public IP Address Ranges for AWSGet-AWSPublicIpAddressRange 단원을 참조하십시오.

예 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 도구를 사용하여 JSON 파일의 로컬 사본을 구문 분석합니다.

예 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 70.224.192.0/18 52.95.230.0/24 15.253.0.0/16 ...

송신 제어 구현

하나의 AWS 서비스를 이용하여 생성한 리소스가 다른 AWS 서비스에만 액세스하는 것을 허용하기 위해서는 ip-ranges.json 파일에 있는 IP 주소 범위 정보를 사용하여 송신 필터링 작업을 수행할 수 있습니다. 보안 그룹 규칙에서 AMAZON 목록의 CIDR 블록으로의 아웃바운드 트래픽이 허용되는지 확인하세요. 보안 그룹에 대한 할당량이 있습니다. 각 리전의 IP 주소 범위 수에 따라 리전당 여러 보안 그룹이 필요할 수 있습니다.

참고

일부 AWS 서비스는 EC2를 기반으로 구축되었으며 EC2 IP 주소 공간을 사용합니다. EC2 IP 주소 공간으로의 트래픽을 차단할 경우 이러한 EC2 이외의 서비스에 대한 트래픽도 차단됩니다.