Cloud Computing - AWS (2) 보안

Alex of the year 2020 & 2021·2020년 9월 18일
0

AWS, Cloud

목록 보기
2/5
post-thumbnail

보안

[AWS 5대 원칙]
보안, 성능 효율성, 안정성, 운영 우수성, 비용 최적화

AWS는 아주 편리한만큼, 위험할 수도 있는 플랫폼이다. 따라서 보안 관리는 정말 중요하다.

  • 클라우드에서 인프라를 보호하는 방법에 중점
  • 보안과 규정 준수는 AWS와 고객의 공동 책임 (shared responsibility)
  1. AWS: 클라우드의 보안에 대한 책임 (AWS 클라우드 서비스의 물리적 인프라, 소프트웨어 및 네트워킹 기능이 포함)
  2. 고객: 클라우드에서의 보안에 대한 책임 (특정 클라우드 서비스의 구성, 애플리케이션 소프트웨어 및 민감한 데이터 관리가 포함)
  3. [참고] 워크로드가 FedRAMP, DoD SRG, ITAR, CJIS 또는 기타 엄격한 규정 준수 요구 사항을 충족해야하거나,
    CUI (Controlled Unclassified Information)로 분류 된 데이터가 포함 된 경우,
    AWS GovCloud (미국)섹션을 참조

NASA JPL의 CTO인 Tom Soderstromd은
"우리의 경험을 바탕으로 보면 AWS 클라우드가 우리의 데이터 센터보다 더 안전할수도 있다고 생각합니다"
라는 입장을 밝혔다고 한다.
어떻게 AWS는 이토록 보안의 최강자가 되었는지 살펴보자.


멘탈 모델

클라우드에서의 보안을 고려할 때는 제로 트러스트 모델을 도입

제로 트러스트 모델

'세상에 믿을 놈 하나 없다'

기관 내/외부를 막론하고 적절한 인증 절차 없이는 그 누구도 신뢰해서는 안 되며,
시스템에 접속하고자 하는 모든 것에 접속 권한을 부여하기 전 신원 확인 과정을 거쳐야 한다는 것.

"제로 트러스트 모델의 기본 전략은 누구도 근거없이 믿지 말라는 것이다. '신원이 파악되기 전까지는 네트워크에 대한 모든 접속을 차단할 것, 사용자가 누구인지 그리고 권한이 있는 인물인지가 확인되기 전까지는 IP 주소나 기기에 대한 그 어떤 접속도 허용하지 않을 것'이 기본 원칙이다"고 설명했다.

기존의 보안에 대한 접근이 계속해서 이슈를 내고 큰 실효를 얻지 못하자 기업들은 새로운 방법을 물색하기 시작했고 이에 최선의 결과를 내 줄 최고의 데이터 유출 방지 모형으로 각광 받게 된 것이 제로 트러스트 모델.

제로 트러스트 모델은 기관을 중심으로 철옹성을 쌓아 놓고 바깥의 침입자만 경계하면서 철옹성 내부에 있는 것들에 대해서는 조금의 의심도 하지 않는 기존 정보 보안 모델의 허점을 찌른다. 실제로 그 동안 많은 기업이 내부 인력에 대해서는 그 어떤 의심도 없이 접속 권한을 허용하곤 했다.

제로 트러스트 모델의 확립을 위하여

제로 트러스트 모델은 다중 인증이나 IAM(Identity and Access Management), 오케스트레이션, 애널리틱스, 암호화, 스코어링 및 파일 시스템 인가 등의 기술에 의존한다. 또한 맡은 업무별로 필요한 최소한의 접속 권한만을 각 직원에게 허용하도록 운영 지침을 변경할 것을 조언한다.

"망 분리와 차세대 방화벽을 통해 누가, 언제, 무엇을, 어디서 어떻게 접속하려 하는가를 빠짐없이 파악하고 통제할 수 있게 된다. 즉 '내부에서 외부로' 네트워크 설계의 방향을 설정하는 것이다. 오늘날 IT 대부분이 그러하듯, 제로 트러스트 역시 '단순한 기술이 아니라 프로세스이며 동시에 우리가 가져야 할 마인드셋이다."

