나의 성장기 보안/코딩$

AWS Cloud Practitioner Essential M2-3

AWS Cloud Practitioner Essentials
@2021-02-23 13:46:14

Amazon Virtual Private Cloud(VPC)

-AWS 클라우드는 종량제 온디맨드 컴퓨팅뿐 아니라 관리형 서비스도 제공하며 모두 웹에서 액세스 할 수 있다. 이러한 컴퓨팅 및 리소스는 익숙한 네트워크 구조로 구현된 정상 IP 프로토콜을 통해 액세스 할 수 있어야 한다. 고객은 네트워킹 모범 사례를 준수하면서 규제 및 조직의 요구 사항도 충족해야 한다.

Amazon Virtual Private Cloud(Amazon VPC)는 네트워킹 요구 사항을 충족하는 AWS 네트워킹 서비스이다.

Amazon VPC를 통해 온프레미스 네트워크와 동일한 개념 및 구조를 많이 사용하는 AWS 클라우드 내 프라이빗 네트워크를 생성할 수 있으며, 나중에 살펴보겠지만 네트워크 설정의 복잡성 대부분이 제어, 보안 및 유용성을 희생하지 않고 추상화되었다.

  • Amazon VPC를 사용하면서 네트워크 구성을 완벽하게 제어할 수 있다.
    고객은 IP주소 공간, 서브넷 및 라우팅 테이블과 같은 일반 네트워킹 구성 항목을 정의할 수 있다.
  • 이를 통해 사용자는 인터넷에 공개할 수 있는 항목과 Amazon VPC 내에서 격리할 항목을 제어할 수 있다.
  • Amazon VPC를 네트워크의 보안 제어 계층에 배포할 수 있다. 여기에는 서브넷 격리, 액세스 제어 목록 정의, 라우팅 규칙 사용자 지정이 포함된다.
  • 수신 트래픽과 발신 트래픽의 허용 및 거부를 완전히 제어할 수 있다.
  • Amazon VPC에 배포된 후 고객의 클라우드 네트워크에 구축된 보안 이점을 누릴 수 있는 다양한 AWS 서비스가 있다.
  • Amazon VPC는 AWS 기초 서비스이며 다양한 AWS 서비스와 통합된다.
    ex) Amazon EC2 인스턴스는 고객의 Amazon VPC에 배포된다. 마찬가지로 Amazon RDS 데이터베이스 인스턴스는 고객의 VPC에 배포되며, 여기서 데이터베이스는 온프레미스 네트워크와 같이 네트워크 구조로 보호된다.
  • Amazon VPC를 이해 및 구현하면 다른 AWS 서비스를 완벽하게 사용할 수 있다.

Amazon VPC의 기능

1. AWS 리전 및 가용 영역(AZ)의 고가용성을 기반으로 구축

  • Amazon VPC는 리전 및 가용 영역(AZ)의 글로벌 인프라에 구축되어 AWS 클라우드에서 제공하는 고가용성을 손쉽게 활용할 수 있다.
  • Amazon VPC는 리전 내에 상주하고 여러 가용 영역에 걸쳐 존재할 수 있다.
  • 각 AWS 계정은 환경을 구별하는 데 사용할 수 있는 여러 VPC를 생성할 수 있다.
  • VPC는 IP주소 공간을 정의한 다음 서브넷으로 나눈다.

2. 서브넷

  • 가용 영역 내에 배포되어 VPC가 여러 가용 영역으로 확장된다.
  • 한 VPC에 많은 서브넷을 생성할 수 있다.
  • 네트워크 토폴로지의 복잡성을 제한하기 위해 적은 수의 서브넷을 권장하지만, 이는 전적으로 사용자에게 달려있다.
  • 서브넷과 인터넷 간의 트래픽을 제어할 수 있도록 서브넷용 라우팅 테이블을 구성할 수 있다.
  • 기본적으로 VPC 내 모든 서브넷은 서로 통신할 수 있다.
  • 서브넷은 일반적으로 퍼블릭 또는 프라이빗으로 분류된다.
    퍼블릭은 인터넷에 직접 액세스할 수 있고 프라이빗은 인터넷에 직접 액세스할 수 없다.

3. 라우팅 테이블

  • 서브넷을 퍼블릭으로 설정하려면 인터넷 게이트웨이를 VPC에 연결하고 퍼블릭 서브넷의 라우팅테이블을 업데이트하여 로컬이 아닌 트래픽을 인터넷 게이트웨이로 보내야 한다.
  • EC2인스턴스도 인터넷 게이트웨이로 라우팅하기 위한 퍼블릭 IP주소가 필요하다.

4. 인터넷 게이트웨이(GW)

5. NAT 게이트웨이

6. 네트워크 액세스 제어 목록(NACL)


VPC 예제

