Browsing Tag

클라우드

NCP

2-2. [NCP] 네이버 클라우드에서의 보안 – Server (내부 방화벽을 이용한 GEOIP)

안녕하세요. ManVSCloud 김수현입니다.

오늘 포스팅은 이전 포스팅 주제였던 ACG(Access Control Group)에 이어 서버 내부 방화벽,
그 중에서도 GEOIP에 대해서 작성해보려합니다.

글로벌 사이버테러는 지속적으로 늘어나고 있고 공격 유형도 다양해지고 있습니다.

ACG는 Inbound Rule이 기본 차단이고 추가하는 IP/ACG에 대해서 허용하는 방식입니다.
또한 NACL을 이용한다고 하여도 한 국가가 사용하는 IP 대역을 전부 허용/차단 룰을 추가해주는 것도 힘들 것입니다.

주로 웹 서비스가 대표적인 케이스인데 해외 서비스를 하지 않는 경우 또는 특정 국가에서 서비스를 해야하는데 지속적인 공격으로 지역 기반 차단이 필요한 경우가 있습니다.

물론 Naver Cloud Platform의 Security Monitoring 서비스를 사용한다면 IDS/IPS, WAF, Anti-DDOS 등을 사용할 수 있으나 아직 보안 장비에 투자할 비용이 부족한 사용자에게는 부담스러울 수가 있어 비록 100% 완벽하지 않으나 어느정도 피해를 최소화하기 위해 GeoIP 모듈을 이용하여 내부 방화벽으로 서버를 지역 기반 차단하는 방법을 작성해보겠습니다.


Linux

iptables

Linux에서 지역 기반 차단을 진행해봅시다.
방화벽은 모두가 아는 iptables를 사용할 것입니다.

[Environment]
Naver Cloud Platform : centos-7.8-64

※ 기본 설정 및 설치 😎

[root@manvscloud-dev-pub-kr1 ~]# sestatus 
SELinux status:                 disabled

[root@manvscloud-dev-pub-kr1 ~]# yum install -y iptables*
yum install lrzsz libtool wget patch pcre-devel lua-devel libxml2-devel ncurses-devel zlib zlib-devel libtermcap-devel libc-client-devel bison gcc g++ cpp gcc-c++ curl curl-devel make automake unzip zip xz -y

[root@manvscloud-dev-pub-kr1 ~]# yum install -y "kernel-devel-uname-r == $(uname -r)"

[root@manvscloud-dev-pub-kr1 ~]# yum install -y yum install perl-Text-CSV_XS perl-NetAddr-IP perl-CPAN.noarch

※ Kernel-devel 확인 🕶

kernel-devel이 정상적으로 설치되지 않으면 이후 설치할 xtables 컴파일이 정상적으로 되지않습니다. yum으로 현재 커널 버전에 맞는 kernel-devel이 설치되지 않을 경우 repo를 찾아 커널 버전에 devel을 설치해주어야합니다.

※ xtables 설치 😎

[root@manvscloud-dev-pub-kr1 ~]# cd /usr/local/src
[root@manvscloud-dev-pub-kr1 src]# wget mirror.koreaidc.com/iptables/xtables-addons-2.10.tar.gz

// https://sourceforge.net/projects/xtables-addons/files/Xtables-addons/ ← 접속 시 각 버전별 xtables가 있습니다.

[root@manvscloud-dev-pub-kr1 src]# tar xvfz xtables-addons-2.10.tar.gz
[root@manvscloud-dev-pub-kr1 src]# cd xtables-addons-2.10/
[root@manvscloud-dev-pub-kr1 xtables-addons-2.10]# cat -n mconfig | grep TARPIT
    12	build_TARPIT=m

// build_TRIPIT=m은 redhat에서 지원하지않아 주석처리 해주었습니다.
[root@manvscloud-dev-pub-kr1 xtables-addons-2.10]# sed -i '12s/build_TARPIT=m/#&/' mconfig

(참고로 CentOS6 버전 이용 시 커널 버전이 낮아 xtables 버전 역시 낮춰서 설치하셔야합니다.
1.37버전 설치 권장드리며 mconfig에서 build_RAWNAT=m, build_SYSRQ=m, build_TARPIT=m, build_length2=m 총 4가지를 주석처리 해줘야합니다.)

[root@manvscloud-dev-pub-kr1 xtables-addons-2.10]# ./configure
[root@manvscloud-dev-pub-kr1 xtables-addons-2.10]# make
[root@manvscloud-dev-pub-kr1 xtables-addons-2.10]# make install
[root@manvscloud-dev-pub-kr1 xtables-addons-2.10]# cd geoip

[root@manvscloud-dev-pub-kr1 geoip]# ./00_download_geolite2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: geolite.maxmind.com; Unknown error

00_download_geolite2를 실행해도 되지않기때문에 따로 GeoLite2-Country-CSV를 받아야합니다.
https://maxmind.com/ 에 가입 후 라이센스 발급 및 GeoLite2-Country-CSV.zip 설치가 가능합니다.

