AWS Solutions Architect — Associate certificate Study — 공식 문서 정리 Part 2

SangHyo Han
15 min readAug 13, 2019

--

비공식 AWS Solutions Architect — Associate(2018년 2월 출시) 수험 가이드 (bit.ly/saaguide)를 기반으로 공부하고 있습니다.

이번 Part 는 영역 2: 성능이 뛰어난 아키텍처 정의 와 영역 3 : 안전한 애플리케이션 및 아키텍쳐 일부를 정리할 예정입니다.

2019/08/21 업데이트

[영역 2 : 성능이 뛰어난 아키텍처 정의]

캐시 사용하기

AWS ElastCache FAQ

  • 클라우드 상에 메모리 기반으로 구성된 데이터 스토어 또는 캐시를 쉽게 운영할 수 있는 서비스 — In-Memory 방식 사용
  • Memcached 및 Redis와 호환되는 프로토콜이므로 기존 Memcached 또는 Redis 환경에서 현재 사용하는 코드, 애플리케이션 및 주요 도구를 Amazon ElastiCache에서 문제없이 사용할 수 있다.
  • In-Memory : 방대한 양의 데이터를 하드디스크가 아닌 메모리에 보관, 실시간으로 분석하여 DB를 거치지 않고 즉시 얻을 수 있도록 함. 하드디스크에 비해 약 100배정도 속도 차이가 난다.

AWS CloudFront

  • Part 1 참조

Amazon Machine Image:AMI

AMI란?

  • 인스턴스를 시작할 때 필요한 정보를 제공
  • AMI 생성 및 등록한 후 새 인스턴스 시작할 때 그 이미지를 사용할 수 있으며, 동일 리전 및 다른 리전에서도 사용할 수 있음.
  • AMI를 퍼블릭으로 설정하여 외부와 공유할 수 있으며, AMI Marketplace에서 AMI를 판매할 수도 있다.

탄력성과 확장성

천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 — 이창수 솔루션즈 아키텍트

  • AWS Cloud의 다양하고 폭 넓은 서비스로 사용자 인프라를 고려한 아키텍쳐를 설계할 수 있음.
초기 서비스 제공 시
  • EC2 인스턴스를 사용할 때 용도에 따라 기능을 분리 , 혹은 AWS의 여러 기능을 지원하는 서비스를 사용
사용자가 1000명 이하일 때
  • 분산을 위해 ELB 사용 , Multi-AZ를 구성하여 가용성 확보 및 DB 이중화를 한다.
사용자가 만~10만 단위일 때
  • 기본 복제본과 읽기 전용 복제본 (Read Replica)를 사용하여 데이터 접근 부하를 줄인다.
  • 또한 정적 컨텐츠를 S3와 CloudFront로 이동하여 부하를 분산시킨다.

[영역 3: 안전한 애플리케이션 및 아키텍처]

클라우드 보안 모범 사례 백서

  • IAM 서비스 사용 : IAM으로 사용자가 어떤 AWS 서비스와 리소스에 액세스할 수 있는지를 제어하는 암호, 액세스 키 및 사용 권한 정책과 같은 보안 자격 증명을 한 곳에서 관리할 수 있다.

인프라 서비스의 책임 분담 모델

  • AWS 보안 글로벌 인프라를 바탕으로 자체 데이터 센터에서 온프레미스로 하는 것과 같은 방식으로 AWS 클라우드에서 운영 체제와 플랫폼을 설치 및 구성
  • 불투명 계층에서 데이터 암호화 , 인증 등 추가로 보안을 요구할 수 있다.
  • AMI 에서 새 EC2 접속 키를 발급받으면 사용자는 이를 안전하게 보관해야 하며, AWS 내에서는 Private key가 저장되지 않는다.

컨테이너 서비스의 책임 분담 모델

  • AWS 가 플랫폼 및 애플리케이션 관리까지 함.
  • AWS 컨테이너 서비스의 경우 컨테이너 서비스 액세스를 위한 데이터와 방화벽 규칙에 대한 책임은 고객에게 있다.

