본문 바로가기

Rookies 9기/클라우드 보안

클라우드 보안 7일차

728x90

• 인증

- 다단계 : 1차 인증 후에 2차 인증을 하는 방식 (종류와 관계없음)  ex) i-pin

- 다요소 : 서로 다른 종류의 인증을 하는 방식  ex) 계좌이체 : 공인인증서 + 비밀번호 + OTP

 

• AWS에 회원 가입을 하면 계정 생성 (Root 계정)

- Root 계정으로 사용자 생성 ----> IAM 계정 (User, 사용자)

- Role(역할)은 서비스나 프로그램에 부여함

- Policy(정책)을 Role or User에게 부야 함

 

• CloudWatch

- Monitoring을 하면서 상태를 Graph로 표시

- 서비스 지표, 로그 등을 수집, 기록

- 임계값을 넘으면 특정 동작이 일어나도록 설정  ex) 10만 원이 넘으면 Mail로 보내라

- CPU 사용률, 볼륨의 읽기 쓰기 횟수나 바이트 수, 네트워크 송수신 패킷 수 등 감시

 

• AWS CloudTrail

- 감사 서비스를 활성화하면 '누가' 어떤 리소스에 접근했는지도 기록으로 남길 수 있음

 

• 감사(Audit)

- 위험(Risk)을 줄이기 위해서 통제(Control)를 사용해야 함

- 통제(Control)의 적절성을 평가하는 것이 감사

- 기록을 추적(증적 : Trail) ----> 감사할 때 증거를 추적하는 것을 Audit Trail이라고 함

- 클라우드에서 발생하는 모든 행위를 기록하고 추적하는 서비스 ---> CloudTrail이라는 서비스를 제공

 

• EC2 요금체계

- On-Demand : 필요할 때 사용하고, 필요하지 않으면 종료, 할인이 없음

-Spot Instance : 경매 형식, 가장 높은 가격을 제시한 고객부터 EC2를 사용하게 해 줌

- 예약 인스턴스 : 약정, 장기간 사용하기로 하고 할인을 받을 수 있음

 

•AMI (Amazon Machine Image) : 아마존 클라우드에서 사용하기 위해서 만든 가상 머신 이미지

 

• 저스펙 type을 사용하다가 고 스펙 type으로 바꾸는 것은? Scale up <-----> Scale down

 

•HDD와 SSD의 차이점 (속도가 차이 나는 이유)

- HDD는 기계식 : 모터 + 원판 + 헤드 -----> 속도 느림

- SSD는 전자식 : 반도체 장착 -----> 속도 빠름

 

• EBS

- 가상 머신의 Disk

- 부트 섹터, 운영체제, 데이터 저장 가능(가격 문제)

- 가상 머신에 부착해서 사용하다가 따로 분리해서 별도로 보관할 수 있음

 

 Key pair 사용방법

1) 윈도우에서 사용하려면, 상속 제거하고 Windows 사용자만 읽기 권한을 부여해야 함

2) 리눅스에서 사용하려면 chmod 400

3) Putty에서 사용하려면 ppk로 변환해서 SSH > Auth에서 ppk파일 첨부해서 로그인

4) 원도우 서버에 EDP로 로그인하려면? 암호로 변경해서 RDP의 패스워드에 입력

 

 EIP(탄력적 IP)

- IPv4 주소는 부족함(한정된 자원) 

- EIP를 확보해놓고 사용하지 않으면? 비용 청구됨(페널티 비용) ----> Release 해서 다른 사용자가 사용할 수 있도록 해야 함

- 사용자당 5개까지 사용 가능 (추가 요청을 하면 심사 후에 제공)

- NLB등에 할당하는 경우에는 비용이 별도로 청구되지 않음

 

 IPv4 주소 부족하기 때문에 URL방식 사용 권장  ex) ALB의 URL 경로

 

Snapshot

- 시스템의 상태를 이미지로 만들어서 저장

- AMI이미지로 저장해서 사용 가능 ex) 오토스케일링에서 사용

 

 Auto Scaling

- 일정 개수를 유지하는 방식