// 아래 MaxMind 링크를 추가해두었습니다.
[root@manvscloud-dev-pub-kr1 geoip]# ll | grep GeoLite2
-rw-r--r-- 1 root root 1934768 May 29 08:25 GeoLite2-Country-CSV_20210525.zip

[root@manvscloud-dev-pub-kr1 geoip]# ./10_download_countryinfo
[root@manvscloud-dev-pub-kr1 geoip]# unzip GeoLite2-Country-CSV_20210525.zip
[root@manvscloud-dev-pub-kr1 geoip]# perl -MCPAN -e shell
cpan[1]> install NetAddr::IP
cpan[2]> install Getopt::Long
cpan[3]> quit

[root@manvscloud-dev-pub-kr1 geoip]# cat GeoLite2-Country-CSV_20210525/GeoLite2-Country-Blocks-IPv{4,6}.csv | ./20_convert_geolite2 /tmp/CountryInfo.txt > GeoIP-legacy.csv
[root@manvscloud-dev-pub-kr1 geoip]# ./xt_geoip_build GeoIP-legacy.csv
[root@manvscloud-dev-pub-kr1 geoip]# mkdir -p /usr/share/xt_geoip
[root@manvscloud-dev-pub-kr1 geoip]# cp -a {BE,LE} /usr/share/xt_geoip/
[root@manvscloud-dev-pub-kr1 geoip]# cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables_org

[root@manvscloud-dev-pub-kr1 ~]# systemctl enable iptables
[root@manvscloud-dev-pub-kr1 ~]# systemctl start iptables

/etc/sysconfig/iptables 수정하여 룰셋 적용해서 사용하시면 됩니다.


TIP & Personal Comments and Wrap-up

windows firewall

Windows에서 역시 국가 기반 차단이 가능합니다.

Powershell을 이용한 방화벽 컨트롤 및 IPSec 설정의 방법이 존재하는데 이번 편에서는 따로 다루지 않고 IPsec 편에서 추가적으로 설명하도록 하겠습니다.

또한 Apache와 Nginx 등 소프트웨어단에서 국가 기반 차단을 할 수도 있습니다.
이후 이러한 소프트웨어단에서 국가 기반 차단을 하는 방법도 포스팅할 것입니다.

위 링크는 WHOIS입니다.
서버내에서 공격성 접근 확인 시 해당 IP를 위 사이트에서 검색할 경우 어느 나라의 IP인지 확인이 가능합니다.

국가 기반 차단 시 필요한 국가 코드 및 WHOIS 조회 시 국가코드가 어느 나라인지 확인할 수 있는 국가 코드 조회 사이트도 참고하시면 좋을듯합니다.

긴 글 읽어주셔서 감사합니다.


NCP

2-1. [NCP] 네이버 클라우드에서의 보안 – Server (ACG)

안녕하세요. ManVSCloud 김수현입니다.

“1-1~1-2. [NCP] 네이버 클라우드에서의 보안 – Account 편” 포스팅이 끝나고
“2. [NCP] 네이버 클라우드에서의 보안 – Server 편” 포스팅을 작성하게 되었습니다.

오늘은 네이버 클라우드에서 Server 보안의 첫 번째 ACG(Access Control Group)를 알아봅시다.
ACG는 IP/Port 기반 네트워크 접근 제어 및 관리를 할 수 있는 무료 방화벽 서비스입니다.
Console에서 쉽게 허용된 트래픽만 접근할 수 있도록 설정하여 외부의 침입으로부터 차단해주는데 간단하고 단순하지만 잘 사용한다면 견고한 보안을 보여줄 것입니다.


ACG (Access Control Group)

https://www.ncloud.com/product/networking/vpc

네이버 클라우드에서 ACG는 Classic 환경과 VPC 환경에 조금 차이가 있습니다.
간단하게 표로 만들어보았으니 그림을 통해 차이를 확인해보시기 바랍니다.

Classic – ACG
VPC – ACG

ACG에서는 TCP, UDP, ICMP 프로토콜에 대해 규칙 설정이 가능하며 192.168.0.1(단일), 10.0.1.0/24(대역), 0.0.0.0/0(전체), manvscloud-acg(ACG 이름) 으로 접근소스 지정이 가능합니다. (manvscloud.com과 같이 도메인은 불가능)

VPC 환경에서는 Inbound / Outbound 규칙을 설정할 수 있으며 기본적으로 Inbound는 차단, Outbound는 허용입니다. (Classic은 X)

  • Inbound 규칙 : 서버로 들어오는 트래픽(외부→내부)에 대한 규칙
  • Outbound 규칙 : 서버에서 나가는 트래픽(내부→외부)에 대한 규칙

How to use ACG well

ACG를 어떻게 잘 사용할까요?

VPC 환경을 기준으로 아래와 같이 서버를 생성하여 보여드리겠습니다.

