하드웨어를 소프트웨어적으로 표현하는 것 ⇒ 소프트웨어적으로 관리 == 파일 형태로 관리
쉽게 복사, 이동 가능 ⇒ 똑같은 구조를 쉽게 여러 개 생성 가능
서버는 비쌈. 들어간 값만큼의 비용을 뽑아내기 위해서 과거에는 여러 개의 프로그램을 동시에 구동시킴. 이 장비가 가진 성능을 모두 도출해내기 위해 사용함. 그랬더니 간섭이 일어남.
각각의 환경들이 독립된 환경에서 돌아가도록 하는 것=가상화
논리적으로 나눠놓은 하드디스크
IaaS
→ PaaS
→ SaaS
처음에는 하드웨어 기준으로 빌려쓰다가 나중에는 네트워크를 통해서 프로그램 자체를 빌려쓰는 형태로 발전함(ex. 구글 공유 문서)
IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 것
온디맨드란? 공급자 중심이 아닌 수요에 따라 제품이나 서비스가 제공되는 것으로, 소비자가 원하는 것을 즉시 제공하는 형태의 서비스
프로비저닝(Provisioning)이란? 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것
가상화에서 운영체게를 뺀 것
컨테이너 기술을 쉽게 운영할 수 있도록 해주는 기술 == Docker
오케스트레이션? 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하게 도와준다.
(ex. 쿠버네티스, Docker Swarm, Apache Mesos 등)
오케스트레이션해주는 것 == 쿠버네티스
AWS의 기본 빌딩 블록. 대부분의 기본적인 클라우드 컴퓨팅 요구사항을 충족시키는데 사용.
EC2(Elastic Compute Cloud), S3(Simple Storage Service), RDS(Relation Database Service)
특별한 작업, 데이터 처리, 서버리스 컴퓨팅, 데이터 분석 등과 같이 더 특화된 작업을 위한 솔루션
Lambda, Glue, Step Functions
클라우드 환경에서 발생하는 보안문제에 대한 책임소재와 보안절차
리전(region)
: 데이터 센터를 클러스터링하는 물리적 위치.
AWS 리전은 지리적 영역 내에서 격리되고 물리적으로 분리된 최소 3개의 가용역역으로 구성됨.
가용영역(AZ)
: 하나 이상의 개별 데이터 센터로 구성. 모든 AZ는 서로 100km(60마일) 이내의 거리에 위치. AWS리전의 모든 AZ는 높은 대용폭, 지연 시간이 짧은 네트워킹, 완전한 중복성을 갖춘 전용 메트로 광 네트워크와 상호 연결되어 있어 AZ간에 높은 처리량과 지연시간이 짧은 네트워킹을 제공. AZ 간의 모든 트래픽은 암호화됨.
로컬영역
: AWS 서비스를 최종 사용자에게 더 가까운 위치에서 실행할 수 있게 보장해주는 서비스. 지연 시간에 민감한 애플리케이션을 실행할 수 있는 AWS 리전의 확장.
AWS Wavelength
: AWS를 모바일망에서 접근할 수 있도록 해주는 서비스
AWS Outposts
: 데이터 센터, 콜로케이션 공간 또는 온프레미스 시설로 이전할 수 있게 해주는 서비스
AWS Identity and Access Management
접근통제의 종류
① Presentation Layer Access Control - 권한이 있는 사용자에게 적절한 기능 제공
② Business Layer Access Control - 권한에 맞는 기능 제공
③ Data Layer Access Control - 권한에 맞는 데이터 접근 허용접근통제의 3단계 : 식별 → 인증 → 인가
식별(Identification)
: 내가 나라라는 것을 주장할 수 있는 것. ⇒ 식별할 수 있다? 나와 다른 사람을 구분 가능 (ex. 이메일주소)
인증(Authentication)
: 그 주장이 맞는지 확인하는 것(ex. 비밀번호)
- TYPE1 - 지식기반 - 이메일, 비밀번호...
- TYPE2 - 소유기반 - 인증서, 주민등록증, 스마트폰, OTP...
- TYPE3 - 특징기반 - 서명, (홍채, 정맥, 성문, 지문 ⇒ 생체인증)...
⇒ 2가지 타입을 혼용하면 2-factor 인증이라고 함.
⇒ 2가지 이상 타입을 혼용 == Multi-factor 인증
⇒ type2나 type3를 사용한 방식이 더 안전하다. 왜? 봐야하는 채널이 많아지기 때문에 공격이 어려움.
인가(Authorization)
: 그 사람이 맞으면 권한을 부여하는 것
arn
: 모든 ARN의 시작 부분aws
: AWS를 나타내는 고정 값service
: 리소스를 제공하는 AWS서비스(ex. S3, Lambda, RDS ...)region
: 리소스가 위치한 AWS지역account-id
: AWS의 계정 IDresource
: 서비스 별로 리소스를 고유하게 식별하는 정보사람
이 AWS 서비스를 사용하기 위해서 로그인할 때 사용Acess Key
= Access Key ID
+ Secret Access Key
⇒ 프로그램
방식으로 호출할 때 사용자격 증명 기반 정책
IAM 사용자, 그룹 또는 역할에 연결되는 정책으로 자격 증명이 수행할 수 있는 작업(권한)을 지정
리소스 기반 정책
S3 버킷과 같은 리소스에 연결하는 정책으로 지정된 보안 주체에 해당 리소스에 대한 특정 작업을 수행할 수 있는 권한을 부여하고 이러한 권한이 적용되는 조건을 정의
서비스 제어 정책
조직의 권한을 관리하는데 사용할 수 있는 조직 정책의 유형
ACL(접근 제어 목록)
리소스에 엑세스 할 수 있는 다른 계정의 보안 주체를 제어할 수 있는 서비스 정책
세션 정책
역할 또는 헤더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 정책
JSON 정책 요소
{
"Resource": "*",
"Action": "*",
"Effect": "Allow"
}
{
"Resource": "*",
"Action": [
"dynamodb:GetItem", // DynamoDB에 대한 구체적인 동작(액션)
"dynamodb:PutItem"
],
"Effect": "Allow"
}
{
// 사용할 테이블을 지정(한정)
"Resource": "arn:aws:dynamodb:us-east-2:123456789012:table/myDynamoDBTable",
"Action": [
"dynamodb:GetItem",
"dynamodb:PutItem"
],
"Effect": "Allow"
}
{
"Resource": "arn:aws:dynamodb:us-east-2:123456789012:table/myDynamoDBTable",
"Action": [
"dynamodb:GetItem",
"dynamodb:PutItem"
],
"Effect": "Allow"
"Condition":[
"IpAddress":{
// 소스IP를 제한
"aws:SourceIp":"1.2.3.4"
}
]
}
관리형 정책을 사용해 자격 증명 기반 정책이 IAM 엔터티에 부여할 수 있는 최대 권한을 설정
하기 위한 고급 기능
앞에서 생성한 사용자에게 IAMFullAccess 권한 부여
IAMFullAccess 권한 부여 + 권한경계 AmazonEC2FullAccess 부여 ⇒ 최대 EC2 Access 권한까지만
⇒ 권한 경계 밖의 권한을 필요로 하면 엑세스 거부됨
⇒ 해당 사용자는 권한 경계로 EC2FullAccess 권한을 설정했으므로 IAMFullAccess 권한을 가져도 IAM작업 수행 불가하며, EC2관련 권한이 설정되어 있지 않으므로 EC2 관련 작업도 불가능 하다!