SK shieldus Rookies 16기 (클라우드 보안 기술 #01)

만두다섯개·2023년 11월 30일
0

SK 루키즈 16기

목록 보기
23/52

주요 정보

  • 교육 과정명 : 클라우드기반 스마트융합보안 과정 16기
  • 교육 회차 정보 : '23. 11. 30. 클라우드 보안 기술 #1

무엇을 깨달았나

  • AWS 기초 및 IAM(권한, 역할, 등..), 버킷, EC2 기초 사용방법

다시 생각해보기

운영체제를 클라우드 컴퓨팅 기술로 지원받는다면 컨테이너 기술을 구현할 수 있을까요? 만약 가능하다면 클라우드 컴퓨팅 기술 안에 컨테이너 기술이 있게 되는 건가요, 아니면 가상화 기술 종류가 되는건가요?
-> 가능하다. 클라우드 컴퓨팅 기술로 컨테이너 기능을 구현한 것이다. 둘 다 가상화 기술으로부터 파생되었다.

강의 정보

가상화 기술이란?

  • 가상화 : 소프트웨어로 표현한다. -> 파일로 관리한다
  • 파일형태(S/W)로 표현가능하다.
  • 복사, 이동의 장점을 가진다.
  • 가상화 장비가 나온 이유? 하드웨어 장비 높은 코스트 존재.
  • 가상화 개념이 네트워크로 이동해 클라우드 기술이 발발한다.

클라우딩 컴퓨팅의 이정

  1. 민첩성 : 클라우드를 이용한 광범위 기술의 쉬운 접근 가능. 기술 서비스의 빠른 배포 가능.
  2. 유연성 : 서비스 이용자들의 유동성(데이터트래픽, 단순접속 등)으로 인해 예측이 어려운 비즈니스 영역에서 클라우드로 인해 쉽고 빠르게 제공 가능.
  3. 비용 절감 : 고정 비용(데이터센터, 물리적 서버 등)가변 비용 전환 가능
  4. 전 세계 배포 가능 : 전 세계의 존재하는 리전을 사용해 전 세계에 짧은 시간(수분 내) 배포 가능.

클라우드 서비스란? 사용자가 IT 리소스를 필요한 만큼 지불하는 서비스(온프레미스 반대)

  • 클라우드 컴퓨팅 종류
  1. SaaS(Software as a service): S/W처럼 완전한 제품을 제공 가능
  2. Paas(platform as a service) : 기본 인프라를 관리할 필요 없이 앱 개발과 관리에 집중 가능할 수 있다.
  • 쿠버네티티스 – 클러스터 환경(분산된 멀티 로드 환경에서 배포) 오케스트레이션 기능 가능케 한다.
    컨테이너 애플리케이션 배포의 용이성 제공을 PassS에서 제공 가능하다.
    블록체인 애플리케이션 배포 및 실행 시, 블록체인 네트워크가 구성되어 있어야 한다. 이를 제공받을 수 있다.
  1. IaaS(Infrastructure as a service): 네트워킹 기능, 컴퓨터 및 데이터 스토리지 공간 접근 기능 제공
  2. public cloud, private cloud(openshift), hybride cloude 등

AWS 요금

  • 사용량에 따른 요금 책정
  • 커밋(서비스 약정)을 통한 책정
  • 대량 구매로 인한 할인 비용 책정

AWS 제공 서비스

Amazon

  • EC2(Elastic compute cloud)
  • RDS(simple storage service)
  • S3 (simple storage service)
  • RDS(relation database service)

AWS

  • 특별한 작업, 데이터처리, 서버리스 컴퓨팅, 데이터 분석 등 더 특화된 작업을 위한 솔루션=> Lambda, Glue, Setp Functions

공동책임 모델

  • AWS는 서비스 제공자로써, CUSTOMER와 AWS의 책임 범위를 할당해주고 있다.
  • CUSTOMER : 패치, AWS 제공 보안 설정 등
  • AWS : 고객 데이터 설정.
  • 클라우드 환경에 대한 책임은 AWS, 해당 환경 사용에 대한 책임은 사용자.

리전이란?

  • AWS에서 제공 서비스 목적으로 전 세계에 존재하는 데이터센터를 클러스터링.
  • 데이터센터를 클러스터링하는 물리적인 위치
  • 지리적 영역 내에서 격리되고 물리적으로 분리된 최소 3개의 AZ로 구성된다.
  • AZ는 독립 전원, 냉각 및 물리적 보안을 갖추고 있다.

AZ란?

  • Ablility zone의 약자로, 가용 영역이라고 한다.
  • AWS 리전의 중복 전력, 중복 네트워크 및 연결이 제공되는 하나 이상의 개별 데이터 센터로 구성된다.
  • 한 가용 영역이 3개의 가용 영역으로 구성된다.
  • AZ는 서로 100km이내 거리에 위치, 높은 대역폭으로 연결되어 있다.

로컬 영역이란?

  • AWS 서비스 사용 시, 지연 시간에 민감한 앱 실행 지원 가능하다.

AWS Wavelength

  • 모바일 디바이스에서 실행되는 앱 들이 서버와 통신 시, 인터넷 망이 아닌 모바일 전용 망 네트워크를 통해 AWS를 제공받는 기능.
  • 모바일 특화 서비스.
  • AWS 서비스가 모바일 망 -> 인터넷 망 -> AWS 서비스 제공이 아닌, 모바일 망에서 AWS 서비스를 바로 제공할 수 있다.

AWS Outposts 등..

프리티어란?

  • AWS에서 제공하는 무료 요금 정책기능

AWS IAM

  • Identity and Access Management
  • 리전이 아닌 글로벌 서비스
  • user, user group, role, policy로 구성된다.
  • AWS 서비스 및 리소스에 대한 액세스를 안전한게 제어할 수 있는 웹 서비스
  • root 계정을 가지고 리소스 생성 금지 지향.
  • 개별 사용자 계정에

계층 관점에서의 인증

  • Presentation Layer Access Control : 적절한 링크, 로그인 화면 제공으로 권한 있는 사용자에게 적절한 기능을 제공한다.
  • Business Layer Access Control : 권한에 맞는 기능을 제공
  • Data Layer Access Control : 권한에 맞는 데이터 접근을 허용

인증의 3요소

  • 식별 (identification, 나와 다른사람을 구분하는 정보/ email)
  • 인증 (authentication,
    1. TYPE1 – 지식기반 -> 비밀번호, 패스워드, ...
    2. TYPE2 – 소유기반 -> 인증서, 주민등록증, (내명의로 등록한)스마트폰, OTP, ...
    3. TYPE3 – 특징기반 -> 필기체 서명, 홍채, ...
    -> TYPE 두가지 혼용하는 것 : 2-Factor 인증
    -> TYPE 세 가지 이상 혼용 : 3-Facotr 인증
    ● 패스워드 사용(브라우저라는 한 공간에서 사용), 인증공간(홍채인식 사용 시,), 브라우저공간 발생. 이는 2개의 채널이 생성된 것이므로 공격자는 여러 타겟을 공격해야 한다. 따라서 멀티요소 인증이 더 안전한 것이다.
  • 인가 (authorization)

AWS 사용자 종류

사용자(user)

  • AWS 기능과 자원을 이용하는 객체(사람, 응용 프로그램)
사용자 식별 방식
  1. 사용자 생성 시 지정 이름
  2. 사용자 고유 식별자
  3. ARN(Amazone Resource Name) => arn:aws:service:region:account-id : resource 형식
  • arn : arn 식별자
  • aws : AWS 나타내는 고정 값
  • service : 리소스 제공 AWS 서비스
  • region : 리소스 위치 AWS 지역
  • account-id : AWS 계정 ID
  • resource : 서비스별 리소스 고유 식별 정보
사용자 자격증명 방법
  • AWS Management Console 암호 => 사람이 AWS 서비스를 사용하기 위해서 로그인 할 때 사용한다.
  • Access Key = Access Key ID + Secret Access Key => 프로그램 방식으로 호출 시 사용
  • SSH KEY => AWS 생성한 EC2 인스턴스로 SSH접속 시 사용한다

  • 사용자 계정 ID, IAM 사용자(사용자이름)을 확인 가능하다.

왜 초기 사용자 추가 시, 초기 패스워드를 로그인 이후 변경해야 한는가?

  • 초기 비밀번호 강제 변경 설정으로 안전성 상승

권한 부여

  • 보통은 IAM 으로 권한부여 바로 하지 않는다.

사용자 그룹(group)

  • 일괄 권한 변경, 지정 시 사용한다.

권한(Permission)

  • AWS 서비스나 자원에 어ᄄᅠᆫ 작업을 할 수 있는지 여부를 명시한 규칙

정책(Policy)

  • 자격증명이나 리소스와 연결 시 해당 권한을 정의하는 AWS객체
  • 권한의 모음으로 사용자, 사용자그룹, 역할에 적용이 가능하다.
  • 사용자, 사용자 그룹, 역할에 권한을 직접 적용할 수 없고, 정책을 생성 후 적용해야 한다.

자격 증명 기반 정책

  • IAM 사용자, 그룹 또는 역할에 연결되는 정책으로 자격 증명이 수행 가능한 작업(권한) 지정
  • 관리형 정책, 인라인 정책 존재한다.
  1. 관리형 정책 : AWS 계정에 속하는 다수의 사용자, 그룹, 역할에 독립적으로 연결할 수 있는 자격 증명 기반 정책.
  2. 인라인 정책 : 단일 사용자, 역할에 직접 추가하는 정책.

리소스 기반 정책

  • S3 버킷과 같은 리소스에 연결하는 정책. 지정된 보안 주체에 해당 리소스 대한 특정 작업을 수행 할 수 있는 권한을 부여하고, 부여된 적용되는 조건을 정의한다
  • 리소스 기반 정책은 인라인 정책이며, 관리형 리소스 기반 정책은 없다.
  • 리소스 접근 전 미리 사용될 리소스를 확인 불가능하기 때문이다.

권한 경계

  • 관리형 정책을 사용해 자격 증명 기반 정책이 IAM 엔터티에 부여할 수 있는 최대 권한을 설정하기 위한 고급 기능.
  • 엔터티의 권한 경계 설정을 통해 자격 증명 기반 정책 및 관련 권한경계 모두에서 허용되는 작업만 수행가능.
  • 리소스 기반 정책은 권한 경계에 제한을 받지 않는다.
  • 사용자가 가질 수 있는 최대 권한이다. (최대 권한을 A, 권한 정책에 B가 적용되어 있다면, 해당 사용자는 A 권한만 사용 가능하다)

IAM Full Access 접근 권한 부여

  • 사용자 user015 에게 권한 추가 – 직접 정책 연결 – IAMFullAccess 추가
  • 경계 권한에서는 AmazonEC2FullAccess 추가.
  • user015 계정은 IAM 접근 불가 -> 경계 권한 경계 밖의 권한(IAM)을 사용하려고 하기 때문 -> 오류 발생
  • user015는 EC2 접근 불가 -> 해당 사용자에게 EC2 관련 권한이 설정되지 않았기 때문에.
  • 인라인 정책 생성에서 추가한다.

서비스 제어 정책(SCP)

  • 조직의 권한을 관리하는데 사용할 수 있는 조직 정책 유형
  • 조직의 모든 계정에 사용 가능한 최대 권한에 대한 중앙 제어를 제공

ACL 접근 제어 목록

  • 리소스 접근 가능한 다른 계정의 보안 주체를 제어할 수 있는 서비스 정책
  • JSON 정책 문서 형식을 사용하지 안흔 유일한 정책 유형
  • S3, WAF, VPC는 ACL을 지원하는 대표적인 서비스

세션 정책

  • 역할 또는 페더레이션 사용자에 대해 임시 세션을 프로그래밍 방식으로 생성할 때 파라미터로 전달하는 정책
  • AssumeRole, AssumeRoleWithSAML, AssumeRoleWithIdentity API 작업을 사용해 프로그래밍 하는 방식으로 역할 세션을 생성하고 세션 정책을 전달

JSON 정책 문서

  • JavaScript Object Notation
  • 자바스크립트에서 객체를 표현할 때 사용하는 방법
  • 쉬운 확장 가능성과 쉬운 이해도로 인해 data 이동 시 표현언어로 사용한다.

JSON 정책 문서 구조

  • 문서 상단에 위치하는 정책 전반의 선택적 정보
  • 하나 이상의 Statement로 구성된다.
  • 각 Statement에는 단일 권한에 대한 정보가 포함되어 있다.
  • AWS 에서는 OR 구문으로 연속으로 이해해 사용한다.
  1. Version : 사용하고자 하는 정책 언어의 버전 지정
  2. Statement : 주요 정책 요소
  • 단일문 또는 개별문의 배열을 포함
  • Statement : [ { ... }, { ... }, { ... } ]
  1. Sid : 선택 사항. 선택 설명문 ID를 포함하여 설명문을 구분한다.
  2. Effect : Allow, Deny를 사용해 정책 접근 허용/거부 설명한다
  • 문의 허용 또는 명시적 거부를 지정
  • Allow 또는 Deny 값을 가진다. (대소문자 구분)
  • 기본적으로 리소스 접근은 거부된다.
  1. Principal : 일부 상황에서만 사용한다. 리소스 기반 정책 생성 시, 접근 허용, 거부할 게정, 사용자 역할 또는 페더레이션 사용자를 표시한다.
  2. Action (필수) : 특정 작업의 허용 또는 거부 여부를 지정한다.
  3. Resource (필수) : Statement에서 사용하는 ARN 이용해 지정한다.
  4. Condition(선택 사항) : 정책에서 권한을 부여하는 상황을 지정한다.

=> 안전한 권한 부여 방법으로, 최소 권한 부여 방식을 사용해야 한다.

최소 권한 부여 실습

  • 사용자가 수행해야하는 작업을 파악 후 사용자들이 해당 작업만 수행하도록 사용자들에 대한 정책을 작성한다.
  • 환경 : EC2가 DynamoDB 테이블에 권한 부여, 권한 특정 테이블 읽기, 쓰기 기능
  • 역할 : AWS제공 서비스, 리소스에게 권한을 부여하기 위한 역할
  • user 생성, user에 권한 부여
  • AWS 서비스(EC2) 생성, EC2에 역할을 부여한다.
    방법 1. 모든 리소스에 모든 동작 허용 – 안전하지 않다.
{
	“Resource”: “*”,
	“Action”: “*”,
	“Effect”: “Allow”
}

방법 2. DynamoDB에 액션 구체화 – DynamoDB의 모든 테이블 접근 가능 – 안전하지 않다.

{
	“Resource”: “*”,
	“Action”: [
		“dynamodb:GetItem”,
		“dynamodb:PuttItem”
	],
	“Effect”: “Allow”
}

방법 3. DynamoDB에 특정 테이블만 접근 가능 – 안전하다

{
	“Resource”: “arn:aws:dynamodb:us-east-2:123456789012:table/myDynamoDBTable”,
	“Action”: [
		“dynamodb:GetItem”,
		“dynamodb:PuttItem”
	],
	“Effect”: “Allow”
}

방법 3. DynamoDB에 특정IP를 가진 특정 테이블만 접근 가능 – 안전하다

{
	“Resource”: “arn:aws:dynamodb:us-east-2:123456789012:table/myDynamoDBTable”,
	“Action”: [
		“dynamodb:GetItem”,
		“dynamodb:PuttItem”
	],
	“Effect”: “Allow”
	“Condition”: [
		“IpAddress”: {
			“aws:SourceIp”: “1.2.3.4“
			}
		]
}

역할 Role

  • 어떤 행위를 하는 객체에게 여러 정책을 적용한다는 점에서는 사용자와 비슷하다.
  • 객체가 사용자가 아닌 서비스나 다른 AWS 계정의 사용자라는 차이가 있음.
  • 사용자가 아닌 특정 서비스에서 생성한 객체에 권한을 부여하는데 사용한다.

사용자 삭제

  • 사용자 삭제 시 특정 문자열 입력을 요구한다.
  • 이는 CSRF 방지 목적이다.
  • 사용자 삭제 요청에 대한 확인을 한번 더 한 후 진행한다.

사용자 권한 설정(그룹) 실습

  1. user-1-015, user-2-015, user-3-015, 생성

  1. [ S3-Support, EC2-Support, EC2-Admin ] group 생성 및 사용자 추가
  • 그룹을 생성하고, 사용자를 추가한다. (EX: EC2-Support-015 )
  • S3-Support : AmazonEC2ReadOnlyAccess 권한 추가
  • EC2-Support : AmazonEC2ReadOnlyAccess 권한 추가
  • EC2-Admin : EC2 조회, 실행, 중지 권한을 부여(인라인 정책 사용)

  • JSON 편집기를 사용해도 가능. Action 확인한다 .

EC2 인스턴스 생성

  • EC2 인스턴스 생성 : 키 페어 생성, 어플리케이션 OS 이미지, 인스턴스 유형 설정‘
  • 기본 VPC 생성 및 사용

버킷 생성 및 파일 업로드

  • 버킷 이름은 글로벌하게 Unique 해야한다.
  • 버킷을 생성하고 파일을 업로드
  • user-1-015 로 다른 브라우저에서 접속 후 버킷 확인
  • 버킷 목록 및 내용물 상세 정보 확인 가능.
  • 파일 다운로드 가능( AmazonS3ReadOnlyAccess 권한에는 파일 다운로드도 가능)
  • 그러나 업로드는 불가능하다. ( AmazonS3ReadOnlyAccess 파일 업로드 불가능)
profile
磨斧爲針

0개의 댓글