Programming/Cloud

[AWS] AWS Solutions Architect — Associate certificate Study — 공식 문서 정리 Part3 - 보안

BadaGreen_Kim 2023. 7. 15. 14:47

보안 프로세스의 개요

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 스크립트를 함께 제공한다.