SK shieldus Rookies 9기/클라우드 보안

클라우드 보안 수업 6일차 (22/10/05)

ksh_5 2022. 10. 5. 11:30
  • 클라우드 특징 (p.19~23)

 

- 확장성, 유연성

- 종량제 : 사용한 만큼 비용을 지불

- Multi-tenancy : 복수 점유

 

 

  •  S3 클래스에서 보관 비용 순서 (인출 비용은 역순)

 

S3 Standard > S3 Standard-IA > S3 One Zone-IA > Glacier instant retrieval > Glacier flexible retrieval > Glacier Deep Archive

 

 

  • VPN (Virtual Private Network)

 

   : 네트워크 암호화 통신하는 서비스

- Public Network (공중망) : ISP(Internet Service Provider)들이 제공하는 네트워크저렴하지만 안전하지 않음 (침해사고 발생)

- Private Network (사설망) : 기업들이 자체적으로 구축한 네트워크

   ex) 현대차와 납품업체들간 통신을 위한 선을 설치 → 고비용

- VPN (가상의 사설망) : ISP들이 공중망에서 암호화된 네트워크 서비스를 제공하는 것 → 저렴하면서 안전함

 

 

  • VPN에서 사용하는 기술

 

- AH (Authentication Header) : 인증 헤더 (인증, 무결성) → 믿을 수 있는 상대인지(인증), 데이터 신뢰(무결성)

- ESP (Encapsulation Security Payload) : 데이터 암호화, 무결성→ 데이터를 안전하게 암호화해 보냄(기밀성), 데이터 신뢰(무결성)

 

 

  • VPN 구현 방법

 

- Transport : 종단간 암호화, 헤더는 암호화 안됨

- Tunneling : 구간 암호화, 헤더까지 통째로 암호화

 

 

  • 안전한 정도

- ESP Tunnel > ESP Transport > AH Tunnel > AH Transport      // (CISSP시험에서 기출)

 

 

  • RDS (관계형 데이터베이스 서비스)

 

- Aurora : AWS에서 MySQL, PostgreSQL를 AWS Cloud 환경에 맞게 최적화한 서비스 (여러 번 복제) → 약간 비싸지만 안정성 높음

  (중요한 서비스를 실행할 때, 안정성이 높고 Cloud에 최적화 되어서 속도도 빠름)

 

 

  • Route 53

 

- 도메인 등록 및 관리 서비스

- DNS 관련 부하 분산 서비스

 

 

  • Elastic IP (탄력적 IP)

 

- 고정 퍼블릭 IP주소 → 한번 설정하면 IP주소 변동없이 그대로 사용 가능 (NLB 할당)

   ex) 도메인 주소와 EIP를 연동하면 안정적인 서비스 가능

 

 

  • Direct Connect

 

- 회사에서 Cloud로 접속하기 위한 안전하게 연결해주는 서비스 (VPN 기능)

   → 기업들이 사용하는 전용 통로

   cf. IGW(Internet Gateway) : 암호화 안됨, 공인IP를 통한 공개된 연결 통로

 

 

  • Red Shift (p.47)

 

- Data Warehouse (대용량 데이터 저장 및 분석)

  ex) 자동차 회사 : 영업사원들이 계약정보 입력을 할 때 처리는 EC2에서하고 S3에 저장, Red Shift에서 분석하고 분석 자료 S3에 저장

 

 

  • DynamoDB

 

- AWS에서 제공하는 NoSQL 서비스

- NoSQL은 SQL형식을 무시하는 Database 방식

- 비정형 데이터를 저장할 때 주로 사용

   ex) 로그, 이미지, 쿠키 등

cf. SQL에서는 아래와 같이 정형화된 데이터를 입력해야 함

- char (고정길이 문자)

- varchar (가변길이 문자)

- int (숫자)

 

 

  • PaaS

 

- IT를 잘 하는 사용자(개발자)가 서비스를 만들기 위해서 사용

 

 

  • SaaS

 

- IT를 모르는 비전문가들이 ID/PW만 입력하면 다 해주는 서비스

 

 

  •  AWS 아키텍처 설계 사이트

 

https://cacoo.com/

 

Collaboration Tools for Team & Project Management | Nulab

Review & Disucss Share, view, and discuss the latest updates to make faster decisions.

nulab.com

- 구성도 예제

 

 

 

  • PuTTY

 

- 서버와 연결할 때 사용하는 클라이언트용 도구

- putty.exe와 puttygen.exe 두 파일 모두 다운 받기

- putty.exe : 서버와 연결할 때 사용 (SSH 등)

- puttygen.exe : 키 형식을 변경해주는 도구 (aws_key.pem → aws_key.ppk)

- ppk (Putty Private Key)형식으로 변경하면, 400 설정 안 해도 됨

 

 

key pem → ppk 변환 실습)

더보기

① puttygen.exe 실행

② File > Load > aws_ksh.pem 선택 (원래 쓰던 키)

③ Save private Key 클릭해 aws_ksh 이름 입력하면  aws_key.ppk 라는 파일 생성됨

 

PuTTY 실습)

더보기

① 인스턴스 생성

② 이름 : Bitnami_wordpress

③ AMI : WordPress Certified by Bitnami and Automattic

 인스턴스 유형 : t2.micro

⑤ 키 페어 : aws_ksh

⑥ vpc : ksh_vpc

⑦ subnet : kshsub01 (public)

⑧ 퍼블릭 IP 자동 할당 : 활성화

