본문 바로가기
SK shieldus Rookies 16기

[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(28일차)

by Challenge programmers 2023. 12. 1.

오늘 학습 주제

1. AWS 환경

2. VPC

3. EC2

 

 

 

 

 

AWS 환경


- AWS 서비스 이용 방법 -

AWS 서비스 이용 방법
방법
  1. Management Console ⇐ 사람 사용자가 로그인 후 사용 

  2. AWS CLI ⇐ 사람 또는 프로그램이 Access Key를 이용해서 사용

  3. 각 개발 언어별 SDK ⇐ 응용 프로그램을 이용해서 사용

 

 

- AWS CLI(Command Line Interface) -

AWS CLI
정의 AWS 리소스를 관리하고 AWS 서비스와 상호 작용하는 명령 줄 도구
방법
  1. AWS 서비스와의 통합: 다양한 AWS 서비스와 상호 작용가능하여 EC2, S3, IAM, Lambda 등을 관리
  2. 프로파일 지원: 여러 AWS 계정 및 리전을 사용하는 경우 각각의 프로파일을 설정하여 선택적으로 사용 가능
  3. AWS 리소스 생성 및 관리: EC2 인스턴스 시작, S3 버킷 관리, 보안 그룹 및 IAM 사용자 생성과 같은
    다양한 작업을 수행 가능
  4. JSON 출력 지원: 명령 결과를 JSON 형식으로 출력하여 다른 도구 또는 스크립트에서 쉽게 구문 분석 가능

 

 

 

VPC(Virtual Private Cloud)


- VPC(Virtual Private Cloud) -

VPC
정의 AWS 사용자 계정 전용 가상 네트워크
특징
  • AWS 클라우드에서 다른 가상 네트워킁와 논리적으로 분리
  • 한 AWS 리전 안에서만 존재할 수 있고, 한 리전에 만든 VPC는 다른 리전에서는 보이지 않음 ⇒ VPC Peering
  • 생성할 때 RFC 1918에 지정된 프라이빗 주소 체계 사용을 권고
    • 10.0.0.0/8     ⇒ 10.0.0.0    - 10.255.255.255
    • 172.16.0.0/12  ⇒ 172.16.0.0  - 172.31.255.255
    • 192.168.0.0/16 ⇒ 192.168.0.0 - 192.168.255.255

 

 

- VPC 구성 옵션 -

VPC 구성 옵션
정의 AWS 사용자 계정 전용 가상 네트워크
특징
  • 가용 영역: AWS 리전에 중복 전원, 네트워킹 및 연결이 있는 하나 이상의 개별 데이터 센터 

  • CIDR 블록: 선택한 IP 주소 범위 내에서 서브넷을 생성하고 다양한 네트워크 구성 요소를 관리하는 데 사용

  • DNS 옵션: VPC의 DNS 관리

  • 인터넷 게이트웨이(IGW): VPC와 외부를 연결해주는 역할이며 라우팅 필요

  • 이름: VPC를 구별하는 데 사용되며, 관리 목적으로 사용자가 쉽게 식별할 수 있도록 지정

  • NAT 게이트웨이: 아웃바운드 인터넷 트래픽을 지원하기 위한 서비스

 

 

- 기본 VPC -

기본 VPC
정의 각 가용 영역의 퍼블릭 서브넷, 인터넷 게이트웨이 및 DNS 확인 활성화 설정과 함께 제공
특징
  • IPv4 CIDR 블록의 크기가 /16인 VPC를 제작(172.31.0.0/16). 이는 최대 65,536개의
    프라이빗 IPv4 주소를 제공
  • 가용 영역에 크기 /20의 기본 서브넷을 생성합니다. 이렇게 하면 서브넷당
    최대 4,096개의 주소가 제공되며, 그중 몇 개는 내부용으로 예약되어 있습니다.


  • 인터넷 게이트웨이를 만들어 기본 VPC에 연결합니다.
  • 기본 라우팅 테이블에 모든 트래픽(0.0.0.0/0)이 인터넷 게이트웨이로 전달되는 경로를 추가합니다.
  • 기본 보안 그룹을 만들어 기본 VPC와 연결합니다.        ⇐ 모든 인바운드/아웃바운드 트래픽을 허용
  • 네트워크 ACL(액세스 제어 목록)을 생성하여 기본 VPC와 연결합니다.
  • AWS 계정에서 설정된 기본 DHCP 옵션을 기본 VPC와 연결합니다.

 

 

- 서브넷 -

서브넷
정의 VPC 내 논리적인 구분
특징
  • EC2 인스턴스를 배치하는 장소 = 인스턴스는 서브넷 안에 위치
    • 한번 서브넷에 인스턴스를 생성하면 다른 서브넷으로 이동 불가
    • 인스턴스를 종료하고 다른 서브넷에 새 인스턴스를 만들 수 있음
  • 인스턴스를 서로 격리하고, 인스턴스 간의 트래픽 흐름을 제어하고,
    인스턴스를 기능별로 묶을 수 있는 기능 제공

  • 서브넷은 하나의 가용 영역(AZ) 내에서만 존재할 수 있음(두 개 이상의 가용 영역에 걸쳐서 만들기 불가)

  • 서브넷의 CIDR 블록
    • VPC의 일부, VPC 내에서는 유니크해야 함
    • 모든 서브넷에서 처음 4개의 IP와 마지막 1개의 IP는 예약되어 있으므로 인스턴스에 할당 불가
      • ex) 서브넷 CIDR이 172.16.100.0/24인 경우
        • 172.16.100.0 ~ 172.16.100.255
        • 172.16.100.0 ⇒ 네트워크 주소
        • 172.16.100.1 ⇒ AWS에서 VPC 라우팅용으로 예약
        • 172.16.100.2 ⇒ DNS 서버 주소
        • 172.16.100.3 ⇒ AWS에서 나중에 사용하려고 예약
        • 172.16.100.255 ⇒ 브로드캐스트 주소
        • 172.16.100.4 ~ 172.16.100.254 ⇒ 인스턴스에 할당 가능
  • 퍼블릭 서브넷서브넷이 인터넷 게이트웨이로 향하는 라우팅이 있는 라우팅 테이블과 연결된 경우
  • 프라이빗 서브넷서브넷이 인터넷 게이트웨이로 향하는 라우팅이 없는 라우팅 테이블과 연결된 경우

 

 

