어쩌다 IT
article thumbnail

https://jwlish.tistory.com/entry/SAA-C03-AWS-%EB%B3%B4%EC%95%88-%EB%B0%8F-%EC%95%94%ED%98%B8%ED%99%94

 

[SAA-C03] AWS 보안 및 암호화

암호화 (Encryption) 전송 중 암호화 (Encryption in flight, SSL) 데이터가 전송되기 전 암호화되고 서버가 데이터를 받으면 복호화하는 방식 클라이언트와 서버만이 암호화와 복호화하는 방법을 알고 있

jwlish.tistory.com

더보기

암호화 (Encryption)

 

전송 중 암호화 (Encryption in flight, SSL)

  • 데이터가 전송되기 전 암호화되고 서버가 데이터를 받으면 복호화하는 방식
  • 클라이언트와 서버만이 암호화와 복호화하는 방법을 알고 있음
  • SSL 인증서가 암호화를 해주고 다른 방법은 HTTPS가 있음
  • Amazon 서비스를 다룰 때 HTTPS 엔드 포인트가 있다면 전송 중 암호화가 됐음을 보장
  • 기본적으로 전송 중 암호화를 활성화하면 중간자의 공격으로부터 보호받을 수 있음

 

서버 측 저장 데이터 암호화 (Server side encryption at rest)

  • 데이터가 서버에 수신된 후 암호화하는 방식
  • 데이터는 클라이언트로 다시 전송되기 전에 복호화
  • 데이터 키(Key)로 데이터는 암호화된 형태로 저장
  • 암호화와 복호화에 필요한 키는 주로 KMS 같은 곳에 따로 관리
  • 서버는 KMS와 통신할 수 있어야 함
  • 서버 자체가 암호화와 복호화를 관리하고 데이터 키를 통해 접근

 

클라이언트 측 암호화 (Client side encryption)

  • 데이터는 사용자가 암호화하고 서버는 그 데이터를 복호화할 수 없고 데이터를 받는 사용자에 의해 복호화 가능
  • 서버는 최선의 방법으로도 데이터를 복호화할 수 없어야 함

AWS KMS

  • Key Management Service
  • 보통 AWS 서비스로 암호화한다고 하면 KMS 암호화일 가능성이 높음
  • AWS KMS 서비스를 사용하면 AWS에서 암호화 키를 관리
  • KMS는 권한 부여를 위해 IAM과 완전히 통합되고 KMS로 암호화한 데이터에 관한 액세스를 쉽게 제어할 수 있게 함
  • CloudTrail을 통해서 키를 사용하기 위해 호출한 모든 API를 감사할 수 있다는 장점
  • 대부분의 AWS 서비스에 KMS를 원활하게 사용할 수 있음 (EBS, S3, RDS, SSM 등)
  • KMS 사용을 위해 API 호출이나 CLI, SDK 사용 가능

 

 

키 사용 - AWS Key Management Service - Amazon Web Services

닫기 이 다이어그램은 AWS Key Management Service의 주요 기능 및 사용 가능한 다른 AWS 서비스와의 통합을 보여줍니다. 3개의 섹션이 표시됩니다. 첫 번째 섹션에는 AWS KMS 아키텍처 아이콘 그림이 포함

aws.amazon.com

 

KMS 키 유형

  • KMS 키는 과거 KMS 고객 마스터 키라고 했는데 고객 관리형 키와 헷갈려서 KMS 키라고 함
  • 대칭 키 (AES-256)
    • 데이터 암호화와 복호화에 사용하는 단일 암호화 키만 존재
    • KMS와 통합된 모든 AWS 서비스는 대칭 키를 사용
    • KMS 대칭 키를 사용하려면 KMS API를 호출해야 함
  • 비대칭 키 (RSA & ECC Key pairs)
    • 데이터 암호화에 사용하는 퍼블릭 키와 데이터 복호화에 사용하는 프라이빗 키, 두 키의 쌍
    • 암호화 및 복호화, 서명 및 확인에 사용
    • KMS에서 퍼블릭 키를 다운로드할 수는 있지만 프라이빗 키에는 액세스 할 수 없음
    • 프라이빗 키에 액세스 하려면 API 호출로만 가능

 

