Windows Server 생성)
① 인스턴스 시작
① EC2 목록 클릭 후 인스턴스 시작 클릭
② 이름 (gnuboard) 작성 후 OS 선택 (Windows 2016 base)
③ 네트워크 설정에서 생성한 VPC, 서브넷 클릭
④ 방화벽 보안 그룹 생성 클릭
⑤ RDP 트래픽 허용 (위치 무관 → 내 IP)
⑥ 인터넷에서 HTTP , HTTPs 트래픽 허용
⑦ 설명 - 필수에 (web_server)로 변경
⑧ 인스턴스 시작 클릭
⑨ 연결 > RDP 클라이언트 > 암호 가져오기 클릭
⑩ 키 페어로 이동 Browse로 (aws_gnuboardkey) 가져온 후 암호 해독 클릭
⑪ 암호 복사 후 원격 데스크톱 연결 > 옵션 표시 > 컴퓨터에 전부 복붙 > 연결
⑫ 연결된 윈도우에서 Server Manager > Add roles and features > Web Server 클릭 후 Install
⑬ 윈도우10에서 Pulic IP로 접속

- Windows Server의 Web Server Root Directory (IP주소나 도메인만 입력 시 가장 먼저 접속되는 위치)
→ C:\inetpub\wwwroot
① iisstart.htm 파일 확장자를 old로 변경
② 어제 만든 index.html의 img src="사진 파일 이름" 변경 후 저장
③ index.html과 image파일을 windows 2016으로 이동
④ index.html → iisstart.htm으로 변경 후 웹브라우저 새로고침

- Security Group (보안 그룹)
- 인바운드 규칙 : 인터넷에서 AWS에 들어갈 때 규칙 (밖 → 안)
ssh, http, https, rdp 등 필요 경우만 허용
→ ssh, rdp는 반드시 IP주소를 엄격히 제한 (http, https는 IP 제한X)
- 아웃바운드 규칙 : AWS에서 인터넷으로 나갈 때 규칙 (안 → 밖) → 대부분 허용
우선순위 확인 실습)
Server Manager > IIS > servers에 뜨는 거 오른쪽 마우스 클릭
> Internet Information Services (IIS) Manager > Default Document

① index.html 파일을 다른 이미지가 나오게 수정 후 index.html 파일과 image파일 windows2016로 이동
② 웹브라우저 새로고침 시 index.html 파일이 iisstart.htm 파일보다 우선순위가 높아 먼저 보이게 됨


Database Server 원격 접속)
- workbench(MySQL의 클라이언트용 프로그램) 다운로드
- 우분투로 원격에서 사용할 계정 생성
$ sudo mysql -u root -p
mysql > create user astro@'%' identified by 'cansupop';
mysql > grant all privileges on *.* to astro@'%';
- UFW(Ubuntu FireWall)에서 3306번 포트를 외부에서 접속할 수 있도록 허용
$ sudo ufw allow 3306
- wrokbench에서 Setup New Connection 'astro' 연결

※ 외부에서 접속 안되도록 설정된 것 수정
$ cd /etc/mysql/mysql.conf.d
$ sudo vi mysql.cnf
31번 라인 127.0.0.1 → 0.0.0.0 수정
$ service mysql restart
- Root 계정을 업무에 활용하면 안 되는 이유
- Root 계정이 크래킹 되면 컨트롤할 방법 없음
- 다른 계정 만들어 활용 (특히, DB에서는 database마다 따로 계정 할당)
- 회사 내부에서만 접근 가능하도록 설정
- 접속의 차이
- astro는 '%'로 되어있어 workbench 또는 mysql command line으로 DB에 직접 접속 가능
- board는 localhost로 되어있어 workbench 또는 mysql command line으로 DB 직접 접속 불가능
→ ssh로 서버에 접속하고, board 계정으로 DB에 접속하면 가능
goods.sql 파일 실습)
① workbench에서 sql 파일 열기
② 전체선택 후 번개모양 누를 시 good.sql 스크립트가 한 번에 실행
③ show databases;
use classicmodels;
show tables;
desc orders;
select orderNumber, orderDate, shippedDate from orders;