제로 트러스트 모델은 (여느 성공적인 IT 및 보안 프로토콜이 그러하듯) 지속적인 노력을 요구하며, 일부 부분에 있어서는 다른 프로토콜보다 더 많은 노력이 필요할 수도 있다. 미세 망분리와 관련된 작업을 예로 들어보자. 미세 망분리 시 변경 사항을 올바르게 설정하고 변화하는 IP 데이터를 업데이트해 직원 및 기업 업무 처리에 필요한 접속이 방해받지 않도록 해야 한다. 그렇지 못할 경우 기관 업무 자체가 중단되는 사태가 일어날 수 있다.

"많은 기업이 '만약 악성코드에 감염되어 업무에 지장을 초래하는 상황에서 설정상의 실수까지 발생할 경우 업무가 수일간 마비되고, 그러면 악재가 두 개가 된다'고 생각한다. 또한 미세 망분리에 요구되는 지속적 작업으로 인해 네트워크 상에 많은 흠집과 결점이 생겨나고 이로 인해 네트워크가 더 취약해 질 수 있다"

이처럼 기존 레거시 시스템 및 환경에 제로 트러스트 모델을 적용하는 것이 복잡하고 쉽지 않은 까닭에, 이 모델을 완전하게 도입에 성공한 기업들은 많지 않다.

따라서 전체적인 디지털 변혁 전략의 일환으로 제로 트러스트 모델을 수용하고, 제로 트러스트 모델을 실현시킬 적절한 기술을 도입함과 동시에 레거시 시스템에서 클라우드로의 이전을 진행해 나가야 한다.


제로 트러스트의 관점에서의 보안 개념

제로 트러스트의 관점에서 보안은 당연히 모든 시스템 수준에 보안 조치를 적용하는 것을 의미
클라우드에서 제로 트러스트를 적용하여 시스템 보안을 수행하는 것과 관련된 세 가지 주요 개념은 아래와 같다.

  1. Identity and Access Management(IAM)
  2. 네트워크 보안
  3. 데이터 암호화

이 중 IAM은 살짝 보고,
네트워크 보안에 대해서 특별히 유의깊게 살펴 보겠다. 🌝



IAM

AWS에서 사용자들과 이 사용자들의 권한을 관리하는 서비스: IAM (보안 자격 증명 및 규정 준수)

AWS Identity and Access Management(IAM)를 사용하면

  • AWS 서비스와 리소스에 대한 액세스를 안전하게 관리할 수 있고,
  • AWS 사용자 및 그룹을 만들고 관리하며
  • AWS 리소스에 대한 액세스를 허용 및 거부할 수 있다.

루트 계정에서 일반적으로 바로 보안상태를 보면

이런 화면을 볼 수 있다. 이 때에, 루트 계정에서 MFA 활성화 정도까지는 완료를 해줘야 안전하다고 말할 수 있다.

MFA를 활성화하게될 경우
로그인 시, 아이디와 PW만으로 로그인이 되는 것이 아니라 MFA 코드까지 요구하게 되는데,
이 MFA코드란 One-Time password로(줄여서 OTP라고 주로 부른다) 그때 그때 발급받아야 한다.
OTP를 제대로 입력하지 않으면 로그인이 되지 않기 때문에, 만에 하나 ID나 PW가 유출되어도 보안상의 위험을 조금이나마 줄일 수 있다.
(MFA의 의미는 멀티 팩터 인증으로, 기존의 ID+PW 인증에 또다른 factor를 끼어서 인증을 요구하므로 멀티 팩터라고 부르는 것이다.)

자세한 사용방법은 아래에!
https://www.inflearn.com/course/aws-2/lecture/16264?tab=note



네트워크 보안

네트워크 보안에는
네트워크 및 네트워크에 액세스할 수 있는 리소스의 액세스 및 사용성을 보호하는 시스템, 구성 또는 프로세스가 포함
AWS는 1) 네트워크 수준2) 리소스 수준 모두에서 네트워크를 보호하기 위한 매우 다양한 기능을 제공.
네트워크 보안에 대한 제로 트러스트 접근법에는 네트워크의 모든 레이어(가장 외부 레이어만이 아닌)에 보안 제어를 적용하는 심층적 방어 접근법이 포함된다.

1) 네트워크 수준 보안

Virtual Private Cloud(VPC)
AWS에서의 기본 네트워크 수준