⑨ 기존 보안 그룹 선택 후 web_server

⑩ 퍼블릭 IPv4 복사해 PuTTY Host Name에 넣기

⑪ Category : SSH > Auth > Private key file  for authentication에 ppk 파일 가져오기

 

 

- login  as : bitnami

 

 

$ cd /home/bitnami

$ cat  bitnami_credentials   // Database 접속 ID/PW 확인 → Wordpress ID/PW 동일

 

퍼블릭 주소로 들어가면 word 확인 가능

 

- 관리자 페이지로 가서 설정 변경하면 됨

http://퍼블릭IPv4주소/wp-admin/

게시물&이미지 업로드

 

    • Wordpress 공식 웹사이트

 

 

https://ko.wordpress.org/

 

- 소스코드를 무료로 배포하는 웹사이트

- 다운로드하면 손쉽게 블로그 사이트 생성 가능

- 단점 : 플러그인들 중에 취약점이 발견되는 사례가 많음

 

 

  • AWS 계정 (p.88)

 

- 계정을 만들려면 신용카드를 등록해야 함

- 아마존 쇼핑몰 계정과는 다름

   → AWS 자격증 시험 볼 때 쇼핑몰 계정으로 로그인해서 시험 보기 가능

 

 

  • Root 사용자

 

- Email 주소 등록 → 소유기반 검증으로 활용 (PW 변경 등)

- Root 계정은 업무에 사용X , 별도로 계정(IAM사용자 계정)을 생성해 권한 부여

- IAM 관리 권한을 가진 사용자를 생성해서 Project 팀에 부여 (인사권 가진 사람에게 부여, PM 등)

 

 

  • IAM 계정

 

- 일반 사용자 계정 의미

- 사용자 그룹 단위로 관리해야 편리함

- 임원 등이 진행상황 체크 및 모니터링 → ReadOnlyAccess

 

 

  • Federated User (연합사용자) ()

 

- 고객사에서 잠깐 보려고 한다면?

- 외부 컨설턴트에게 문제점을 도움받으려고 할 때

- Google, Facebook 등 다른 계정을 가진 사용자에게 '임시 접근 권한'을 부여하는 방법

- 업무가 끝나면 권한 제거

 

 

  • AccessKey, SecretAccessKey

 

- Command Line에서 사용자를 인증하는 방식

→ AccessKey와 SecretAccessKey는 ID/PW와 마찬가지이므로 보안 주의

- 확장자가 csv (Comma Separated Value : 값을 콤마로 구분)

 

 

AWS CLI 설치 실습)

- 환경 : ubuntu

 

더보기

$ sudo apt update

$ sudo apt install python-setuptools python3-pip -y

$ sudo apt install vim

$ sudo apt install net-tools

$ sudo pip install awscli

$ aws  --version   // 버전 달라도 상관X

$ aws configure

 Access Key ID,  Secret Access Key : 복사 붙여넣기

 Region : 나의 리전 이름

 Output :  그냥 엔터

$ aws  s3  ls      // S3 버킷 리스트가 출력

$ aws  s3  mb  s3://고유한이름

$ aws  s3  ls     // 새로운 버킷이 잘 만들어졌는지 확인 (구버킷, 신버킷 두 개 확인)

$ aws  s3  ls  s3://확인할 버킷이름     // 버킷 안에 있는 파일들을 모두 확인

$ aws  s3  cp  s3://구버킷/파일명.jpg   s3://신버킷/     // 구버킷 파일 신버킷으로 복사

$ aws  s3  ls  s3://신버킷

 

참고) aws cli를 사용하는 경우는 반복작업이 많은 경우에 효과적

    ex) 로그 파일 백업 등을 하는 경우, shell script로 만들어서 엔터 한 번이면 됨

 

$ aws  s3  rm  s3://destinyofpuppets/tulip.jpg    // 버킷 안 파일 삭제

 

AWS CLI로  EC2 생성 실습)

- Amazon Linux의 AMI 번호 : ami-

(숫자)

     //  x86으로 선택,  ARM은 선택X , 리전마다 다름

 

더보기

$ aws ec2 run-instances  \

--image-id   ami-(숫자)  \     // EC2 메뉴에서 확인 가능

--count 1   \

--instance-type t2.micro  \                                                   

--key-name aws_ksh    \

--security-group-ids  [보안그룹 ID]   \     // EC2 > 보안 그룹 > web_server 참고

--subnet-id  [여러분의 퍼블릭 Subnet ID]     // VPC > Subnet  > Subnet ID 복사

 

No default VPC for this user  ----> VPC 메뉴에서 VPC를 기본 VPC로 지정

 

- EC2가 제대로 만들어졌는지 확인

EC2 > 인스턴스 메뉴 > 인스턴스 ID 복사

 

$ aws  ec2  describe-instances     // 전체 인스턴스 보기 (인스턴스ID 확인, 복사)

$ aws  ec2  describe-instances --instance-id   [인스턴스 ID]     // 특정 인스턴스 보기

$ aws  ec2  describe-instances --instance-id  i-02c3651634c1dca31

 

- 태그 추가하기

$ aws  ec2  create-tags  --resources  인스턴스ID   --tags Key=Name,Value=[지정할 이름]

 

  • mysql_real_escape_string( ) 함수

 

아래 문자열을 만나면 앞에 \(백슬래시)를 붙여서 Escape처리

\x00, \n, \r, \, ', " and \x1a