암호화 (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 - 퍼블릭 인증서 요청 과정
- 인증서에 포함할 도메인 이름을 나열
- 전체 주소 도메인 이름 (Fully Qualified Domain Name, FQDN) - corp.example.com
- 와일드카드 도메인 - *.example.com
- 도메인 수에는 제한이 없음
- 유효성 검증 방법, DNS 검증과 이메일 검증 중 어느 것으로 할지 선택
- 자동화를 목적으로 SSL 인증서를 자동 갱신하려면 DNS 검증
- DNS 검증을 사용하면 DNS 구성에서 CNAME 레코드를 생성해서 도메인 소유권을 증명해야 함
- Route 53이 있다면 ACM과 자동으로 통합해서 도메인 소유권을 증명함
- 이메일 검증을 사용하면 ACM이 도메인에 등록된 연락처로 이메일을 보내서 요청했는지 여부 확인
- 유효성 검증이 완료되면 인증서가 발행
- 퍼블릭 인증서 자동 갱신 목록에 추가
- 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
'자격증 > SAA-C03' 카테고리의 다른 글
[SAA-C03] Route 53 (0) | 2023.09.21 |
---|---|
[SAA-C03] 네트워킹 - VPC (0) | 2023.09.20 |
[SAA-C03] IAM (Identity and Access Management) - 고급 (0) | 2023.09.18 |
[SAA-C03] AWS 모니터링 및 감사 - CloudWatch, CloudTrail, Config (0) | 2023.09.14 |
[SAA-C03] 머신 러닝 (0) | 2023.09.13 |