- Target Tracking : CPU의 사용률을 지속적으로 일정 수준으로 맞춤 ----> EC2가 자동으로 증가 또는 감소

 

 ELB (ALB, NLB)

- Listener (들어오는 곳)에 설정하는 것은? 프로토콜과 포트를 설정

- Target Group (분배대상) : EC2를 직접 등록 또는 그룹으로 설정 (그룹으로 설정할 때 Auto Scaling 그룹을 설정할 수 있음)

 

 CloudFront
- 콘텐츠를 배포하는 서비스, 대용량 Cache 서비스

- 고객이 전 세계에 많이 있고, 콘텐츠를 많이 가지고 있는 사업자가 주로 이 서비스를 이용함 ex) 넷플릭스

 

 Netflix

- 드라마, 영화, 애니메이션 등을 S3 Bucket에 저장

- 전 세계의 수많은 고객들이 같은 영화를 보려고 합니다 ---> Cache (임시 보관) 서비스 필요함 ----> CloudFront

- 원래는 자체 데이터센터를 보유하였으나, 순차적으로 AWS로 Migration을 했음(현재는 데이터센터 없음)

 

 인터넷 게이트웨이(IGW)

- 양방향 통신이 가능 (인터넷에서 AWS VPC에 들어올 수 있고(inbound) AWS VPC에서 인터넷으로 나갈 수도 있음(Outbound))

 

 NAT 게이트웨이

- Inbound(인터넷 --> AWS VPC)는 안되고, Outbound(AWS VPC ---> 인터넷)는 가능 (공유기와 비슷)

- 어떤 경우에 적합할까?

외부에서 접근할 필요 없는 Database Server가 업데이트를 해야 하는 경우에 적합 

 

 ENI (Elastic Network Interface) : AWS에서 제공하는 가상의 랜카드(NIC : Network Onterface Card) --> MAC 주소 들어있고, IP 할당 가능

 

 VPC 엔드포인트

- 인터페이스 엔드포인트 : ENI를 연결하는 방식(개별적인 연결)

- 게이트웨이 엔드포인트 : 네트워크를 연결하는 방식 --> 라우팅 테이블에 등록

 

 VPC

- 한 사용자가 VPC를 여러 개 만들 수 있음, 다른 사용자의 VPC도 있음

- VPC와 VPC를 연결하려면? VPC Peering 

- VPC Peering은 VPC와 VPC를 1대 1로 연결하는 방식 --> VPC가 많으면 복잡 --> Transit Gateway를 사용하면 복잡한 연결을 한방에 해결

 

 AWS DirectConnet

- AWS VPC와 기업의 네트워크를 연결하는 전용선(암호화 지원)

- 안정적이고 빠르고 약간 비쌈

 

 AWS VPN

- 저렴하지만 인터넷을 거쳐서 연결되다 보니 네트워크 품질과 속도를 보장 못함

 

 Aurora

- MySQL, PostgreSQL(포스트그레스 큐엘)과 호환 가능

- AWS에 최적화해서 속도가 빠르다

 

 AWS에서 DB 사용하는 방법

- Aurora : AWS에서 자동 복제, 최적화 등등 (가장 추천)

- RDS에서 사용자가 설정

- EC2에 MySQL, Oracle 설정 (비추) --> 관리 문제... 고객이 직접 관리??

 

 키 밸류 데이터베이스

- Key Value Store (KVS) : NoSQL방식

- 장점 : 형식에 구애받지 않고 데이터를 입력할 수 있다. 데이터에 대한 Access가 빠르다.

- 빅데이터와 IoT 같은 대용량 데이터를 빠르게 처리

 

 ElastiCahe

- 인 메모리 데이터베이스 (빈번하게 읽고 쓰는 데이터는 일시적으로 메모리에 보관하는 방식) ---> 속도 무지 빠름

- Redis, Memcahed와 호환 가능

 

 Lambda

- 람다 함수라고 부름 (Lambda function)

- 간단한 프로그래밍으로 단순 반복 작업을 여러 번 수행하는 경우에 적합함

- 어떤 특정 행위를 Trigger(방아쇠)로 등록해놓으면, 특정 행위가 발생될 때 Lambda함수가 동작함

 

 Lambda 사용 사례