예시로 bastion host 1대, web server 1대, db server 1대를 생성하였습니다.
Bastion host에 대한 ACG는 정말 접속이 필요한 사용자만 접근할 수 있도록 허용하는 방법을 사용하고 추가적인 접근 통제는 VPN 또는 서버 내부에서 사용자 계정을 생성하여 계정 관리 및 탐지를 합니다.

Web Server는 ACG를 어떻게 주면 좋을까요?
Web Server로 SSH 접근하는 IP를 추가해주어야 할 것이고 HTTP, HTTPS 포트도 열어주어야할 것입니다.
저는 ACG 하나에 몰아서 넣기보다 분리해서 사용하며 ACG 생성 시 네이밍도 이후 잘 구분할 수 있도록 만드는 편입니다. (프로젝트명-용도-acg)

manvscloud-admin-acg에는 관리자 접속용 acg입니다.
manvscloud 프로젝트 전체에 접속이 필요한 관리자들에 대한 정책을 추가하여 사용합니다.
동일한 프로젝트의 다른 서버 생성 시에도 해당 acg만 추가해주기만 하면 되어 관리하기도 좋습니다.
또한 manvscloud-web-acg는 manvscloud 프로젝트의 web서버에 대한 acg입니다.
web서버마다 동일하게 필요한 정책을 추가하여 관리합니다. 이후 추가되는 web 서버마다 acg를 추가 생성하지 않고 해당 acg를 추가하여 공통으로 사용합니다.
마지막 하나의 acg는 위 사진에는 추가되어 있지않지만 필요 시에 해당 서버에만 특정적으로 필요로하는 서비스 해당 서버에서만 open되어야하는 정책에대한 acg를 추가하여 관리합니다. (예를 들면 개발자가 특정 웹 서버 FTP 접근이 필요할 경우)

정리하면 제가 ACG를 관리하는 방식은 아래와 같습니다.

  1. admin-acg (프로젝트 공통 관리자 관리 정책 ACG)
  2. web-acg, mysql-acg, was-acg 등 (공통 서비스 관리 정책 ACG)
  3. *-acg (특정 서버에만 적용되어야하는 정책 ACG)

더 좋은 ACG 사용 방법이 있다면 댓글로 의견 부탁드립니다.

위 정책은 웹 서버에 대한 web-acg 입니다.
제가 80포트를 0.0.0.0/0이 아니라 왜 10.0.13.0/24와 10.0.33.0/24 으로 열어두었을까요?

이유는 바로 제가 LB와 연결을 해놓았기때문입니다.
많은 고객분들이 웹 서버와 LB를 함께 사용하십니다.