- ENI(Elastic Network Interface) -

ENI: 탄력적 네트워크 인터페이스
정의 물리 서버의 NIC와 같은 기능을 수행하며
VPC에서 가상 네트워크 카드를 나타내는 논리적 네트워킹 구성 요소
특징
  • IPv4 CIDR 블록의 크기가 /16인 VPC를 제작(172.31.0.0/16). 이는 최대 65,536개의
    프라이빗 IPv4 주소를 제공
  •  가용 영역에 크기 /20의 기본 서브넷을 생성합니다. 이렇게 하면 서브넷당
    최대 4,096개의 주소가 제공되며, 그중 몇 개는 내부용으로 예약되어 있습니다.


  • 인터넷 게이트웨이를 만들어 기본 VPC에 연결합니다.
  • 기본 라우팅 테이블에 모든 트래픽(0.0.0.0/0)이 인터넷 게이트웨이로 전달되는 경로를 추가합니다.
  • 기본 보안 그룹을 만들어 기본 VPC와 연결합니다.        ⇐ 모든 인바운드/아웃바운드 트래픽을 허용
  • 네트워크 ACL(액세스 제어 목록)을 생성하여 기본 VPC와 연결합니다.
  • AWS 계정에서 설정된 기본 DHCP 옵션을 기본 VPC와 연결합니다.

 

 