- 쇼핑몰 담당자가 원본 사진을 업로드하면, 람다가 썸네일을 만들어서 S3 등에 저장

- 일반 게시판 사용자들이 사진을 업로드하면 사진의 크기를 일정 크기로 줄여서 S3에 저장

- 비밀번호 잊어버린 사람들이 휴대폰 본인 인증을 하려는 경우, 본인 확인 프로세스

실습

- AWS CLI를 이용해서 EC2를 생성하고, Wordpress 사이트를 만들어보기
- Bitnami_lamp 처럼 다 만들어져 있는 AMI를 사용하면 안됨
- RDS는 하지 말고, 2Tier로 구성하기

aws ec2 run-instances --image-id ami-09208e69ff3feb1db --count 1 --instance-type t2.micro --key-name aws1_key --security-group-ids sg-00de81c5c00ce7681 --subnet-id subnet-07a550eb075a77db2

AWS CLI를 사용해 EC2를 생성을 하였다.

생성된 EC2이다.

EC2 연결

SSH클라이언트 주소를 사용해 EC2에 접속을 한다.

sudo yum update -y

업데이트를 먼저 해준다.

sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2

MariaDB 및 PHP 패키지를 설치해준다.

sudo yum install -y httpd mariadb-server

아파치 및 MariaDB서버를 설치해준다.

sudo systemctl start httpd  sudo systemctl enable httpd

아파치 웹서버를 시작해주고 매번 부팅할 때 아파치 웹서버를 시작해준다.

sudo usermod - a -G apache ec2-user 사용자를 아파치 그룹에 추가

sudo chown -R ec2-user:apache /var/www  /var/www 및 콘텐츠의 그룹 소유권을 마 파치 그룹으로 변경

sudo chmod 2775  /var/www && find /var/www  -type d -exec sudo chmod 2775 {} \; && find /var/www -type f -exec sudo chmod 0664 {} \; 그룹 쓰기 권한을 추가하여 나중에 하위 디렉터리에 대한 그룹 ID 설정하려면 /var/www와 그 하위 디렉터리의 디렉터리 권한을 변경

sudo systemctl start mariadb

MariaDB 서버 시작

sudo mysql_secure_installation

mysql_secure_installation 실행

sudo yum install php-mbstring php-xml -y

필요한 종속 항목 설치

sudo systemctl restart httpd  sudo systemctl restart php-fpm
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

phpMyAdmin 최신 릴리스의 소스 패키지를 설치

mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1

phpMyAdmin 폴더 생성 및 패키지 압축 해제

rm phpMyAdmin-latest-all-languages.tar.gz
wget https://wordpress.org/latest.tar.gz

Wordpress 설치를 한다.

tar -xzf latest.tar.gz
DB 사용자 및 DB 생성
DB 사용자 및 DB 생성
DB 연동 하기
wp-config.php
cp -r wordpress/* /var/www/html/

WordPress를 문서 Root에서 실행

WordPress를 문서 루트 대체 디렉터리에서 실행

sudo vim /etc/httpd/conf/httpd.conf
httpd.conf

AllowOverride None을 All로 변경을 한다.

sudo chown -R apache /var/www   sudo chgrp -R apache /var/www

/var/www의 파일 소유권 및 그 콘텐츠를 apache 사용자에게 허용 및 그룹에 허용을 해준다.

/var/www 및 그 하위 디렉터리의 디렉터리 권한을 변경해서 그룹 쓰기 권한을 추가하고 미래 하위 디렉터리에서 그룹 ID를 설정

아파치 및 Mariadb를 재시작을 해준다.

WordPresss

WordPress가 실행이 된 걸 확인할 수 있다.

Wordpress 동작 확인

동작이 잘 되는지 이미지를 업로드를 해보았다.

'Rookies 9기 > 클라우드 보안' 카테고리의 다른 글

클라우드 보안 6일차  (0) 2022.10.05
클라우드 보안 5일차  (0) 2022.09.30
클라우드 보안 4일차  (0) 2022.09.29
클라우드 보안 3일차  (0) 2022.09.28
클라우드 보안 2일차  (0) 2022.09.27