AWS 보안 그룹

김명주·2025년 2월 13일

보안 그룹은 AWS 클라우드에서 네트워크 보안을 수행하는데 있어서 기본적인 부분이다.
보안 그룹은 EC2 인스턴스 안팎으로 트래픽이 허용되는 방식을 제어하고 허용 규칙만 포함되어 있어서 매우 쉽게 제어할 수 있다.
보안 그룹은 IP 주소를 기준으로(컴퓨터의 출발지) 규칙을 설정할 수 있다. 또는 다른 보안 그룹을 참조하여 설정할 수 있다.
참고로 보안 그룹은 서로 참조할 수 있다.

보안 그룹 설정 예


우리가 컴퓨터에서 EC2 인스턴스에 접근하려고 한다. 그리고 EC2 인스턴스를 중심으로 보안 그룹을 생성하려고 한다. 그것이 주변에 있는 방화벽이고, 보안 그룹에는 규칙이 있을 것이다.
이러한 규칙은 인바운드 트래픽, 즉 외부에서 EC2 인스턴스로 들어가는 것이 허용되는지, EC2 인스턴스가 일부 아웃바운드 트래픽을 수행할 수 있는지, 즉 인터넷으로 나가는 것이 허용되는지도 알려준다.

보안 그룹 규칙

보안 그룹은 EC2 인스턴스의 방화벽이며 일부 내용을 규제한다

  • 포트에 대한 액세스
  • 승인된 IP 범위 표시
    • IPv4 인지 IPv6
  • 인바운드 네트워크 제어 (외부에서 인스턴스로 들어오는 것)
  • 아웃바운드 네트워크 제어 (인스턴스에서 외부로 나가는 것)

방화벽 작동 방식

  1. 내 컴퓨터는 22번 포트에서 인증을 받게 된다. 이 컴퓨터를 통해 우리는 EC2 인스턴스로 이동할 수 있다.

  2. 하지만 인증을 받지 않은 다른 사람의 컴퓨터(내 IP주소가 아님)는 EC2 인스턴스에 접근하려고 하면 방화벽이 차단하고 타임아웃 되어 통과할 수 없다.

  3. 아웃바운드의 경우, 기본적으로 모든 보안 그룹에 대한 EC2 인스턴스가 모든 트래픽이 나가는 것을 허용한다.

알아두면 좋은 것

  • 보안 그룹은 여러 인스턴스에 연결할 수 있다. (1:1 관계가 아님)
  • 특정 지역과 VPC 조합에만 제한된다.
    • 다른 지역으로 전환할 경우, 새 보안 그룹을 생성해야 한다.
  • 보안 그룹은 EC2 외부에 있다
    • 트래픽이 차단되면 EC2 인스턴스는 트래픽을 볼 수 없다.
  • SSH 액세스를 위해서만 별도의 보안 그룹을 하나 유지하는 것이 좋다.
  • 애플리케이션에 접근할 수 없는 경우(타임아웃), 보안 그룹의 문제다.
  • 하지만 연결 거부 오류가 발생하면 실제로 연결 거부 응답을 받게되는데, 이는 보안 그룹이 작동하고 트래픽이 통과했지만 애플리케이션이 오류가 나거나 실행되지 않은 것이다.
  • 기본적으로 모든 인바운드 트래픽은 차단되고 모든 아웃바운드 트래픽은 승인된다.

다른 보안 그룹 참조


EC2 인스턴스의 IP에 관계 없이 올바른 보안 그룹이 연결되어 있다면 다른 인스턴스와 직접 통신할 수 있고 이것은 항상 IP를 생각하지 않아도 된다.
하지만 위 이미지처럼 보안 그룹 3번은 보안 그룹 1번의 인바운드 보안 규칙에 승인되지 않앗기 때문에 거부되고 작동하지 않는다.

포트

  1. 22 = SSH(Secure Shell), SFTP(Secure File Transfer Protocol)
  • SSH는 리눅스에서 EC2 인스턴스에 로그인 할 수 있음
  • SFTP는 SSH를 이용하여 파일을 업로드할 때 사용된다.
  1. 21 = FTP(File Transfer Protocol)
  • 파일을 파일 공유에 업로드 하는데에 사용됨
  1. 80 = HTTP용 포트
  • 보안되지 않은 웹 사이트에 접속하기 위한 포트 번호
  1. 443 = HTTPS
  • 보안이 적용된 웹 사이트에 접속하기 위한 포트 번호
  1. 3389 = RDP(Remote Desktop Protocol)
  • 윈도우 인스턴스에 로그인하는 데 사용됨
profile
개발자를 향해 달리는 사람

0개의 댓글