- 인터넷 게이트웨이(IGW) -

인터넷 게이트웨이
정의 퍼블릭 IP 주소를 갖는 인스턴스가 인터넷에 연결할 수 있도록 기능을 제공
특징
  • 처음 VPC를 만들면 IGW가 연결되어 있지 않으며 직접 IGW를 만들고 VPC와 연결 필요

  • 하나의 VPC는 하나의 IGW만 연결 가능

 

 

- 라우팅 -

라우팅
정의 VPC의 네트워크 트래픽을 전달할 위치를 결정하는데 사용되는 규칙
특징
  • VPC의 네트워크 트래픽을 전달할 위치를 결정하는데 사용되는 규칙

  • 트래픽을 전달할 IP 주소 범위(대상 주소)와 트래픽을 전송할 게이트웨이,
    네트워크 인터페이스 또는 연결(대상)을 지정

  • VPC는 소프트웨어 함수로 IP 라우팅을 구현 ⇒ 사용자는 라우팅 테이블만 관리

  • 라우팅 테이블 ⇒ 라우팅 집합으로 서브넷과 연결할 수 있음

  • 기본 라우팅 테이블: VPC와 함께 자동으로 제공되는 라우팅 테이블 
    • 기본 VPC인 경우, local 및 IGW로의 라우팅을 포함
    • 기본 VPC가 아닌 경우, local 라우팅만 포함

 

라우팅 테이블 예시

상단의 라우팅 테이블을 바탕으로 예를 들자면

  • 172.31.10.10 주소로 트래픽을 보내는 경우, 172.31.0.0/16 주소 범위에 속하므로 VPC 내부에서 대상 인스턴스를 찾고, 192.100.10.10 주소로 트래픽을 보내는 경우, 172.31.0.0/16 주소 범위에 속하지 않고, 0.0.0.0/0 주소 범위에는 속하므로 IGW로 해당 트래픽을 전달

⇒ 라우팅할 위치와 가장 근접하게 일치하는 항목을 기반으로 라우팅을 처리 

⇒ 라우팅 테이블의 항목들간의 순서는 중요하지 않음

 

 

- 보안 그룹(SG, Security Gruop) -

보안 그룹
정의 방화벽과 같은 기능을 제공하며 
인스턴스의 ENI에서 송수신하는 트래픽을 제어
특징
  • 모든 ENI는 최소 한 개 이상의 보안 그룹과 연결되어야 하며, 보안 그룹은 여러 ENI와 연결 가능

  • 생성할 때 보안 그룹 이름, 설명, 포함될 VPC를 지정하고,
    생성 후에 인바운드, 아웃바운드 규칙을 지정 ⇒ 트래픽을 허용

  • 상태 저장 방화벽 역할 ⇒ 보안 그룹이 트래픽을 한 방향으로 전달 되도록 허용할 때
    반대 방향의 응답 트래픽을 지능적으로 허용
    (ex. 웹 클라이언트에서 HTTPS로 요청을 허용했다면 요청에 대한 응답도 허용)

 

 

- NACL(Network Access Control List) -

NACL
정의 보안 그룹과 유사한 역할(방화벽과 같은 역할)
원본 또는 대상 주소 CIDR, 프로토콜, 포트를 기반으로
트래픽을 인바운드. 아웃바운드 규칙으로 제어
특징
  • VPC에 삭제할 수 없는 기본 NACL이 있음

  • 서브넷에 연결되어 해당 서브넷과 송수신되는 트래픽을 제어

  • 상태비저장
    • NACL을 통과한 연결 상태를 추적하지 않음
    • 모든 인바운드와 아웃바운드 트래픽의 허용 규칙을 별도로 작성해야 함
  • 규칙을 적용할 때 규칙 번호의 오름차순으로 처리(라우팅과 반대로 순서가 중요하다)

 

 

- 보안 그룹 및 NACL 비교 -

  보안그룹 NACL
