공부/클라우드 보안

10월 05일 클라우드 보안 6

마준123 2022. 10. 5. 17:45

* 클라우드의 특징(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를 연동하면 안정적인 서비스 가능

* AWS을 활용해서 돈을 벌려면? (IaaS/PaaS/SaaS)
 = PaaS를 이용해서 SaaS를 만들어서 서비스를 제공하면 됨
 = 가격 : IaaS(캠핑) < PaaS(글램핑) < SaaS(호텔)                    ex) SNS를 서비스하려는 Startup들이 PaaS를 이용해서 제공

* AWS 도입 사례

* Direct Connect : 회사에서 Cloud로 접속하기 위한 안전하게 연결해주는 서비스 (VPN기능) ---> 기업들이 사용하는 전용 통로
  cf. IGW(Internet Gateway) : 암호화 안됨, 공인IP를 통한 공개된 연결 통로

* Red Shift : Data Warehouse (대용량 데이터 저장 및 분석)   p.47
  ex) 자동차 회사 : 영업사원들이 계약정보 입력을 할 때 처리는 EC2에서하고 S3에 저장, Red Shift에서 분석하고 분석 자료는 S3에 저장

* DynamoDB
 = AWS에서 제공하는 NoSQL 서비스
 = NoSQL은 SQL형식을 무시하는 Database 방식
 = 비정형 데이터를 저장할 때 주로 사용   ex) 로그, 이미지, 쿠키 등등

cf. SQL에서는 아래와 같이 정형화된 데이터를 입력해야 함
 = char(고정길이 문자)
 = varchar(가변길이 문자)
 = int(숫자)

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

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

 

항목탐색 - 항목생성 을 누른다

 

대충 만들어도 뚝딱 만들어진다. ( SQL에서는 위배되는 법칙이 여기선 가능하다 [ ex. 빈 항목 넣기 ]

 

끝났으면 삭제 ( 안지우면 돈나감! )

 

* AWS 아키텍처 설계 사이트

cacoo.com

 

------------------------------------------------------------------------------------------------------------------------------------

 

 * Putty

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

 = https://putty.org  ---> chiark.greenend.org.uk(공식 웹사이트)
-----> putty.exe와 puttygen.exe 파일 두개를 다운로드 받음
 = putty.exe  :  서버와 연결할 때 사용 (SSH 등)
 = puttygen.exe    :  키형식을 변경해주는 도구  ( aws_key.pem  ---->  aws_key.ppk  )
 = ppk (Putty Private Key)형식으로 변경하면, 400 설정 안해도됨

 

실습 ) aws_key.pem 파일을  .ppk로 변환해서 접속해보기

 = puttygen.exe를 실행해서
 = File > Load > aws_key.pem (원래 사용하던 키)를 선택
 = Save private Key를 클릭해서 aws_key 이름을 입력하면  aws_key.ppk 라는 파일이 생성됨

 

 

 = EC2 생성할때 AMI 검색창에 Bitnami로 검색 ( 관련성으로 검색하면 가장 위에 있음 )

WordPress Multisite Certified by Bitnami and Automattic

설정1
설정2

 

 = 이제 PuTTY로 와서 인스턴스의 아이피를 입력한다

 

 = Open 누르고

 = Accept 클릭

 = login as : bitnami

 

$ cd /home/bitnami/htdocs                           //웹서버 루트 디렉토리

저기 안에 들어가면 index.html이 있다.

$ cd /home/bitnami
$ cat  bitnami_credentials                           // Database 접속 ID/PW가 보임  ----> Wordpress의 ID/PW도 동일함

* 공인IP주소를 복사해서 웹브라우저에서 열어보세요~
http://인스턴스 공인아이피/wp-login.php (http://인스턴스 공인아이피/admin  으로 들어가도 들어가진다. )
cat bitnami_credentials에서 본 ID와 PW를 입력하면 관리자 페이지로 들어가짐

* 관리자 페이지로 가서 설정 변경하면 됨
http://인스턴스 공인아이피/wp-admin/
게시물&이미지 업로드

* Wordpress 공식 웹사이트
https://ko.wordpress.org/
 = 소스코드를 무료로 배포하는 웹사이트
 = 다운로드 하면 손쉽게 블로그 사이트를 만들수 있음
 = 단점 : 플러그인들 중에 취약점이 발견되는 사례가 많음
   https://www.exploit-db.com/  에서 wordpress로 검색해보면, 취약한 plugin들이 검색 가능함 ---> 설치하면 안됨

만일, 보안 컨설턴트라면,
 = 고객사의 Wordpress에서 사용되는 플러그인 조사 ----> 취약한 버전인지 확인 ---> 업데이트 혹은 제거 권고

삭제 : Bitnami EC2 인스턴스 삭제합니다.

아쉽지만 이번에도 다했으면 종료 인스턴스....

 

 

--------------------------------------------------------------------------------------------------------------------------------

 

* AWS 계정 (p.88)
 = 계정을 만들려면, 신용카드를 등록해야 함. 
 = 아마존 쇼핑몰 계정과는 다름 ----> AWS 자격증 시험 볼때 쇼핑몰 계정으로 로그인해서 시험 볼 수 있음

* Root 사용자
 = Email 주소 등록 ----> 소유기반 검증으로 활용 (PW변경 등)
 = Root 계정은 업무에 사용하면 안됨, 별도로 계정을 생성(IAM사용자 계정)을 생성해서 권한을 부여하면 됨
 = IAM관리 권한을 가진 사용자를 생성해서 Project 팀에 부여하면 됨 (인사권 가진 사람에게 부여, PM등)

* IAM 계정
 = 일반 사용자 계정을 의미함
 = 사용자 그룹 단위로 관리해야 편리함
 = 임원 등이 진행상황 체크 및 모니터링 -----> ReadOnlyAccess

* Federated User (연합사용자) ★
 = 고객사에서 잠깐 보려고 한다면?
 = 외부 컨설턴트에게 문제점을 도움받으려고 할때
 = Google, Facebook 등 다른 계정을 가진 사용자에게 '임시 접근 권한'을 부여하는 방법
 = 업무가 끝나면 권한 제거


* AccessKey, SecretAccessKey : Command Line에서 사용자를 인증하는 방식
  -----> AccessKey와 SecretAccessKey는 ID/PW와 마찬가지이므로 보안 주의해야 함 (절대로 외부에 노출하면 안됨!!!)

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

* AWS CLI 설치
$ sudo apt update
(비밀번호 : ubuntu )
$ sudo apt install python-setuptools python3-pip -y
$ sudo apt install vim
$ sudo apt install net-tools
$ sudo pip install awscli 
$ aws  --version                        // 버전이 달라도 큰 문제 없음

(  ---- cache lock -----  :  apt 잠기는 경우 ----> rebooting 하면 해결됨)
$ 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-0c76973fbe0ee100c                        //  x86으로 선택,  ARM은 선택하면 안됨,  리전마다 다름

$ aws ec2 run-instances  \
--image-id   ami-0c76973fbe0ee100c  \                                  // EC2 메뉴에서 확인
--count 1   \
--instance-type t2.micro  \                                                    
--key-name aws_key    \ 
--security-group-ids  [보안그룹 ID]   \                                    // EC2 메뉴에 보면, 왼쪽 보안 그룹 클릭하고 webserver 참고
--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=[지정할 이름]



EC2, 새로만든 버킷도 삭제~