KMS 키 정책

  • KMS 키에 관한 액세스를 제어하는 것으로 S3 버킷 정책과 비슷하지만 차이가 있음
  • KMS 키에 KMS 키 정책이 없으면 누구도 액세스 할 수 없다는 차이점
  • 기본 KMS 키 정책
    • 사용자 지정 KMS 키 정책을 제공하지 않으면 생성됨
    • 기본적으로 계정의 모든 사람이 키에 액세스 하도록 허용
  • 사용자 지정 KMS 키 정책
    • KMS 키에 액세스 할 수 있는 사용자 또는 역할을 정의
    • 키를 관리할 수 있는 사람을 정의
    • KMS 키에 관한 교차 계정 액세스 시 유용

 

KMS Multi Region Keys

  • 다른 AWS 리전에서 사용할 수 있는 KMS 키 세트로 서로 교체해서 사용할 수 있음
  • 한 리전에서 암호화하고 다른 리전에서 복호화 가능
  • 다음 리전으로 복제할 때나 교차 리전 API 호출을 실행할 때 데이터를 재암호화하지 않아도 됨
  • 다중 리전 키는 동일한 키 ID와 동일한 키 구성 요소를 가짐
  • 기본 키의 자동 교체를 활성화하고 교체된 키는 다른 리전에도 복제됨
  • KMS 다중 리전 키는 전역으로 사용할 수 없음, 기본 키가 있고 복제본이 있는 것
  • 각 다중 리전 키는 자체 키 정책 등으로 각각 독립적으로 관리

 

S3 Replication Encryption Considerations

  • 한 버킷에서 다른 버킷으로 S3 복제를 활성화하면 암호화되지 않은 객체와 SSE-S3로 암호화된 객체가 기본으로 복제
  • 고객 제공 키인 SSE-C로 객체를 암호화하면 복제되지 않음
  • SSE-KMS로 암호화된 객체는 기본적으로 복제되지 않고 복제하려면 옵션을 활성화해야 함
    • 어떤 KMS 키로 대상 버킷 내 객체를 암호화하는지 지정
    • KMS 키 정책을 대상 키에 적용
    • S3 복제 서비스를 허용하는 IAM 역할을 생성하여 소스 버킷의 데이터를 복호화
    • 대상 KMS 키로 대상 버킷의 데이터를 다시 암호화하면 복제가 활성화됨
    • KMS 스로틀링 오류가 발생하면 서비스 할당량 요청

SSM Parameter Store

  • 구성 및 암호를 위한 보안 스토리지
  • 구성을 암호화할지 선택할 수 있어서 KMS 서비스를 이용해 암호를 만들 수 있음
  • 서버리스 서비스이며 확장성과 내구성이 뛰어나며 SDK 사용이 용이
  • 매개 변수를 업데이트할 때 구성과 암호의 버전을 추적할 수 있음
  • IAM을 통해 보안이 제공
  • Amazon EventBridge로 알림을 받을 수 있음
  • CloudFormation과 통합으로 SSM Parameter Store의 매개 변수를 다듬을 수 있음
 

AWS Systems Manager Parameter Store - AWS Systems Manager

AWS Systems Manager Parameter Store Parameter Store, a capability of AWS Systems Manager, provides secure, hierarchical storage for configuration data management and secrets management. You can store data such as passwords, database strings, Amazon Machin

docs.aws.amazon.com

 

Parameters Policies

  • 고급 매개 변수에서 사용
  • 매개 변수 정책을 통해 만료 기한을 뜻하는 Time To Live(TTL)를 매개 변수에 할당
  • 비밀번호 등의 민감한 정보를 업데이트 또는 삭제하도록 강제
  • 한 번에 여러 정책 할당 가능

AWS Secret Manager

  • 암호를 저장하는 최신 서비스로 SSM Parameter Store와는 다른 서비스
  • AWS Secrets Manager는 X일마다 강제로 암호를 교체하는 기능이 있어 암호 관리를 더 효율적으로 할 수 있음
  • 교체할 암호를 강제 생성 및 자동화할 수 있는데 이를 위해 Lambda 함수를 정의해야 함
  • AWS에서 제공하는 다양한 서비스와 잘 통합됨 (Amazon RDS, MySQL, PostgreSQL, Aurora 등)
  • 암호는 KMS 서비스를 통해 암호화됨
  • RDS와 Aurora의 통합 또는 암호에 대한 내용이 시험에 나오면 AWS Secret Manager를 떠올릴 것
 

