* 클라우드의 특징(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
= 이제 PuTTY로 와서 인스턴스의 아이피를 입력한다
= Open 누르고
= Accept 클릭
= login as : bitnami
$ cd /home/bitnami/htdocs //웹서버 루트 디렉토리
$ 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, 새로만든 버킷도 삭제~
'공부 > 클라우드 보안' 카테고리의 다른 글
내가 보려고 만든 모듈프로젝트 레시피 (0) | 2022.10.12 |
---|---|
10월 06일 클라우드 보안 7 (0) | 2022.10.07 |
9월 30일 클라우드 보안 5 (0) | 2022.09.30 |
9월 29일 클라우드 보안 4 (0) | 2022.09.29 |
9월 28일 클라우드 보안 3 (0) | 2022.09.28 |