AWS에서 자산 정의 및 분류

  • 자산, 카테고리, 비용을 결정한 후, AWS에서 정보 보안 관리 시스템(ISMS)를 구현, 운영, 모니터링, 검토, 유지 보수, 개선하기 위한 표준을 설정
  • 비즈니스 요건과 목표 ,사용하는 프로세스 ,조직의 크기와 구조에 따라 달라짐.

AWS에서 계정, IAM 사용자, 그룹, 역할 관리

  • Root 계정은 매우 강력한 권한이 있기 때문에 일반 업무 시 사용하지 않는 것을 권장한다.
  • IAM 사용자로 개별적인 사용자와 보안 그룹은 분리해 각 개인 그룹별 사용자로 구분하여 권한 제한을 하는 것이 좋음.
  • Amazon EC2의 IAM 역할 예시

1. 관리자는 IAM을 사용하여 Get-pics 역할을 만듭니다.

2. 이 역할에서 관리자는 Amazon EC2 인스턴스만 역할을 부여할 수 있는 것으로 규정하고 photos 버킷에 대한 읽기 권한만을 지정하는 정책을 사용합니다.

3. 개발자는 Amazon EC2 인스턴스를 시작하고 그 인스턴스에 Get-pics 역할을 연결합니다.

4. 애플리케이션을 실행하면 Amazon EC2 인스턴스의 인스턴스 메타데이터에서 자격 증명을 검색합니다.

5. 애플리케이션은 역할 자격 증명을 사용하여 읽기 전용 권한으로 photo 버킷에 액세스합니다.

  • ID 페더레이션 예시

1. 엔터프라이즈 사용자가 자격 증명 브로커 애플리케이션에 액세스합니다.

2. 자격 증명 브로커 애플리케이션이 기업 자격 증명 스토어에 대해 사용자를 인증합니다.

3. 자격 증명 브로커 애플리케이션에 임시 보안 자격 증명을 만들 수 있도록 AWS Security Token Service(STS)에 액세스할 수 있는 권한이 있습니다.

4. 엔터프라이즈 사용자는 AWS API 또는 Management Console에 액세스할 수 있는 임시 URL을 받을 수 있습니다.

리소스 액세스 권한 부여

  • 리소스 정책: 사용자가 리소스를 만든 다음 다른 사용자들에게 리소스에 대한 액세스 권한을 부여하는 경우에 적합 , 정책이 리소스에 연결되고 그 리소스로 어떤 작업을 할 수있는지 설명.
  • 기능 정책: 회사 전체의 액세스 정책을 적용하는 데 사용. 기능 정책은 IAM 그룹을 사용하여 직접 또는 간접적으로 IAM 사용자에게 할당된다.

나머지 자세한 사항은 백서를 참조

보안 프로세스의 개요

AWS 인프라 보안

  • 물리적 및 환경적 보안 : AWS 직원의 데이터 센터에 대한 물리적인 접근은 모두 기록되며 정기적으로 감사를 받으며, 여러 안전 대책에 의해 데이터 센터가 안전하게 보호됨.
  • 연속성 관리: 모든 데이터 센터는 온라인으로 고객에게 서비스를 제공하며, 어떤 데이터 센터도 “정지(cold)”되지 않음. 또한 전 세계에 데이터 센터가 분산되어 있어 높은 가용성을 가진다.
  • 보안 네트워크 아키텍처: AWS는 DDOS, MITM, IP Spoofing, 포트 스캐닝 , 패킷 스니핑 등의 공격 방어를 위해 강력한 보안 결함 차단 방식을 지원.

AWS 계정 보안 기능

  • AWS IAM : AWS 계정 내에서 여러 사용자를 생성하고, 이러한 사용자 각각의 권한을 관리 , 임시 보안 자격 증명을 사용하여 제한된 시간 동안만 유효한 보안 자격 증명을 통해 보안 AWS 리소스에 대한 임시 액세스를 사용자에게 제공
  • AWS MFA: 표준 사용자 이름과 암호 자격 증명 외에 6자리 일회용 코드를 입력해야 고객의 AWS 계정 설정 또는 AWS 서비스 및 리소스 액세스 권한이 부여됨. 하드웨어 토큰 및 가상 MFA 디바이스의 사용을 모두 지원한다.