-컴퓨팅 리소스 및 AWS 서비스를 배포하기 위해 사용할 수 있는 Amazon VPC 예제를 설계해보자.

  • 고 가용성을 지원하고 여러 서브넷을 사용하는 네트워크를 생성할 것이다.

1. VPC는 리전 기반이므로 리전을 선택해야 한다.

2. VPC를 생성한다. (이름을 Test-VPC)

3. VPC의 IP 주소 공간을 정의한다. (10.0.0.0/16)
    10.0.0.0/16은 CIDR 형식이며 VPC에서 사용하는 IP주소가 65,000개 이상임을 의미한다.

4. 이름이 Subnet A1인 서브넷을 생성한다.
    256개의 IP 주소가 포함된 IP 주소 공간을 할당했다. 또한 이 서브넷이 가용 영역 A에 상주할 것임을 지정한다.
    10.0.0.0/24

5. 이름이 Subnet B1인 서브넷을 또 하나 생성한다.
    IP 주소 공간을 지정한다. 10.0.0.0/23
    하지만 이 서브넷은 512개의 IP주소를 포함한다.

6. Test-IGW라는 인터넷 게이트웨이를 추가한다.

7. Subnet A1은 퍼블릭 서브넷이 된다. 여기서 로컬이 아닌 트래픽이 인터넷 게이트웨이를 통해 라우팅된다.

8. Subnet B1은 프라이빗 서브넷이 된다. 이 서브넷은 인터넷에서 격리되어 있다.

VPC 네트워크 구조

자세한 내용은 aws.amazon.com/VPC를 참조하면 된다.


AWS 보안 그룹

- AWS Security Group는 Amazon Web Services에서 가장 중요하다. 또한 AWS 클라우드에서 데이터를 안전하게 보호할 수 있는 여러 강력한 보안 옵션을 제공한다.

  • AWS에서 보안 그룹은 가상 서버를 위한 내장된 방화벽과 같은 역할을 한다. 보안 그룹을 통해 인스턴스에 얼마나 쉽게 액세스할 수 있는지 완벽하게 제어할 수 있다.
  • 가장 기본적인 수준의 경우 인스턴스로 트래픽을 필터링하는 또 다른 방법이다.
  • 보안 그룹은 어떤 트래픽을 허용할지 거부할지 제어할 수 있다.
  • 인스턴스에 액세스할 수 있는 사용자를 결정하려면 보안 그룹 벽을 구성해야 한다.
  • 규칙은 인스턴스를 완전히 사적으로, 공개적으로 또는 그 중간으로 유지하는 것까지 다를 수 있다.

AWS 멀티 티어 보안 그룹의 예시

멀티 Tier Security Group의 예시

  • 위의 아키텍처에서는 이 멀티 티어 웹 아키텍처를 수용하기 위해 여러 보안 그룹이 생성된 것을 알 수 있다.
  • 웹 티어부터 시작하면 인터넷 어디에서나 웹 트래픽을 허용하는 규칙을 설정한 것을 알 수 있다.
    HTTP는 포트 80이고 HTTPS는 포트 443이다.
    인터넷 어디에서나 트래픽을 수용하기 위해 0.0.0.0/0 소스를 선택했다.
  • 앱 티어로 이동하면 웹 티어의 트래픽만 허용하는 보안 그룹이 있으며, 마찬가지로 데이터베이스 티어도 앱 티어의 트래픽만 수용할 수 있다.
  • 마지막으로 SSH포트 22를 통해 회사 네트워크에서 원격으로 관리할 수 있도록 생성된 규칙이 있음을 알 수 있다. 이제 콘솔로 전환하여 보안 그룹을 생성하는 법을 살펴보자

Amazon Security Group 생성

1. AWS Management Console로 이동하여 EC2 서비스를 클릭한다.

2. 탐색창에 Network & Security Group이 존재한다.

Network & Security

3. 클릭해서 보면 네트워크 보안 그룹을 확인할 수 있다.

4. 보안그룹을 생성하기 위해 Create Security Group를 클릭하면 팝업창이 표시된다.

5. 해당 창에서 이름, 설명 및 마지막으로 몇 가지 규칙을 만들 수 있음을 알 수 있다.

  • 다음으로 규칙을 따라가면 기본적으로 모든 인바운드 트래픽이 거부되고 모든 아웃바운드 트래픽이 허용되는 것을 확인할 수 있다.

  • 편집하려면 규칙을 추가하면 된다.
  • 트래픽 유형, 프로토콜, 포트 범위 및 소스별로 편집할 수 있다.

모범 사례는 인스턴스에 필요한 트래픽을 파악하고 해당 트래픽만 특별히 허용하는 것이다.

6. Web Server Security Group를 생성해보자.

  • 0.0.0.0/0 은 접속하는 모든 트래픽을 허용한다.
  • ::0은 Ipv6정책에 대해서 설정하는 것이다.