보안 인증 정보 암호 관리 - AWS Secrets Manager - Amazon Web Services

AWS Secrets Manager는 애플리케이션, 서비스 및 IT 리소스에 대한 액세스를 관리하는 데 도움이 됩니다.

aws.amazon.com

 

AWS Secret Manager - Multi Region Secret

  • 복수 AWS 리전에 암호를 복제
  • AWS Secret Manager 서비스가 기본 암호와 동기화된 읽기 전용 복제본을 유지한다는 개념
  • 기본 리전에 문제가 발생하면 암호 복제본을 독립 실행형 암호로 승격

AWS Certificate Manager (ACM)

  • ACM은 TLS 인증서를 AWS에서 프로비저닝, 관리 및 배포하게 해 줌
  • TLS/SSL 인증서는 웹 사이트에서 전송 중 암호화를 제공하는 데 사용 (HTTPS)
  • 퍼블릭과 프라이빗 TLS 인증서 모두를 지원하고 퍼블릭 TLS 인증서 사용 시 무료로 이용
  • TLS 인증서 자동으로 갱신하는 기능도 있음
  • 여러 AWS 서비스와 통합 (ELB, CloudFront Distribution, API Gateway의 모든 API 등)
  • EC2 인스턴스에서는 사용이 불가능 (퍼블릭 인증서일 경우 추출이 불가능하기 때문)
 

인증서 관리자 - AWS Certificate Manager - Amazon Web Services

ACM을 사용하여 AWS 서비스 및 내부 연결 리소스와 함께 공인 및 사설 SSL/TLS 인증서를 프로비저닝, 관리 및 배포하는 방법을 알아보세요.

aws.amazon.com

 

AWS Certificate Manager - 퍼블릭 인증서 요청 과정

  1. 인증서에 포함할 도메인 이름을 나열
    • 전체 주소 도메인 이름 (Fully Qualified Domain Name, FQDN) - corp.example.com
    • 와일드카드 도메인 - *.example.com
    • 도메인 수에는 제한이 없음
  2. 유효성 검증 방법, DNS 검증과 이메일 검증 중 어느 것으로 할지 선택
    • 자동화를 목적으로 SSL 인증서를 자동 갱신하려면 DNS 검증
    • DNS 검증을 사용하면 DNS 구성에서 CNAME 레코드를 생성해서 도메인 소유권을 증명해야 함
    • Route 53이 있다면 ACM과 자동으로 통합해서 도메인 소유권을 증명함
    • 이메일 검증을 사용하면 ACM이 도메인에 등록된 연락처로 이메일을 보내서 요청했는지 여부 확인
  3. 유효성 검증이 완료되면 인증서가 발행
  4. 퍼블릭 인증서 자동 갱신 목록에 추가
    • ACM에서 스스로 생성된 모든 인증서를 만료 60일 전에 자동으로 갱신

 

AWS Certificate Manager - 퍼블릭 인증서 가져오기

  • ACM 외부에서 생성된 인증서를 ACM으로 가져오는 옵션도 제공
  • ACM 외부에서 생성된 인증서는 자동 갱신 불가능하므로 만료되기 전에 직접 새 인증서로 리뉴얼해야 함
  • ACM 서비스가 만료 45일 전부터 매일 만료 이벤트를 EventBridge 서비스에 전송 (며칠 전부터 보낼지 설정 가능)
  • AWS Config의 acm-certificate-expiration-check라는 관리형 규칙을 통해서 만료된 인증서를 확인하고 이벤트 전송

 

API Gateway - Endpoint Types

  • 엣지 최적화(Edge Optimized)
    • 기본값으로 글로벌 클라이언트를 위한 유형
    • CloudFront 엣지 로케이션으로 요청을 라우팅하여 지연을 줄이는 방법
    • 하나의 리전에만 있는 API Gateway로 보내지는 경우
  • 리전(Regonal) 엔드포인트
    • 클라이언트가 API Gateway와 같은 리전에 있을 때 사용
    • 자체 CloudFront 배포를 생성하여 캐싱 및 배포 전략을 제어할 수 있음
  • 프라이빗(Private) 엔드포인트
    • ENI를 통해 VPC 내부에만 액세스
    • 프라이빗 모드에서는 API Gateway에 대한 액세스를 정의하는 리소스 정책 필요
  • ACM은 엣지 최적화 및 리전 엔드포인트에 적합