AWS 서비스별 보안

AWS EC2의 보안

  • Amazon EC2는 하이퍼바이저를 이용하며, Linux 게스트의 경우는 반가상화(paravirtualization)를 활용, 고급 권한에 대한 통제를 한다.
  • 하이퍼바이저를 통해 인스턴스는 물리적으로 상호 격리되어 보안성을 올린다.
  • 가상 인스턴스는 오직 고객만 제어할 수 있으며 전체 루트 액세스 또는 관리 제어 권한을 가진다. AWS는 고객의 인스턴스 또는 게스트 OS에 대한 어떤 액세스 권한도 ,접근할 수도 없다.
  • 방화벽: EC2의 인바운드 방화벽은 기본적으로 ‘모두 거부’ 모드로 구성되며, 사용자가 인바운드 트래픽을 허용하는 데 필요한 포트를 임의로 개방해야 함.
  • 예시: 웹 서버 그룹에는 인터넷에 개방된 포트 80(HTTP) 및/또는 포트 443(HTTPS)을 개방
  • 애플리케이션 서버 그룹에는 웹 서버 그룹에만 액세스할 수 있는 8000번 포트로 구성
  • 데이터베이스 서버 그룹에는 애플리케이션 서버 그룹에만 개방된 3306번 포트(MySQL)로 구성
  • 세 그룹 모두 포트 22(SSH)에 대한 관리 액세스는 허용되나, 고객의 기업 네트워크에서만 가능하게 특정 IP 대역만 접속하도록 함.

Amazon EBS 보안

  • Amazon EBS의 볼륨에 대한 접근은 해당 볼륨을 생성한 AWS 계정 및 AWS IAM을 이용해 만든 AWS 계정 사용자로 제한되므로, 다른 모든 AWS 계정 및 사용자에게는 볼륨을 보거나 접근하는 권한이 거부된다.
  • Amazon EBS에 저장된 데이터는 정상적인 서비스를 위해 물리적으로 여러 지점에 중복 보관된다.

Amazon Elastic Load Balancing 보안

  • Elastic Load Balancing은 온프레미스 로드 밸런서의 모든 장점 이외에 여러 가지 보안상 이점을 제공한다.
  • EC2 인스턴스를 대신해 암호화 및 복호화 작업을 수행 및 로드 밸런서에서 중앙집중식으로 관리 가능
  • 클라이언트에 단일 접점을 제공하며 네트워크 공격에 대한 1차 방어선의 역할도 수행
  • Amazon VPC를 사용하는 경우, Elastic Load Balancing과 연결된 보안 그룹의 생성 및 관리를 지원하여 추가적인 네트워킹 및 보안 옵션을 제공
  • 보안(HTTPS/SSL) 연결을 사용하는 네트워크에서 종단 간 트래픽 암호화를 지원.

Amazon VPC 보안

  • Amazon VPC를 사용하면 AWS 클라우드의 격리된 부분을 만들고, 선택한 범위에 프라이빗 주소가 있는 Amazon EC2 인스턴스를 시작할 수 있다.
  • 각 Amazon VPC에서의 네트워크 트래픽은 다른 모든 Amazon VPC와 격리됨.
  • Amazon VPC는 인스턴스의 진출입 트래픽을 모두 필터링할 수 있는 완전한 방화벽 솔루션을 지원
  • 네트워크 ACL : Amazon VPC 내 서브넷에서 인바운드 또는 아웃바운드하는 모든 트래픽에 적용되는 상태 비저장 트래픽 필터. 이러한 ACL은 IP 프로토콜, 서비스 포트, 원본/대상 IP 주소에 따라 트래픽을 허용 또는 거부하는 규칙을 포함함.