VPC

  • 리소스를 정의 및 프로비저닝할 수 있는 논리적 네트워크
  • 쉽게 말하면: AWS라는 거~대한 클라우드 플랫폼 안에 완전히 격리된 가상의 사설망, 즉 특정 사용자 전용 데이터 센터.
  • IP 주소 범위 선택, 서브넷 생성, 라우팅 테이블 및 네트워크 게이트웨이 및 방화벽 구성 등 가상 네트워킹 환경을 완벽하게 제어할 수 있다
  • VPC에서 IPv4와 IPv6를 모두 사용하여 리소스와 애플리케이션에 안전하고 쉽게 액세스할 수 있다
  • 손쉬운 네트워크 사용자 구성
    "예를 들어, 인터넷에 액세스할 수 있는 웹 서버를 위해 퍼블릭 서브넷을 생성할 수 있습니다. 또한 인터넷 액세스가 없는 프라이빗 서브넷에 데이터베이스나 애플리케이션 서버 같은 백엔드 시스템을 배치할 수 있습니다. 보안 그룹 및 네트워크 액세스 제어 목록을 포함한 다중 보안 계층을 사용하여 각 서브넷에서 Amazon EC2 인스턴스에 대한 액세스를 제어하도록 지원할 수 있습니다."

VPC를 구성하는 일부 구성 요소
서브넷: VPC 내부의 IP 주소 범위
라우팅 테이블: 트래픽이 이동하는 위치를 결정하는 규칙 집합
인터넷 게이트웨이: VPC 내부의 리소스와 인터넷 사이에서 통신을 할 수 있게 해주는 구성 요소

  • VPC에서 트래픽을 보호하려면, 리소스를 공용 리소스내부 리소스로 나눌 수 있음
  • 공격 표면을 줄이려면, 모든 인터넷 트래픽을 처리하는 Application Load Balancer(ALB) 등과 같은 프록시 서비스를 사용할 수 있다. 그러면 서버와 데이터베이스 같은 모든 내부 서비스를 직접 공용 인터넷 액세스를 차단하는 내부 서브넷으로 프로비저닝할 수 있다.

AWS Web Application Firewall(WAF)
네트워크에 대한 트래픽을 추가적으로 제한하기 위해 사용하는 웹 방화벽


2) 리소스 수준 보안

개별 AWS 리소스에도 사용자가 구성이 가능한 네트워크 보안 제어를 적용할 수 있다.

보안 그룹
가장 일반적인 제어
리소스로 유입 및 유출되는 트래픽 흐름을 적용하기 위해 사용할 수 있는 가상 방화벽
보안 그룹을 사용하면 특정 포트 또는 인스턴스에서 신뢰할 수 있는 소스로부터의 트래픽만 허용
EC2 인스턴스, RDS 인스턴스 및 Lambda 등의 리소스에 연결 가능



3) 요점 및 요약 정리

  • 네트워크 보안에는 네트워크 및 네트워크에 액세스할 수 있는 리소스의 액세스 및 사용성을 보호하도록 설계된 메커니즘이 포함
  • 네트워크 보안에 대한 제로 트러스트 접근법에는 네트워크의 모든 레이어에 심층적인 방어를 구축하는 것이 포함
  • VPC 및 WAF를 사용하면 네트워크 수준에 보안 조치를 적용할 수 있다
  • 보안 그룹을 사용하면 리소스 수준에 보안 조치를 적용할 수 있다


전통적인 방식을 넘어선 클라우드 보안 강화

AWS 보안 기능 Layer (심층 보안)

  1. 물리적 보안 (AWS 컴플라이언스 프로그램, 물리적 출입통제) :참고로 AWS는 데이터 센터의 위치를 결코 노출하지 않는다고 한다
  2. 네트워크 보안 (보안 그룹, VPC NACL 설정, VPC Flow Logs, Bastion Hosts/NAT, HTTPS/SSL/TLS)
  3. 시스템 보안 (Service Catalog, Config, IAM(MFA/Role), Cloud Watch Logs)
  4. 데이터 보안 (KMS, CloudHSM, CloudTrail)

가장 외부 --> 내부 순으로
1 --> 2 --> 3 --> 4 네 겹의 층을 모두 뚫어야 데이터에 접근이 가능한 구조