AWS WAF - Web Application Firewall

  • AWS WAF는 L7에서 일어나는 일반적인 웹 취약점 공격으로부터 웹 애플리케이션을 보호
  • L7은 HTTP이니 HTTP 취약점 공격을 막아주는 것
  • ALB, API Gateway, CloudFront, AppSync GraphQL API, Cognito 사용자 풀에 WAF 배포
  • AWS WAF는 NLB를 지원하지 않음, NLB는 L4 계층
  • 방화벽을 배포한 후에는 웹 액세스 제어 목록(ACL)과 규칙을 정의
    • IP 주소를 기반으로 필터링하는 등의 규칙
    • HTTP 헤더와 본문에 기반한 필터링, URI 문자열을 통해 SQL 주입이나 XSS 등의 일반적인 공격을 차단
    • 용량에 제약을 걸거나 지리적 일치(Geo-matech) 조건을 걸어 특정 국가 허용 또는 차단
    • 속도 기반 규칙을 설정하여 디도스 공격 보호
  • 웹 ACL은 리전에 적용되고 CloudFront는 글로벌로 정의
  • 규칙 그룹 - 여러 웹 ACL에 추가할 수 있는 재사용 가능한 규칙 모음, 규칙을 정리하기 위함
 

웹 애플리케이션 보호 - AWS WAF - Amazon Web Services

매월 1,000만 건의 봇 제어 요청

aws.amazon.com


AWS Shield

  • AWS Shield는 디도스 공격으로부터 스스로를 보호하기 위한 서비스
  • DDos, Distributed Denial of Service, 분산 서비스 거부 공격
  • 디도스는 동시에 엄청난 양의 트래픽이 세계 곳곳의 여러 컴퓨터에서 유입되는 공격
  • 인프라에 과부하를 일으켜 실제 사용자들에게 서비스를 제공할 수 없게 만듦
  • AWS Shield Standard
    • 모든 AWS 고객에게 무료로 활성화되어 있는 서비스
    • SYN/UDP Floods나 반사 공격 및 L3 / L4 공격으로부터 고객을 보호
  • AWS Shield Advanced
    • 선택적으로 제공되는 서비스로 월 3,000달러의 비용 발생
    • Amazon EC2, ELB, CloudFront, AWS Global Accelerator, Route 53을 보호
    • AWS 디도스 대응 팀이 항시 대기하고 있어 공격을 받았을 때 지원받을 수 있음
    • 자동 애플리케이션 계층 디도스 완화도 제공하여 자동으로 WAF 규칙을 생성, 평가, 배포하여 L7 공격 완화 가능
 

관리형 DDoS 보호 - AWS Shield - Amazon Web Services

휴리스틱 기반 상시 네트워크 흐름 모니터링 및 인라인 공격 완화 기능을 활용하세요.

aws.amazon.com


AWS Firewall Manager

  • AWS Organization에 있는 모든 계정의 방화벽 규칙을 관리하는 서비스
  • 여러 계정의 규칙을 동시에 관리
  • 보안 규칙의 집합인 보안 정책을 설정할 수 있음
    • WAF 규칙 - ALB, API Gateway, CloudFront 등
    • AWS Shield Advanced - ALB, CLB, NLB, Elastic IP, CloudFront 등
    • EC2, ALB, ENI 리소스를 위한 보안 그룹을 표준화하는 보안 정책
    • VPC 수준의 AWS Network Firewall
    • Amazon Route 53 Resolver DNS Firewall
    • 보안 정책은 리전 수준에서 생성되며 조직에 등록된 모든 계정에서 적용
 

방화벽 규칙을 중앙에서 관리 - AWS Firewall Manager - Amazon Web Services

주요 개념, 단계별 지침 및 API 작업을 살펴보세요.

aws.amazon.com

 