Amazon S3 보안

  • Amazon S3에 저장된 데이터에 대한 액세스는 기본적으로 제한되며, 버킷 및 객체 소유자만 자신이 생성한 Amazon S3 리소스에 액세스할 수 있다.
  • 객체 접근에 대한 엑세스 제어는 IAM, ACL , 버켓 정책으로 할 수 있으며, 특정 조건을 기준으로 특정 리소스에 대한 액세스를 추가로 제한할 수 있다.
  • 데이터 저장 시 Amazon S3 암호화 클라이언트와 같은 클라이언트 암호화 라이브러리를 사용하여 데이터를 암호화한 후에 업로드할 수 있으며, 장기 저장 시 S3 버킷의 콘텐츠를 Glacier에 자동으로 보관할 수 있다.
  • Amazon S3는 연간 99.999999999%의 객체 내구성과 99.99%의 가용성을 제공하도록 설계되었으며, 버전 관리 및 액세스 로그 열람으로 추가적인 보안을 제공한다.

AWS Glacier 보안

  • Amazon Glacier는 파일을 아카이브 단위로 볼트 내에 저장.
  • 특정한 간격으로 Glacier에 데이터를 전송하도록 S3를 설정할 수도 있으며, 더 높은 수준의 보안을 달성하기 위해 SSL 암호화 엔드포인트를 통해 Amazon Glacier에 안전하게 데이터를 업로드하거나 다운로드할 수 있다.

Amazon RDS 보안

  • Amazon RDS 내에서 처음 DB 인스턴스를 생성할 경우 DB 인스턴스에 대한 액세스를 제어하기 위해 Amazon RDS 안에서만 사용되는 마스터 사용자 계정을 만든다. 이후 추가로 계정 생성 가능
  • Amazon VPC에 배포된 DB 인스턴스는 VPN 또는 퍼블릭 서브넷에서 실행할 수 있는 배스천 호스트를 통해 VPC 외부의 Amazon EC2 인스턴스에서 액세스할 수 있다.
  • SSL을 사용하여 애플리케이션과 DB 인스턴스 사이의 연결을 암호화하여 보안 수준을 높일 수 있지만, DB 연결 지연시간을 늘리는 단점이 있다.
  • Amazon RDS는 DB 인스턴스 백업 및 복구를 위한 자동 백업 및 데이터베이스 스냅샷(DB 스냅샷)을 제공한다.

Amazon CloudFront 보안

  • Amazon CloudFront는 대상 API에 대한 모든 요청에 대해 인증을 요구하여 허가받은 사용자만 Amazon CloudFront에서 배포하는 정보를 생성, 변경, 또는 삭제할 수 있도록 한다.
  • Amazon CloudFront로부터 콘텐츠를 다운로드할 수 있는 사람들을 제한하고자 할 경우, 서비스의 콘텐츠 비공개 기능을 사용하도록 설정할 수 있다.
  • Amazon CloudFront 엣지에서 Amazon S3에 있는 고객 소유 객체에 액세스하는 방법을 제어하거나, 두 번째는 Amazon CloudFront 엣지에서 인터넷의 최종 사용자에게 콘텐츠를 전달하는 방법을 제어한다.
  • 또한 웹 애플리케이션에 지리적 제한 로직을 추가함으로써 최종 사용자의 지리적 위치에 따라 콘텐츠에 대한 액세스를 차단하도록 사용자 지정할 수 있다.
  • Amazon CloudFront는사용자에게 전달되는 콘텐츠를 인증할 수 있도록 암호화된 연결(HTTPS)을 통해 콘텐츠를 전달하는 기능을 제공한다. Amazon CloudFront는 기본적으로 HTTP 및 HTTPS 프로토콜을 통해 요청을 수락하며, 필요한 경우, 모든 요청에 대해 HTTPS를 요구하고 HTTP 요청은 모두 허용하지 않도록 Amazon CloudFront를 설정할 수도 있다.
  • CloudFront 에서 고유의 도메인 이름을 사용하려면 SSL 인증서를 AWS IAM 인증서 스토리지에 업로드한 후 해당 인증서를 CloudFront 배포에 연결해야 한다.

우선 주로 많이 쓰이는 기능에 대해 정리하였으며, 양이 너무 많아 다른 수많은 서비스는 백서를 참고하기 바람.

AWS Security by Design