- 최근 주문한 10개의 목록을 추출해보기
select orderNumber, orderDate, shippedDate from orders order by orderDate desc limit 10;
RDS 데이터 베이스 생성)
※ 사전조건
① Private 서브넷 하나 더 생성 (Public과 Private 각 하나씩 총 두 개)
② VPN에서 DNS 경로 사용 (DNS 호스트 이름 편집 → 활성화)
→ 접속할 수 있는 URL 생성 가능
① AWS에서 RDS 목록 들어가기
② 데이터베이스 생성 > 표준 생성 > MySQL > 템플릿 : 프리 티어
③ 설정 부분에서 DB 인스턴스 식별자, 이름, 암호 설정

④ 연결 부분에서 퍼블릭 액세스 예로 변경, VPC 보안 그룹 새로 생성, 그룹 이름(DB_server), 가용영역 선택
⑤ 데이터베이스 생성
⑥ 생성이 되면 workbench에서 + 눌러 생성
- Hostname엔 엔드포인트 삽입
- username, password엔 마스터 이름, 암호 삽입


workbench 이용해 goods.sql을 RDS에 업로드 후 실행)
show databases;
use classicmodels;
show tables;
desc products;
select productName, productLine, productVendor, buyPrice from products;

- Cloud 종류
① IaaS (Infrastructure as a Service)
- 클라우드에서 인프라 제공해주는 서비스
- 인프라는 가상머신(Ubuntu, Amazon Linux, Windows Server 등), 네트워크(VPC, Subnet), 스토리지(S3)
- AWS에서는 HW, Network, Security 등만 책임지고, 나머지는 사용자의 책임 (OS, Application, Data, Platform 등)
- 장점 : 대부분 통제 가능, 가격 저렴
- 단점 : 사용자가 확장, 관리(백업, 용량, 보안, 장애 등) 해야 함
② PaaS (Platform as a Service)
- 클라우드에서 플랫폼을 제공해주는 서비스
- 개발자가 개발할 수 있는 환경까지 제공 (RDS)
- AWS에서는 HW, Network, Security + OS + Application 설치 및 관리
- 사용자는 Application 사용만 하면 됨. Data에 대한 책임
- 장점 : 관리해주는 부분 신경 안 써도 됨 (백업, 용량, 보안, 장애 관리 등 AWS에서 함)
- 단점 : OS 및 Application에 대한 완전한 통제권 갖기 어려움 (roo t권한 없음, admin/girlsday 등 만들어 사용)
- Paas-ta : 정부에서 개발자들이 창업할 수 있는 환경 생성
③ SaaS (Software as a Service)
- 클라우드에서 소프트웨어를 제공해주는 서비스
- 사용자는 ID/PW 인증만 하면 모든 서비스 이용 가능, Client용 SW만 있으면 됨.
- 장점 : IT인력이 많이 필요X
- 단점 : 의존성 문제(마이그레이션하기 어려움), 가격이 비쌈, Customizing 하기 어려움
- 주로 프랜차이즈, 무역(의류, 수입차 등), 고객관련 Biz 등
3Tier 구성)
- 웹서버와 DB서버 분리
※ 주의사항
- EC2와 연결해 사용 (Public IP 받기 불가능)
- Local에서 workbench 사용 불가능
- EC2에 로그인한 상태에서 RDS 접속
- RDS 주소 부여 위해 VPC 호스트 이름 사용 활성화
실습환경)
- EC2 설정
$ sudo apt update
$ sudo apt install vim
$ sudo apt install apache2
$ sudo apt install php php-mysql php-common php-gd php-fpm php-xml php-json php-curl git
$ cd /var/www/html
$ sudo git clone https://github.com/gnuboard/gnuboard5
$ cd gnuboard5/
$ sudo mkdir data
$ sudo chmod 707 data
$ sudo service apache2 restart
$ sudo apt install mysql-client
$ sudo mysql -h [엔드포인트] -u [RDS계정] -p
(gnuboard, board, 권한부여)
※ EC2 Public Subnet(01)에 생성해야 외부에서 접속 가능 (Private Subnet 접속 불가능)
'SK shieldus Rookies 9기 > 클라우드 보안' 카테고리의 다른 글
클라우드 보안 수업 6일차 (22/10/05) (0) | 2022.10.05 |
---|---|
클라우드 보안 수업 5일차 (22/09/30) (0) | 2022.09.30 |
클라우드 보안 수업 4일차 (22/09/29) (0) | 2022.09.29 |
클라우드 보안 수업 2일차 (22/09/27) (0) | 2022.09.27 |
클라우드 보안 수업 1일차 (22/09/26) (0) | 2022.09.27 |