본문 바로가기

DevOps/AWS

보안 설정하기 ( securing your system - IAM, security groups, VPC )

Controlling Network traffic to and from your virtual server

EC2 instance에 허용된 network만 접속이 되도록 하고 싶다. 방화벽을 이용하면 ingoing, outgoing traffic을 제어할 수 있다. 웹서버를 돌리고 있다면, 80, 443를 제외한 다른 포트를 닫고 싶을 수 있다.


기본 설정으로는 inbound - all deny, outbound - all allow로 되어 있고, 우리가 원하는대로 filter를 추가해나가면 된다.


Security Group을 이용하여 traffice to virtual server 컨트롤 하기

EC2 instance와 같은 AWS resource 접근 권한과 관련된 것이 Security Group이다. Security Group은 정해진 규칙에 따라 network traffice을 허용한다.
  • Direction ( inbound or outbound )
  • IP protocol ( TCP, UDP, ICMP )
  • Source / Destination IP address
  • Port
  • Source / destination security group (?)


ICMP, SSH traffic 허용하기

EC2 instance에 ping을 날려보면 ICMP는 허용되어 있지 않아 통신이 되지 않는다. Security group에 inbound traffice 설정을 바꿔 보자.


Security Group을 생성하고, Inbound에 port 22를 허용해주면 



다음과 같이 ssh를 이용하여 접속이 되는 것을 확인할 수 있다.



source IP address에서 접근하는 SSH traffic만 허용해주기

public IP address를 하드코딩해서 박아놓는 것은 좋은 방법이 아니다. 왜냐하면 매번 바꿔줘야 하기 때문이다. parameter를 이용하여 설정을 해보자.


Public IP vs Private IP

내 로컬 네트워크를 살펴보면, private IP주소는 192.168.0.*이고, public IP는 210.207.174.131 이다. 나의 인터넷 게이트웨이는 public IP 주소를 가지고 있고, 모든 요청은 gateway에 의해서 redirect된다. 로컬 네트워크는 public IP address를 모른다. 


예를 들어, MySQL DB 접근은 웹서버만 가능하도록 할 수 있다. 클라우드 환경에서는 서버가 많고, 변경이 자주 되기 때문에 IP주소로 관리하는 것은 말이 안된다. Security Group 기반으로 하면 관리가 쉬워 진다.


Security Group으로 설정하면 어떠한 장점이 있는지 살펴보기 위해, SSH 접근을 위한 Bastion host을 살펴보자.