Security by Design 이란?

  • SbD는 여러 산업계, 표준 및 보안 기준 전체에서 대규모의 보안 및 규정 준수를 유지하기 위한 4단계 접근법
  • SbD를 사용하면 고객이 AWS 계정의 Front End구조를 자동화하여 계정에 보안 및 규정 기준을 안정적으로 적용할 수 있다.
  • SbD를 사용하면 고객이 기본 구조를 자동화하여 AWS 환경의 보안 및 규정 준수를 안정적으로 개발할 수 있으므로 과거 항목을 제어하는 IT에 대해 규정 준수에 맞지 않는 항목을 적발하기 쉽다.
  • Security by Design의 결과로, SbD 아키텍처는 다음과 같은 목표를 달성하도록 만들어졌다.

수정 권한이 없는 사용자가 재정의할 수 없는 강제 기능 생성.

안정적인 제어 작업 구축.

지속적인 실시간 감사 가능.

거버넌스 정책을 스크립팅하는 기술.

AWS 환경에서의 보안

  • AWS 클라우드에서 시스템을 배포할 때는 AWS 및 고객이 보안 책임을 공동으로 부담한다. AWS는 기반 인프라에 대한 보안을 담당하는 반면, 사용자는 AWS에 배포된 IT 리소스에 대한 보안을 담당한다.
  • Security by Design 접근법은 4단계로 구성되어 있다.

1단계 — 요구 사항 확인

2단계 — 요구 사항 및 구현 조건에 맞는 “골드 환경” 구축.

3단계 — 템플릿 사용 설정.

4단계 — 검증 작업 수행.

1단계 — 요구 사항 확인

  • 먼저 보안 제어 합리화 작업을 수행하며, 현재 고객 아키텍처에 최적화되어 운영중인 제어를 식별하고, 기존 AWS 인증내역, 승인 및 보고서로 부터도 참조할 내역을 식별하여 보안 Controls Implementation Matrix(CIM)를 생성할 수 있다.

2단계 — “골드 환경” 구축

  • 이 단계는 사용자가 AWS가 제공하는 광범위한 보안 및 감사 서비스와 기능을 서로 연결하고, 보안, 규정 준수 및 감사 담당자에게 보안 및 규정 준수 환경을 구성하는 간단한 방법을 제공하도록 한다.
  • IAM 으로 액세스 관리, VPC나 Subnet을 이용한 네트워크 분할, 리소스 제약 조건 및 모니터링, 데이터 암호화를 통해 기능을 연결할 수 있다.
AWS 자동화(예: CloudFormation)
  • AWS GoldBase : AWS GoldBase는 특정 보안/규정 준수 요구 사항 내에서 사전 점검되고 자동화된 참조 아키텍처를 제공한다. AWS GoldBase 사용 사례 패키지는 기준 CloudFormation 템플릿으로 구성되는데, 사용자는 이를 고객 환경 내 배포용으로 사용자 지정할 수 있다. 자세한 내용은 “AWS GoldBase 소개” 백서 참조

3단계 — 템플릿 사용 설정

  • “골드 환경”을 만든 후에는 AWS에서 이를 사용할 수 있도록 설정해야 하는데, 서비스 카탈로그를 설정하여 이를 수행할 수 있다.
  • 서비스 카탈로그를 설정하면 계정에 액세스하는 모든 사용자가 만들어진 CloudFormation 템플릿을 사용하여 자신의 환경을 만들어야 한다.
  • 사용자가 환경을 사용할 때마다 이러한 “골드 환경” 규칙이 모두 적용되어, 제어의 나머지 고객 계정 보안 구성을 효과적으로 조작할 수 있으므로 감사에 대비할 수 있다.

4단계 — 검증 작업 수행

  • 이 단계의 목표는 AWS 고객이 일반적으로 용인되는 공공 감사 표준을 기준으로 독립적인 감사를 지원할 수 있도록 하는 것.
  • AWS는 규정을 준수하지 않는 인스턴스가 실제로 있는지 여부를 감지하는 AWS Config를 제공하며, AWS Config는 아키텍처의 현재 시점 설정정보를 제공한다.
  • 또한 AWS는 보안된 읽기 액세스를 통해 여러 감사 증거 수집 기능과 증거 모음을 자동으로 감사하는 고유 API 스크립트를 함께 제공한다.

--

--