WAF vs Firewall Manager vs Shield

  • WAF, Firewall Manager, Shield 모두 포괄적인 계정 보호를 위한 서비스
  • WAF는 웹 ACL 규칙을 정의하는데 리소스별 보호를 구성하는 데에 적절
  • 여러 계정에서 WAF를 사용하고 새 리소스 보호를 자동화하려면 Firewall Manager로 WAF 규칙을 관리
  • Shield Advanced는 디도스 공격으로부터 고객을 보호하고 WAF의 기능 외에 많은 기능 제공

Amazon GuardDuty

  • AWS 계정을 보호하는 지능형 위협 탐지 서비스
  • 백엔드에서 머신 러닝 알고리즘을 사용하여 이상 탐지를 수행하고 타사 데이터를 이용하여 계정에 대한 공격 탐지
  • 클릭 한 번으로 활성화되고 30일 평가판 제공, 소프트웨어 설치 필요 없이 백엔드에서 작동
  • CloudWatch 이벤트 규칙을 설정하여 탐색 결과가 나타나면 알림을 받을 수 있음
  • 작업을 수행할 Lambda 함수를 대상으로 하는 규칙을 설정하거나 이메일을 보낼 SNS 주제로 규칙을 설정
  • Amazon GuardDuty로 암호화폐 공격을 보호할 수 있음
 

지능형 탐지 서비스 - Amazon GuardDuty - Amazon Web Services

 

aws.amazon.com

 

Amazon GuardDuty 입력 데이터

  • CloudTrail 이벤트 로그 - 비정상적인 API 호출과 무단 배포 등을 탐지
    • CloudTrail 관리 이벤트 - VPC 서브넷 생성, 추적 생성 등
    • CloudTrail S3 데이터 이벤트 - get object, list object, delete object 등
  • VPC Flow 로그 - 비정상적인 인터넷 프래픽과 IP 주소를 찾음
  • DNS 로그 - DNS 쿼리에서 인코딩 된 데이터를 전송할 EC2 인스턴스가 손상되었는지 확인
  • Kubernetes 감사 로그 - 의심스러운 활동 및 잠재적인 EKS 클러스터 손상을 감지
  • 모든 작업은 내부적으로 이루어짐

Amazon Inspector

  • AWS 인프라의 자동 보안 평가
  • EC2 인스턴스 분석
    • 시스템 관리자(SSM) 에이전트를 활용하면 Amazon Inspector가 해당 EC2 인스턴스의 보안을 평가
    • 의도되지 않은 네트워크 접근 가능성에 대해 분석
    • 실행 중인 운영 체제에서 알려진 취약점을 분석
    • EC2 인스턴스에 문제가 있는지 자동으로 감지
  • Amazon ECR로 푸시되는 컨테이너를 분석
    • 컨테이너 이미지가 Amazon ECR로 푸시되면 Amazon Inspector가 알려진 취약점에 대해 검사
  • Lambda 함수 분석
    • Lambda 함수가 배포될 때 함수 코드 및 패키지 종속성에서 소프트웨어 취약성을 분석
    • 함수가 배포될 때 평가
  • Amazon Inspector가 작업을 완료하면 결과를 AWS 보안 허브에 보고
  • 결과 및 결과 이벤트를 Amazon Event Bridge로 전송
  • Amazon Inspector는 EC2 인스턴스, Amazon ECR의 컨테이너 이미지, Lambda 함수에만 사용
 

자동화된 소프트웨어 취약성 관리 - Amazon Inspector - Amazon Web Services

Amazon Inspector는 Amazon EC2 인스턴스, 컨테이너 및 Lambda 함수와 같은 워크로드를 자동으로 검색하고 소프트웨어 취약성과 의도하지 않은 네트워크 노출이 있는지 스캔합니다.

aws.amazon.com


Amazon Macie

  • 완전 관리형의 데이터 보안 및 데이터 프라이버시 서비스
  • 머신 러닝과 패턴 일치를 사용하여 AWS의 민감한 정보를 검색하고 보호
  • 개인 식별 정보 (Personally Identifiable Information, PII) 같은 정보
 

민감한 데이터 검색 - Amazon Macie - Amazon Web Services

민감한 데이터를 검색, 분류 및 보호하는 기계 학습 기반 보안 서비스.

aws.amazon.com

 

profile

어쩌다 IT

@Jinoo.K

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!