• 클라우드의 특징
- 확장성, 유연성
- 종량제 : 사용한 만큼 비용을 지불
- Multi-tenancy : 복수 점유
• S3 클래스에서 보관 비용 순서 (인출비용은 역순)
S3 Standard > S3 Standard-IA > S3 One Zone-lA > 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 구현방법
⇒ 안전한 정도 : ESP Tunnel > ESP Transport > AH Tunnel > AH Transport
- Transport : 종단간 암호화, 헤더는 암호화 안됨, 데이터 부분만 암화해서 전송
- Tunneling : 구간 암호화, 헤더까지 통째로 암호화, 터널통과를 위한 헤더가 추가됨 (기업들은 본사,
• 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를 만들어서 서비스를 제공하면 됨
ex) 가격 : IaaS(캠핑) < PaaS(글랭핑) < SaaS(호텔)
ex) SNS를 서비스하려는 Startup들이 PaaS를 이용해서 제공
• Direct Connect : 회사에서 Cloud로 접속하기 위한 안전하게 연결해주는 서비스(VPN기능) ---> 기업들이 사용하는 전용 통로
cf. IGW(Internet Gateway) : 암호화 안됨, 공인IP를 공개된 연결 통로
• Red Shift : Data Warehouse(대용량 데이터 저장 및 분석)
ex) 자동차 회사 : 영업사원들이 계약정보 입력을 할 때 처리는 EC2에서하고 S3에 저장, Red Shift에서 분석 자료는 S3에 저장
• DynamoDB
- AWS에서 제공하는 NoSQL 서비스
- NoSQL은 SQL형식을 무시하는 Database 방식
- 비정형 데이터를 저장할 때 주로 사용 ex) 로그, 이미지, 쿠키 등등
cf. SQL에서는 아래와 같이 정형하된 데이터를 입력
- char(고정길이 문자)
- varchar(가변길이 문자)
- int(숫자)
파티션 키(물리적 공간인 파티션을 특정 하는 키이다) 와 정렬키(동일한 파티션 키를 가진 데이터를 정렬할 때 쓰인다) 기본 키 이므로 생략할 수 없고 변경 할 수 없다.
파티션 키 + 정렬 키 = 기본 키
생성을 한 후 항목탐색에 들어가 테이블을 추가로 생성해보자.
파티션 키 와 정렬 키를 생성을 한다.
동일한 데이터로 입력을 안해도 에러가 일어나지 않는다(SQL에서는 에러남)
PaaS : IT를 잘 하는 사용자(개발자)가 서비스를 만들기 위해서 사용 SaaS : IT를 모르는 비전문가들이 ID/PW만 입력하면 다 해주는 서비스 |
• AWS 아키텍쳐 설계 사이트
• Putty
- 서버와 연결할 때 사용하는 클라이언트용 도구
putty.exe 와 puttygen.exe 파일 두개를 다운로드 받음
- putty.exe : 서버와 연결할 때 사용 (SSH 등)
- puttygen.exe : 키 형식을 변경해주는 도구 (aws_key.pem ---> aws_key.ppk)
- ppk (Putty Private Key)형식으로 변경하면 400 설정 안해도 됨
• 실습 aws_key.pem 파일을 aws_key.ppk 로 변환해서 접속해보기
1. aws_key.pem 확장자 변경
puttygen.exe를 실행 시키고 Load 버튼 클릭
Save private Key를 클릭해서 aws_key이름으로 파일을 생성한다.
ppk라는 확장자로 파일이 변경되었다.
2. 접속을 하기위한 EC2생성
AMI 검색창에 Bitnami로 검색을 해서 EC2 생성하기
Bitnami word..이름으로 EC2가 생성이 되었다.
3. Putty로 접속하기
첫 화면에서 Hostname에 EC2의 버플릭 IP를 입력한 후 SSH -> Auth에 들어가 aws_key.ppk를 넣어준다.
Open 버튼을 눌러준다.
로그인 아이디를 bitnami 를 입력을 하면 접속이 되는걸 볼 수 있다.
Database 접속 ID/PW가 보인다.(Wordpress의 ID/PW도 동일하다.
4. Wordpress
퍼블릭 IP로 웹브라우저에 들어가면 Wordpress가 실행이 되있다.
http://52.53.209.218/wp-admin 에 들어가면 관리자 페이지에 들어갈수있다.
Posts에 들어가 게시물&이미지를 업로드 해보자.
페이지 첫 화면에 업로드가 되어있는걸 볼수 있다.
• Wordpress
- 소스코드를 무료로 배포하는 웹 사이트
- 플로그인들 중에 취약점이 발견되는 사례가 많다.
-https://www.exploit-db.com 에서 wordpress로 검색하면 취약한 plugin들을 볼수 있다.
• Root 사용자
- Email 주소 등록 ---> 소유기반 검증으로 활용 (PW변경 등)
- Root 계정은 업무에 사용하면 안됨, 별도로 계정을 생성 (IAM사용자 계정)을 생성해서 권한을 부여하면 됨
- IAM관리 권한을 가진 사용자를 생성해서 Project 팀에 부여하면 됨 (인사권 가진 사람에게 부여, PM등)
• IAM 계정
- 일반 사용자 계정을 의미함
- 사용자 그룹 단위로 관리해야 편리함
- 임원 등이 진행상황 체크 및 모니터일 ---> ReadOnlyAccess
• Federated User (연합사용자)⭐
- 고객사에서 잠깐 보려고 한다면?
- 외부 컨설턴트에게 문제점을 도움 받으려고 할때?
- Google, Facebook 등을 가진 다른 사용자에게 임시 접근 권한을 부여하는 방법
- 업무가 끝나면 권한 제거
• Accesskey, SecretAccessKey : Command Line에서 사용자를 인증하는 방식
----> ID/PW와 마찬가지이므로 보안 주의해야 함(절대 외부에 노출X)
- 확장자가 csv (Comma Separated Value : 값을 콤마로 구분함)
• AWS CLI 실습
• AWS CLI 설치 $ sudo apt update $ sudo apt install python-setuptools python3-pip -y $ sudo apt install vim $ sudo apt install net-tools $ sudo pip install awscli |
Acces key,Secret Access Key, Region를 입력을 해준다.
S3의 버킷 리스트가 출력 된다.
S3에 버킷을 만들어 준다.
새로운 버킷에 기존에있던 이미지 파일을 복사를 해준다.
복사한 파일이 있는걸 볼 수 있다.
버킷안에 있는 이미지 파일을 삭제한다.
Amazon Linux를 AWS CLI로 생성을 해보자. AMI 번호를 확인한다.
인스턴스를 지정해서 볼 수 있다.
aws ec2 create-tags --resources 인스턴스ID --tags Key=Name,Value=[지정할 이름] 명령어를 사용해 태그를 추가할 수 있다.
'Rookies 9기 > 클라우드 보안' 카테고리의 다른 글
클라우드 보안 7일차 (0) | 2022.10.06 |
---|---|
클라우드 보안 5일차 (0) | 2022.09.30 |
클라우드 보안 4일차 (0) | 2022.09.29 |
클라우드 보안 3일차 (0) | 2022.09.28 |
클라우드 보안 2일차 (0) | 2022.09.27 |