[root@manvscloud-web-pub-kr2 ~]# tail -f /var/log/httpd/access_log 
10.0.13.11 - - [25/May/2021:07:15:15 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
10.0.13.11 - - [25/May/2021:07:15:15 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
10.0.33.11 - - [25/May/2021:07:15:45 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
10.0.33.11 - - [25/May/2021:07:15:45 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
10.0.33.10 - - [25/May/2021:07:15:45 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
10.0.33.10 - - [25/May/2021:07:15:45 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
10.0.13.10 - - [25/May/2021:07:15:45 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
10.0.13.10 - - [25/May/2021:07:15:45 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
10.0.13.11 - - [25/May/2021:07:15:45 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
10.0.13.11 - - [25/May/2021:07:15:45 +0900] "HEAD /index.html HTTP/1.1" 200 - "-" "-"
Load Balancer

만약 0.0.0.0/0으로 열어두었다면 도메인-LB-웹서버로 통신되는 것 외에도 웹서버 IP를 통해 웹서버로 접근 역시 가능합니다.
물론 웹서버 내에서 IP주소로 접근이 불가능하도록 설정이 가능하지만 방화벽 룰셋은 굳이 접근이 필요하지 않은 부분까지 허용하는 것은 권장하지 않으며 좋은 습관이 아닙니다.

위 ACG와 같이 설정하게되면 LB로는 접속 가능하지만 웹서버 IP로는 다이렉트로 접속이 불가능하게 됩니다.

이제 예시 중 DB Server에 대한 ACG 관리를 보겠습니다.

DB 서버는 주로 bastion host와 DB 연동이 필요한 서버에 대한 허용 정책을 설정하게되는데
아래와같이 ACG 이름을 이용하여 설정할 수 있습니다.

bastion-host Server와 연결된 manvscloud-bastion-acg를 DB Server ACG에 접근 포트 허용을 해주게된다면 manvscloud-bastion-acg와 연결된 서버들은 DB Server로 접근을 할 수 있게되는 것입니다.

추가 예시로 Web Server 전체가 DB와 연결되어야할 경우 ACG를 넣어줄 수 있으며
“나는 모든 웹 서버와 모든 DB 서버가 연결되지 않아 보안상 따로 따로 지정을 해줘야한다”라고 한다면 특정 서버에만 적용되어야하는 정책 ACG를 추가하여 연결되어야할 서버 IP만 허용해주는 방법이 있습니다.


Personal Comments and Wrap-up

지금까지 쉽고 간단한 ACG(Access Control Group)에 대해 알아보았습니다.
많은 사용자들이 귀차니즘으로 인해 ACG 관리가 잘 되지않고 있습니다.
원격 접속 포트, 쉘 접근 포트 등 중요한 포트를 0.0.0.0/0(전체)로 열어두는 사용자들을 생각보다 많이보게되고 또 보안상 위험을 알려도 아무 일 없을 거라며 넘어가버리는 분들 역시 많았습니다.
(귀찮아서 내버려뒀을 때 편한 감정과 공격받아 데이터 손실 후 감정은 많이 다릅니다…)

제발 막아주세요😥

다음 포스팅은 “2-1. [NCP] 네이버 클라우드에서의 보안 – SERVER”에 이어
“2-2. [NCP] 네이버 클라우드에서의 보안 – ACCOUNT” 내용은 IPSec VPN과 SSL VPN에 대해서 작성하려고 했었는데 ACG에 대한 내용에 이어 서버 내부 방화벽 활용 방법을 먼저 포스팅하려고 합니다.

긴 글 읽어주셔서 감사합니다.


NCP

0. [NCP] 네이버 클라우드에서의 보안 – Introduce

안녕하세요. ManVSCloud 김수현입니다.

오늘은 국내 클라우드 Naver Cloud Platform에서의 보안을 간단히 소개해보는 포스팅을 작성해보려합니다.

포스트 코로나 시대, 즉 접촉없이 연결되는 언택트 시대가 Covid-19의 영향으로 예상보다 빠르게 일상생활의 트렌드를 바꾸어가고 있습니다.
온라인 교육, 화상 면접, 배달 서비스 등 시대에 맞게 비대면 서비스가 증가했으며
IT 분야 역시 이러한 변화로 인해 클라우드 서비스가 많이 사용되고 있습니다.

https://www.parkmycloud.com/blog/aws-vs-azure-vs-google-cloud-market-share/

전통적인 온프레미스 환경에서 클라우드로 변화하거나 온프레미스와 퍼블릭 클라우드를 함께 하이브리드 클라우드로 운영하시는 사용자들이 상당히 많아졌고 공공기관이나 금융기관 역시 이러한 클라우드 서비스에 대해 고려해보게 됩니다.

(네이버 클라우드 플랫폼 – 공공기관용)

(네이버 클라우드 플랫폼 – 금융기관용)

또한 국내 데이터가 해외 클라우드 서버에 저장되는 것부터 그런 데이터들이 보안 문제로 인해 유출되는 부분들까지 많은 고민이 될 것입니다.
네이버 클라우드에서는 국내 공공기관용으로 보안수준을 강화한 클라우드 서비스를 제공하고 금융기관과 핀테크 기업의 조건에 맞는 맞춤형 서비스를 제공하여 데이터를 국내에 저장하며 맞춤형 클라우드 서비스를 사용할 수 있어 더욱 신뢰성과 안정성이 있습니다.

CSA(Cloud Security Alliance) 자료에 따르면 클라우드 환경에서의 11가지 두드러진 위협/위험 및 취약점이 아래와 같이 존재한다고 말합니다.

  1. Data Breaches (데이터 침해)
  2. Misconfiguration and Inadequate Change Control (잘못된 구성 및 부적절한 변경 제어)
  3. Lack of Cloud Security Architecture and Strategy (클라우드 보안 아키텍처 및 전략 부족)
  4. Insufficient Identity, Credential, Access and Key Management (불충분한 ID, 자격증명, 액세스 및 키 관리)
  5. Account Hijacking (계정 하이젝킹)
  6. Insider Threat (내부자 위협)
  7. Insecure Interfaces and APIs (안전하지 않은 인터페이스 및 API)
  8. Weak Control Plane (약한 컨트롤 플레인)
  9. Metastructure and Applistructure Failures (메타 구조 및 애플리케이션 구조 오류)
  10. Limited Cloud Usage Visibility (제한된 클라우드 사용 가시성)
  11. Abuse and Nefarious Use of Cloud Services (클라우드 서비스의 남용 및 악의적인 사용)

위 보안 위협에 대한 자세한 내용은 아래 사이트에서 다운로드 받을 수 있으니
취약점에 대한 자세한 내용을 알고싶으신 경우 자료 참고하시면 좋을듯 합니다.

이런 보안 위협에 대한 대비는 앞으로 더욱 중요한 사항이 될 것으로 보입니다.


Naver Cloud – Security

네이버 클라우드를 사용하며 각 서비스들마다 어떤 보안 관리를 할 수 있을지 알아보겠습니다. 우선 네이버 클라우드 플랫폼을 사용하기 위해서는 해당 페이지로 로그인을 해야합니다.

여기서 사용하는 계정을 해킹 당한다면 상당히 크리티컬한 문제로 이어집니다.
때문에 네이버 클라우드에 접속하는 계정 보안은 아주 중요하다고 볼 수 있습니다.
두번째로 네트워크 보안입니다. VPC 플랫폼을 예로 VPC 생성 후 서비스 목적에 맞게 그리고 보안 요구 사항에 따라 네트워크를 분리 하는 것이 좋습니다. 세번째로 서버 보안입니다. 서버에 올라가는 OS의 취약점부터 해당 서버로 접근할 수 있는 접근 제한 등 각 서비스 포트별로 관리도 필요합니다.

DB 보안도 필수죠. DB의 경우 아무래도 데이터 유출이나 손실이 발생하면 상당히 곤란할 때가 많습니다. 인증, 기밀성, 무결성, 가용성을 유지하기 위해 다소 많은 고민을 해야합니다. 그 외에도 스토리지 보안과 모든 활동에 대한 감사 등 보다 안전한 서비스를 구성하기 위해서는 고려해야할 사항들이 다수 많이 존재합니다.

manvscloud – ncloud security

Compliance Guide

네이버 클라우드 플랫폼에서는 Compliance Guide가 무료로 제공됩니다.

Compliance Guide가 무엇이냐?! 서비스 설명에서는 아래와 같이 설명 하고 있습니다.

“Compliance Guide는 네이버 클라우드 플랫폼이 보유한 인증서와 관련 문서를 제공하여 고객이 보안 인증에 대응하는데 도움을 주며, 네이버 클라우드 플랫폼의 각 서비스 이용 시 어떤 통제 항목이 해결되는지, 고객이 추가로 수행하여야 하는 부분은 어떤 항목인지 등을 손쉽게 확인할 수 있도록 돕습니다.”

즉 보안 인증이나 규제에 대응에 필요한 사항을 쉽게 정리한 규정 준수 가이드입니다.

이 가이드를 통해 KISA ISMS-P 인증 심사나 PCI DSS와 같은 인증에 대한 대비를 보다 원활하게 진행할 수 있습니다.

▶ 네이버 클라우드 플랫폼의 책임이 되는 통제 규격
▶ 고객의 책임이 되는 통제 규격
▶ 네이버 클라우드 플랫폼과 고객의 공통 책임이 되는 통제규격

Coverage 기능에서는 책임 통제 규격에 대한 식별이 쉽도록 구분되어 있으며
명확한 구분으로 사용자가 담당해야할 부분에 대한 보안 통제를 확실히 알고 대응할 수 있습니다.

또한 Products 기능을 사용한다면 네이버 클라우드의 각각의 서비스가 지원하는 통제 규격과 적용해야 하는 통제 규격을 쉽게 알 수 있습니다.

위 사진을 보면 알 수 있다시피 상품 카테고리에서 Networking-VPC를 선택하면 VPC 제품에 대한 규격을 색깔로 구분해두어 VPC 상품은 이 부분을 지원하는구나 또는 어떤 통제 규격을 적용해야하구나를 자세히 알려줍니다.

또한 “정보시스템 관련 자산(하드웨어, 운영체제, 상용 소프트웨어, 패키지 등) 변경에 대한 절차를 수립·이행 하고 있는가?”라는 내용에 마우스 커서를 올리면 해당 내용에 대한 통제를 구현하는데 이용되는 상품, 통제를 적용해야 하는 상품, 통제를 구현하는데 이용되는 상품을 알 수 있습니다.


마무리

6월 18일에 “[6월 Intermediate] 네이버클라우드플랫폼 보안 강화 교육” 이라는 주제로
네이버 클라우드 플랫폼에서 교육이 진행됩니다.

현재 아쉽게도 모집은 마감된 상태라 추가적인 신청이 불가능한 상태이므로
제가 해당 교육을 듣고난 후 추가적인 후기 포스팅을 남기고 제가 포스팅하고 있는 “네이버 클라우드에서의 보안” 주제에 빠진 부분을 추가 포스팅으로 채워볼 예정입니다.

다가오는 보안 교육 전에 먼저 “[NCP] 네이버 클라우드에서의 보안”이라는 주제로 포스팅을 진행하게 될 것이며 다음 포스팅은 앞서 간단히 소개된 계정, 네트워크, 서버, 데이터베이스, 스토리지, 감사, 이중화, 백업 등에서의 보안을 하나씩 자세히 다루어보는 내용으로 나누어 포스팅 됩니다.

이제는 클라우드, 인공지능(AI) 등 IT가 생활에 매우 가까워졌고 다양한 산업에 혁신을 만들며 산업 생태계를 주도하고 있습니다.
IT가 함께하는 세상이 찾아온만큼 보안에 대한 인식 역시 높아져야겠습니다.

긴 글 읽어주셔서 감사합니다.


AWS

AWS Network online study 11주차까지 마무리하며… [3/3]

안녕하세요. ManVSCloud 김수현입니다.

2021-01-10 ~ 2021-03-28 설 휴일을 제외한 약 11주차 과정이 마무리되었습니다.

생각보다 빠르게 11주차가 와서 아쉬우면서도 제가 11주차를 하루도 빠짐없이 다 해냈다는 것을 생각하면 또 한 편으로 보람차고 잘 했다는 생각이 들었습니다.

ANOS를 시작하기 전과 지금의 저를 비교해본다면 스스로가 Level UP 한 것같고 경험치를 상당히 얻은 기분입니다.
물론 ANOS를 마쳤다고 하여 AWS Network를 마무리할 생각은 없습니다.
아직 한 두번 해봤을 뿐 누군가에게 설명할 수 있을 정도는 아니기에 추가적인 복습을 통해 더 공부할 생각입니다.


가장 흥미로웠던 주제 3가지를 뽑자면?

  • CloudFront

물론 1주차부터 11주차까지 모두 재밌는 시간들이었지만 그 중에 굳이 3가지를 뽑자면Cloudfront와 WAF, TGW & R53 Resolver가 될 것같습니다. 특히 CloudFront의 경우 워낙 관심이 많았던 상태였기에 스터디가 마무리된 지금도 더 깊이 알고싶은 서비스 중에 하나입니다.

ANOS 스터디에서는 CloudFront에 대한 내용만 다룰 뿐만 아니라 CloudFront를 배우기 앞서 HTTP Cache와 CDN 기술에 대한 기본적인 지식까지 얻을 수 있으며 왜 CloudFront를 써야하는지 정확하게 알 수 있었던 시간이었습니다.

스터디를 시작하기 전에도 물론 제 블로그는 Cloudfront를 이용하여 정적이미지 파일들을 불러오고 있었지만 다소 정확히 알지 못하는 상태에서 사용 중이었고 Origin Shield가 없어 Hits율이 낮은 상태였습니다.

ANOS를 통해서 CloudFront를 정확히 이해하고 사용할 수 있게되었고 캐싱률도 상승하였으며 조금 더 깊이있게 공부하고 싶어질만큼 흥미로운 6주차 주제 CloudFront였습니다.

  • WAF 웹방화벽

두번째로 흥미로웠던 주제는 WAF입니다.
이 주제는 Legend 급으로 재밌었던… 8주차였습니다.

이 날 이후 제 블로그에는 AWS WAF 기능이 추가됩니다…🙄

제가 대학 전공을 보안학 전공을 하다보니 과거에 해킹과 보안에 관심이 많은 편이었습니다.
WAF를 배우며 오랜만에 공격 테스트도 해보고 방화벽을 통해 탐지/차단까지 실습해보니 재미가 없을 수가 없었습니다!

가끔 제가 설정해둔 WAF의 Sampled requests를 보는 편인데 생각보다 AnonymousIpList(익명 IP) 접속으로 차단되는 게 많은 편이었습니다.

이날 이후로 WAF 잘 쓰고 있어서 웹 공격으로부터 보안이 튼튼한 블로그가 된 것같아 기분이 좋네요.

  • TGW & R53 Resolver

마지막으로 TGW & R53 Resolver입니다. 특히 TGW!!

TGW는 해보면 와… 내가 정말 네트워크를 하고있구나라는 생각이 듭니다.

다소 난이도가 있으나 이거 하나 배워두면 아키텍처의 범위가 상당히 넓어지는 기분입니다.
아직 네트워크 쪽은 다양한 경험을 해보지 못했지만 지금까지의 제가 느낀바로 TGW는 AWS Network의 꽃이 아닐까…생각됩니다.

앞으로 TGW를 이용하여 리전 간 테스트를 종종 할 생각입니다.


ANOS 2기 MEMBER BLOG


마무리

11주라는 시간동안 고생해주신 CloudNet@ 팀, 운영진님들에게 다시 한 번 감사의 인사 드립니다. 아직 현업에서 아직 사용해보지 못한 기능들이 많았었는데 좋은 기회를 얻게 되어 다양한 서비스 실습을 할 수 있어 정말 많이 배웠습니다.

마지막 11주차까지 완주에 성공하신 ANOS 2기 멤버님들도 모두 축하드립니다.

다음 포스팅은 AI 전시회와 NCP DevOps, Kubernetes의 포스팅으로 찾아뵙겠습니다.
긴 글 읽어주셔서 감사합니다.

AWS

AWS NETWORK ONLINE STUDY 6-10주차 [2/3]

안녕하세요. ManVSCloud 김수현입니다.

벌써 3월이 마무리되어갑니다.
이번주 일요일은 AWS NETWORK ONLINE STUDY의 마지막 11주차 스터디가 있는 날입니다. 11주차라는 시간이 벌써 끝나간다는 아쉬움과 함께 하루도 빠짐없이 잘 해냈다는 보람도 있습니다.

오늘은 ANOS 6-10주차 후기 포스팅을 써보려합니다.
6-10주차는 크게 5가지 주제로 나뉘었습니다.

벌써 3월이 마무리되어갑니다.
이번주 일요일은 AWS NETWORK ONLINE STUDY의 마지막 11주차 스터디가 있는 날입니다. 11주차라는 시간이 벌써 끝나간다는 아쉬움과 함께 하루도 빠짐없이 잘 해냈다는 보람도 있습니다.

오늘은 ANOS 6-10주차 후기 포스팅을 써보려합니다.
6-10주차는 크게 5가지 주제로 나뉘었습니다.

# CloudFront
# Security Group & Network ACL
# WAF

# Global Accelerator & VPN
# TGW & R53 Resolver

이번 6-10 주차는 정말 1-5주차보다 더욱 알차고 배울 것이 많은 시간들을 보냈습니다.

CloudFront의 경우 CloudFront에 대해서만 배우는 것이 아니라 Cache에 대해서 배워 왜 CloudFront를 사용해야하고 정적 캐싱과 동적 캐싱에 대해서도 알아보는 시간을 가질 수 있었습니다.

제가 스터디 이후에도 CloudFront 스터디가 끝난 이후에도 해당 주제에 대해서는 추가적인 공부를 더 하였는데 블로그 포스팅으로 하려했으나 바쁜 일정에 아직도 임시글로 머물러있는 상태입니다…

Naver Cloud Platform DevOps 교육과 AI 전시회 참가로 인해 포스팅 거리가 최대 6개까지 늘어버렸군요…
최대한 시간나는대로 전부 포스팅할 예정입니다.

그리고 6-10주차 과정 중 가장 재밌었던 8주차의 WAF는 스터디에서 끝나지 않고 제 블로그에 도입되었습니다?!
아래 링크 참고하시면 WAF 기능 추가 내용 뿐만 아니라 제 블로그 구성도까지 볼 수 있습니다.

나머지 주차의 스터디도 전부 재밌었지만 이후 각각의 주제마다 느껴진 색다른 재미들이 있었다? 가 맞는 것같습니다.

스터디가 11주차까지 마무리되면 Global Accelerator & VPN과 TGW & R53 Resolver는 추가적인 복습을 할 예정입니다.
지금까지 제가 해본 적없던 것이기도 하고 아직 기초 네트워크에 대한 지식이 부족하여 조금 더 넓게 공부하고 싶은 생각이 있기때문입니다.

이번 ANOS를 통해서 매주 일요일마다 꾸준하게 공부할 수 있게 되었습니다.
이후 3기 참가하시는 분들에게 조언을 드리자면! 녹화보다는 생방송 참가 적극 권장드립니다.
일단 생방송으로 함께하는 것이 조금 더 집중에 도움되었습니다.

아마 이번 ANOS 스터디 일정이 마무리되면 NCP 시험과 계획되어 있던 Kubernetes의 CKA 자격증 공부에 집중하게 될 것같습니다.

밀린 포스팅을 업로드 한 뒤 Kubernetes의 내용이 다수 포스팅 될 예정입니다.
이만 글을 마무리하며 마지막 ANOS 11주차 포스팅으로 찾아뵙겠습니다.

CloudNet@ 팀에 다시 한 번 감사의 인사올리며
AWS NETWORK ONLINE STUDY 6-10주차 [2/3] 포스팅을 마무리 하도록 하겠습니다.

긴 글 읽어주셔서 감사합니다.

AWS

AWS Network online study 1-5주차 [1/3]

안녕하세요. ManVSCloud 김수현입니다.

2020년 1월 23일 이후 Covid-19로 인해 많은 오프라인 문화가 사라지고 온라인 문화가 자리잡고 있습니다. 1년이 지난 지금까지 Covid-19 문제를 겪고 있는 현재 온라인으로 할 수 있는 것들이 더욱 발전할 전망입니다.

오늘은 제가 요즘 가장 즐겁게 활동하고 있는 온라인 스터디가 있어 스터디 후기를 써보려합니다.

CloudNet@ 에서 주최한 AWS NETWORK ONLINE STUDY(ANOS) 2기에 지원하여 AWS의 개인 역량을 키워가고 있습니다.
우선 긴 글을 이어가기 전에 이 스터디를 준비해주시고 기회를 주신 CloudNet@ 팀과 매끄러운 스터디 운영을 위해 도움주고 계시는 ANOS 매니저님들에게 감사의 인사 올립니다.

ANOS의 교과서는 “따라하며 배우는 AWS 네트워크 입문”이라는 서적입니다.
AWS에서의 네트워크를 알차게 배울 수 있을만큼 내용이 좋으며 이론 뿐만이 아니라 실습 과정이 있어 실제로 따라해보며 AWS 네트워크를 맛볼 수 있습니다.

ANOS에서는 위 서적의 내용뿐만 아니라 심화 과정까지 배울 수 있었습니다.
1~5주차에는 AWS Global Infra, VPC, VPCE, NAT, ELB, ROUTE53, VPC Peering을 공부했습니다.
AWS를 공부한지 이제 약 1년이 되었지만 레이턴시에 대해 깊게까지 생각해본 적도 없었으며 Cloud Formation은 사용할 이유가 없었기에 지금까지 사용해본 적이 없었기에 1주차 스터디의 내용부터 매우 흥미로웠습니다.

1주차 이후 레이턴시를 빠르게 확인할 수 있을만한 방법을 알아보았으며
2가지 사이트를 찾게되었습니다.

-. https://www.cloudping.info/
사용자의 브라우저에서 AWS의 각 리전까지의 레이턴시를 확인할 수 있는 사이트입니다.

-. https://www.cloudping.co/grid
각 리전 간 레이턴시를 확인할 수 있는 사이트입니다.

스터디 중 VPC, VPC Endpoint, NAT 등 실습 과정이 있었으며 AWS를 처음 접하시는 분들의 경우 리소스 삭제를 잊어 이상 요금이 발생하는 케이스가 있었습니다.
요금이 발생하는 것을 알림 받기위해 아래와 같은 과정을 추가 포스팅합니다.

CloudWatch+SNS를 이용하여 일정 이상의 요금이 발생하면 알림을 주도록 구성하는 방법입니다. CloudWatch에서 경보를 생성하고 SNS에 등록된 구독자에게 알림을 전송하는 방식입니다.

아래 CloudWatch 등록 전 위 결제 대시보드결제 기본 설정에서 결제 알람 받기를 클릭 후 저장합니다.

[CloudWatch]로 들어가서 <경보>에서 “결제”부분을 클릭합니다. (리전 : 버지니아 북부)
(결제 지표 데이터는 버지니아 북부에 저장됩니다.)

[경보 생성]을 클릭한 후 원하시는 기간, 요금 등을 원하시는 값에 맞게 변경해줍니다.

저의 경우 30USD 즉, 30달러 이상 비용이 발생하면 알람이 발생하여 제 이메일로 30달러 이상 비용이 발생했다고 알려주도록 설정해두었습니다.
평소에 테스트를 많이 하는 편이라 월 한화 2~3만원 사이로 비용이 발생하기때문입니다…

<알림> 부분에서 새 주제 또는 기존 SNS 주제를 선택하여 해당 알람을 수신할 주제를 선택해줍니다. 참고로 수신할 이메일을 새로 등록하셨다면 등록한 메일에 접속하여 구독 확인을 해주셔야합니다. “AWS Notification – Subscription Confirmation”라는 메일이 와있을 것입니다.

Q : 이메일이 아닌 SMS 문자로 받을 수는 없나요?
A : 현재 제가 아는 지식으로 위 방법만 이용하여 서울 리전에서 SMS 문자로 받는 방법은 없는 것으로 압니다.

도쿄 등 다른 리전에서는 SMS 문자로 받으실 수 있습니다.
SNS 구독 생성 시 프로토콜 부분에 문자를 지원하는 리전에서는 SMS 가 추가되어 있습니다.

현재 서울 리전에서는 SMS 문자를 받을 수 없다보니 많은 분들이 Telegram, Slack 등을 이용하여 모바일 알람을 받는 방법을 많이 해보신 것으로 압니다.

저 역시 Telegram을 이용하여 모바일 알람을 받으려고 생각한지 꽤 많은 시간이 지났으나 할 것이 너무 많아 아직 미뤄지고 있는 부분입니다😭

이어서 ANOS 2기에서는 현업에서 일하고 있는 시스템/네트워크 엔지니어, 개발자, 보안 전문가 등이 모여 하는 스터디로 다양한 전문가분들과 교류할 수 있고 제 입장에서는 시스템 엔지니어로서 따로 시간내서 공부하지 않으면 배우지 못할 네트워크/개발/보안 부분의 지식을 더욱 얻어갈 수 있어 좋았습니다.

스터디 내용 중 어려운 부분이 있다면 역시 심화 과정 부분입니다.
저는 제 분야가 아님에도 심화 과정을 전부 참여하는 편입니다.
(물론 2월 8일 ~ 4월 2일까지는 야간 당직 기간이라 심화 과정을 못 듣게되는 날이 자주 있을 것 같습니다ㅠㅠ)
심화 과정의 내용은 상당히 깊이 있는 내용이 다루어지므로 난이도가 어렵습니다.
하지만 흥미롭고 조금 더 넓고 깊게 볼 수 있는 시야를 키우는 데에 좋은 영향을 주는 것같습니다. 심화 과정을 이해하기 위해서는 스터디가 끝나도 추가적인 학습이 필요했습니다.

오늘 5주차 ROUTE53 & VPC Peering을 마쳤습니다.

혼자서 공부한 AWS는 깊이가 있지않았고 늘 손대본 것들만 많았던 것같습니다.

1년이라는 시간동안 AWS를 공부했지만 한정적인 서비스와 기능만 사용했던 부분에 대해 반성하며 더욱 열심히 공부해야겠다는 생각이 들었습니다.

ANOS 3기는 대학생들을 대상으로 진행한다고 합니다.
많은 학생들이 이 스터디에 지원하여 도움이 되었으면 좋겠습니다.
코로나 때문에 하지못한 것이 아니라 코로나라서 무언가를 했다면 정말 보람있는 시간을 보냈을 것이라 생각됩니다.

ANOS 남은 6~11주차가 기대됩니다.

CloudNet@ 팀에 다시 한 번 감사의 인사올리며
AWS NETWORK ONLINE STUDY 1-5주차 [1/3] 포스팅을 마무리 하도록 하겠습니다.

긴 글 읽어주셔서 감사합니다.