운영 인스턴스 레벨 서브넷 레벨
적용 인스턴스와 연결된 경우에만 인스턴스에 적용 연결된 서브넷에서 배포된 모든 인스턴스에 적용
(보안 그룹 규칙이 지나치게 허용적일 경우
추가 보안 계층 제공)
규칙 허용 규칙만 지원 허용 및 거부 규칙 지원
트래픽 트래픽 허용 여부를 결정하기 전에 모든 규칙을 평가 트래픽 허용 여부를 결정할 때 가장 낮은 번호의 규칙부터
순서대로 규칙을 평가
상태 상태 저장:
규칙에 관계없이 반환 트래픽이 허용됨
상태 비저장:
반환 트래픽이 규칙에 따라 명시적으로 허용되어야 함

 

 

 

 

EC2(Elastic Compute Cloud)


- EC2(Elastic Compute Cloud) -

EC2
정의 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 서비스
특징
  • 안정적인 확장 가능한 인프라에 온디맨드로 액세스

  • 99.99%의 가용성을 지우너하는 SLA 약정을 기반으로 몇 분안에 용량 크기 조정

  • 애플리케이션을 위한 안전한 컴퓨팅을 제공

  • AWS Nitro System에서 Amazon EC2를 기반으로 보안 구축

  • AWS Graviton 기반 인스턴스, Amazon EC2 스팟 인스턴스 및 AWS 절감형 플랜과 같은
    유연한 옵션을 통해 성능과 비용을 최적화

 

 

- AMI(Amazon machine Image) -

AMI
정의 인스턴스를 시작하는데 필요한 정보를 제공하는 AWS에서 지원되고 관리되는 가상머신 이미지
특징
  • 안정적인 확장 가능한 인프라에 온디맨드로 액세스

  • 99.99%의 가용성을 지우너하는 SLA 약정을 기반으로 몇 분안에 용량 크기 조정

  • 애플리케이션을 위한 안전한 컴퓨팅을 제공

  • AWS Nitro System에서 Amazon EC2를 기반으로 보안 구축

  • AWS Graviton 기반 인스턴스, Amazon EC2 스팟 인스턴스 및 AWS 절감형 플랜과 같은
    유연한 옵션을 통해 성능과 비용을 최적화

인스턴스 명명 규칙

 

 

- EBS(Elastic Block Store) -

EBS
정의 인스턴스를 시작하는데 필요한 정보를 제공하는 AWS에서 지원되고 관리되는 가상머신 이미지
특징 다양한 사용 사례에 대응하기 위해 다양한 볼륨 유형을 제공하며,
특히 EC2 인스턴스에 데이터를 저장하고 관리해야 할 때 중요한 역할

 

 

- EIP(Elastic IP, 탄력적 IP) -

EIP
정의 AWS 계정에 할당하는 정적 IPv4 주소
특징
  • AWS 계정에 할당되며 릴리스 할 때까지 할당된 상태를 유지

  • EC2 인스턴스를 중지하고 다시 시작하면 퍼블릭 IP 주소가 변경되나,
    EC2 인스턴스에 EIP 주소를 연결하면 EC2 인스턴스를 다시 시작해도 동일한 IP로 접속이 가능

  • EIP 주소 요금
    • 인스턴스가 실행 중인 동안에는 이와 연결된 EIP 주소 하나에 대해서만 요금이 부과되지 않지만
      해당 인스턴스와 연결된 추가 EIP 주소에 대해서는 요금이 부과
    • 연결되어 있지 않거나 중지된 인스턴스 또는 연결되지 않은 네트워크 인터페이스와 연결된 경우
      시간당 요금이 부과
    • 2024년 2월 1일부터, 실행 중인 인스턴스와 연결된 주소를 포함하여 모든 탄력적 IP 주소에 대해
      요금이 부과(실행 여부와 관계없이 요금 부과)