인바운드 규칙은 접속을 허용하는 규칙을 정리한 것으로 내가 ssh연결로 instance에 연결하고자 한다면 당연히 내 ip만 허용하는 것이 보안 상 유리하다.
하지만 인바운드 규칙을 위와같은 이유로 내 ip만 허용해놓으면 아마존에서 keypair를 이용하지않고도 인스턴스에 연결할 수 있도록 해놓은 편리한 서비스인 EC2 Instance Connect 서비스를 사용하지못한다.
왜냐면 접속 자격증명 데이터를 aws 자체에서 내 인스턴스에 밀어넣으면서 연결해주는 서비스다보니까 자연스럽게 내 ip로 연결하지 않으니까!
따라서 SSH 연결이나 다른 대안이 아닌 EC2 Instance Connect 서비스를 활용하기위해서는 인바운드 규칙에서 SSH 연결 22번포트의 aws의 ip대역을 허용해줘야 한다.
aws cloudshell에서 아래 조회 명령을 입력하면,
curl -sL ip-ranges.amazonaws.com/ip-ranges.json | jq '.prefixes[] | select(.region=="ap-northeast-2" and .service=="EC2_INSTANCE_CONNECT")'
내가 속한 리젼인 서울에서 aws가 사용하는 대역들을 알려준다.
{
"ip_prefix": "13.209.1.56/29",
"region": "ap-northeast-2",
"service": "EC2_INSTANCE_CONNECT",
"network_border_group": "ap-northeast-2"
}
AWS는 정기적으로 업데이트되는 ip-ranges.json 파일을 제공하는 페이지가 있는데,
https://ip-ranges.amazonaws.com/ip-ranges.json
여기서 직접 검색해서 확인해봐도 좋고 curl 명령어를 활용하여 조회할 수도 있다.
설명에 for aws seoul이라고 적혀잇는 부분이 EC2 Instance Connect 를 aws가 해줄 수 있도록 허용한 aws가 사용하는 ip 대역이다.