1. 보안그룹 (Security Group): 인스턴스 단위 적용, IP/Port에 대한 접속 허용 및 차단, Stateful, allow 규칙만
2. Network ACL(NACL): 서브넷 단위 적용, Stateless, allow/deny 규칙 모두

  • ELB (Elastic Load Balancing)
    : 들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스, 컨테이너, IP 주소, Lambda 함수와 같은 여러 대상에 자동으로 분산시킴
    : Elastic Load Balancing은 단일 가용 영역 또는 여러 가용 영역에서 다양한 애플리케이션 부하를 처리함
    : Elastic Load Balancing이 제공하는 세 가지 로드 밸런서는 모두 애플리케이션의 내결함성에 필요한 고가용성, 자동 확장/축소, 강력한 보안을 갖추고 있음
  • 먼저 퍼블릭 서브넷: routing을 여기서 해주는 로드밸런서 같은 것들이 위치
  • 그 뒷단의 프라이빗 서버들(WEB WAF, DB servers)은 외부와의 통신이 불가능한 프라이빗 서브넷 형태로 위치

보안그룹 구성 예시

  • 참고: 위 그림의 ALB(Application Load Balancer)는 로드발란서가 있는 퍼블릭 서브넷에 해당


AWS 보안의 기본 속성

1) 가시성

  • 모든 인프라는 다 Software!
    : API 콜 한방에 수분안에 서버 천대가 생기고, 방화벽 룰을 새로 만들고 싶다면 바로 방화벽이 적용이 되는 식의 아키텍쳐를 구축
    (실제 EC2 인스턴스 아래 Description에 모두 적혀있음)
  • CloudWatch
  • Trusted Advisor Security(사용자의 AWS 환경에 대한 전반적인 진단 및 추천 서비스)
    ex. 만약, 특정한 서비스에 대해 anywhere로부터의 request를 allow해주는 방화벽 룰이 적용되어있다면, AWS가 이에 대해 alert를 보냄. 어떤 자원에 접근을 할 때에, 해당 자원과 실제 관계가 있고 그 자원과 관계가 있는 적절한 포트에 대해서만 접근 권한을 열어야하는데 anywhere로부터 들어오는 같은 포트 번호에 대한 모든 트래픽을 허용하고 있다면 그건 불안한 상황이다 라고 AWS가 말해주는 것.
  • AWS Inspector

2) 더 나은 제어 (데이터, 사용자, 네트워크)

  • 데이터 측면
    컴퓨팅과 스토리지의 위치를 고객이 직접 선택 가능
    고객이 리전을 선택하는 경우, 데이터가 그 리전을 벗어나는 일은 결코 없다. (Data의 Locality 보장)
    암호화 (AWS KMS): 암호화 이후 복호화가 불가능하다면 그 데이터는 쓰레기. 아주 안정적으로 Key를 보관하는 서비스

  • 사용자 측면
    IAM

  • 🍎 네트워크
    VPC: Virtual Private Cloud


3) 감사 기능


Etc.

강의 들으면서 중요해서 적었는데,
정말 어디에 넣어야할지..
우선 머리에 넣자.

  • 아래 사진은 DDos 보호 서비스 AWS Shield
  • 아래 사진은 서브넷에 대한 라우팅 제어 모델

  • 아래 사진은 데이터에 대한 제어 모델

그 이외에도 keyword

IP Spoofing 레이터2 공격
스니핑
AWS KMS (Key Management System암호화키 생성/보관/관리)
ACM (AWS Certificate Manager)

오 ...... AWS 진짜 신세계 + 어렵다 + 복잡하다.
갈 길 멀 다 ~ 🤯



reference:
http://www.ciokorea.com/news/37013 (제로 트러스트)
https://aws.amazon.com/ko/getting-started/fundamentals-core-concepts/?e=gs2020&p=fundoverview
https://www.inflearn.com/course/aws-2/lecture/16264?tab=curriculum

https://www.youtube.com/watch?v=iPKaylieTV8 (AWS SUMMIT SEOUL 2019)
https://www.youtube.com/watch?v=D9BiEQn7Avw (AWS CLOUD 2018)
https://www.youtube.com/watch?v=hYN_TvfRgtQ (AWS CLOUD 2017)
https://www.youtube.com/watch?v=xUZxiFiO0MQ (AWS CLOUD 2016)

profile
Backend 개발 학습 아카이빙 블로그입니다. (현재는 작성하지 않습니다.)

0개의 댓글