🔑 AWS Shared Responsibility Model
🙋🏻 AWS의 책임 (클라우드의 보안 유지)
- 모든 AWS 서비스를 실행하게 해주는 인프라 보호
- S3, DynamoDB, RDS와 같은 관리형 서비스
🙋🏻 사용자의 책임 (클라우드 내부의 보안 유지)
- EC2 인스턴스의 경우 운영체제, 방화벽, 네트워크 구성, IAM 관리
- 응용 프로그램 데이터 암호화
🙋🏻 공유되는 책임
- 패치 관리
- 구성 관리
- 보안 지침 의식 및 훈련
🔒 AWS의 DDoS 보호
- AWS Shield Standard : 사용자의 웹사이트와 응용 프로그램을 DDoS 공격으로부터 지켜주는 모든 사용자를 위한 추가 비용이 없는 서비스
- AWS Shield Advanced : DDoS 보호를 위한 24/7 프리미엄 서비스
- AWS WAF : 규칙에 기반해 특정 요청들을 필터링하는 서비스
- CloudFront & Route 53 : 글로벌 엣지 네트워크를 사용한 가용성 보호 및 AWS와의 조합을 통해 엣지에서의 공격 완화를 제공한다.
- AWS Auto Scaling 활용 : 스케일링 준비가 된 경우
🛡️ AWS Shield
⚙️ AWS Shield Standard
AWS Shield Standard는 모든 AWS 소비자를 위해 활성화 되어있는 무료 서비스로,
SYN/UDP 플러딩과 같은 3계층, 4계층 공격에 대한 보호를 제공한다.
⚙️ AWS Shield Advanced
AWS Shield Advanced는 선택적 DDoS 공격 완화 서비스로,
EC2, ELB, CloudFront, Global Accelerator, Route 53에 대한 더욱 정교한 공격에 대한 보호를 제공하며
DDos 대응팀인 DRP에 언제든 접근 가능하다.
🧑🏻🚒 AWS WAF
WAF는 Web Application Firewall의 약어로,
사용자의 웹 애플리케이션을 일반적인 웹 악용 사례로부터 보호해준다.
응용 프로그램 부하 분산기, API 게이트웨이, CloudFront에 배포될 수 있으며,
Web ACL(Web Access Control List)을 정의할 수 있다.
📄 Web ACL
- 규칙들은 IP 주소, HTTP 헤더, HTTP 바디, URI 문자열을 포함할 수 있다.
- SQL 인젝션이나 XSS와 같은 일반적인 공격으로부터 보호한다.
- 크기 제약 및 geo-match를 통한 특정 국가 차단이 가능하다.
- 주기 기반 규칙을 통해 DDoS로부터 사용자를 보호한다.
🧑🏻🚒 AWS Network Firewall
AWS Network Firewall은 사용자의 모든 Amazon VPC를 보호한다.
3계층에서 7계층까지를 보호하며, 모든 접근에 대해 VPC간의 트래픽, 인터넷으로의 아웃바운드,
인터넷으로부터의 인바운드, 직통 연결 및 Site-to-Site VPN을 검사할 수 있다.
👮🏻♂️ AWS Firewall Manager
AWS Firewall Manager는 AWS 조직의 모든 계정에서 보안 규칙을 관리할 수 있도록 해준다.
보안 규칙은 사용자 조직의 모든 계정 및 새로 생성되는 계정에서 새로운 리소스가 생성될 때마다 적용된다.
📝 Penetration Testing
침투 테스트는 자신이 직접 자신의 인프라를 공격함으로써 보안을 테스트하는 방법이다.
AWS 사용자들은 허용 서비스들의 사전 승인 없이
사용자의 인프라에 대한 보안 평가와 침투 테스트를 수행할 수 있다.
✅ 허용 서비스
- Amazon EC2 인스턴스, NAT 게이트웨이, ELB
- Amazon RDS
- Amazon CloudFront
- Amazon Aurora
- Amazon API Gateway
- AWS Lambda & Lambda Edge 함수
- Amazon Lightsail 리소스
- Amazon Elastic Beanstalk 환경
❌ 금지된 활동
- Amazon Rute 53 Hosted Zones를 통한 DNS zone walking
- DoS, DDoS, 시뮬레이트 DoS, 시뮬레이트 DDoS
- 포트 플러딩
- 프로토콜 플러딩
- 요청 플러딩
🔑 AWS KMS
KMS는 Key Management Service의 약어로, AWS가 사용자를 위해 암호화 키를 관리해준다.
✅ KMS 키 종류
- Customer Managed Key : 사용자에 의해 생성, 관리, 사용되는 키로, 활성화 또는 비활성화 할 수 있으며, 키 회전 정책의 정의와 자신만의 키를 가져오는 것이 가능하다.
- AWS Managed Key : AWS가 사용자를 대신해 생성, 관리, 사용되는 키로, AWS 서비스에 의해 사용된다.
- AWS Owned Key : 여러 계정에서 사용하기 위해 AWS 서비스가 소유하고 관리하는 키의 집합으로, AWS가 사용자 계정의 리소스를 보호하기 위해 이 키들을 사용할 수 있다.
- CloudHSM Keys : 사용자의 CloudHSM 하드웨어 장치로부터 생성된 키로, 모든 암호화 작업은 CloudHSM 클러스터에서 진행된다.
✅ 암호화 대상
- EBS 볼륨 : 볼륨 암호화
- S3 버킷 : 객체에 대한 서버측 암호화
- Redshift 데이터베이스 : 데이터 암호화
- RDS 데이터베이스 : 데이터 암호화
- EFS 드라이브 : 데이터 암호화
✅ 자동 암호화 대상
- CloudTrail 로그
- S3 Glacier
- 저장소 게이트웨이
⚙️ CloudHSM
HSM은 Hardware Security Module의 약어로, AWS가 하드웨어 암호화 장치를 공급해준다.
따라서 사용자는 자신만의 암호화 키를 완전히 관리하게 된다.
👮🏻♂️ AWS Certificate MAnager (ACM)
ACM은 사용자가 SSL/TLS 인증서를 쉽게 공급, 관리, 배포할 수 있게 해주며
웹사이트를 위한 전송 중 암호화를 제공하기 위해 사용되는 서비스이다.
공용, 개인 TLS 인증서 둘 모두를 지원하며, 특히 공용 TLS 인증서에 대해서는 무료로 사용이 가능하다.
또한 자동 TLS 인증서 갱신이 가능하며, 다른 서비스와 통합하여 인증서를 불러오도록 할 수 있다.
👮🏻♂️ AWS Secrets Manager
Secrets Manager는 비밀을 저장하는 서비스로,
정해진 일자마다 비밀의 회전을 강제할 수 있다. (예: 90일마다 비밀번호 변경)
비밀 회전의 경우, Lambda등을 사용하여 자동으로 진행할 수 있으며, Amazon RDS와 통합하여 사용이 가능하다.
모든 비밀은 KMS를 사용하여 암호화된다.
📄 AWS Artifact
Artifact는 AWS 규정 준수 보고서와 AWS 계약에 대한 온디맨드 엑세스를 소비자에게 제공하는 포털이다.
내부 감사나 규정 준수를 지원하기 위해 사용될 수 있다.
- Artifact Reports : 사용자가 서드파티 감사관에 의해 작성된 AWS 보안 및 규정 준수 보고서를 다운받을 수 있도록 허용한다.
- Artifact Agreements : 사용자가 AWS 계약 상태를 검토, 수용, 추적할 수 있도록 허용한다.
🔒 Amazon GuardDuty
GuardDuty는 AWS 계정을 보호하기 위한 지능형 위협 탐지 서비스로,
머신 러닝 알고리즘, 이상 감지, 서드파티 데이터를 사용한다.
클릭만으로 사용이 가능하고, 소프트웨어를 설치할 필요가 없다.
위협 발견시 알림을 받기 위해 EventBridge 규칙을 설정할 수 있으며,
이 EventBridge 규칙은 AWS Lambda나 SNS를 대상으로 한다.
GuardDuty는 또한 암호화폐 공격에 대한 보호도 제공한다.
🔍 Amazon Inspector
Inspector는 자동화된 보안 평가 서비스로,
EC2 인스턴스, Amazon ECR에 대한 컨테이너 이미지 푸시, Lambda 함수에 사용된다.
AWS Security Hub에 결과 보고 및 통합이 가능하며, 결과를 Amazon Event Bridge에 전송한다.
주로 필요한 경우에만 인프라를 연속적으로 스캔하며, 취약성을 패키징하고, 네트워크 접근성에 대해 살펴본다.
위험성 점수는 우선 순위에 대한 모든 취약점과 연관되어있다.
⚙️ AWS Config
Config는 사용자 AWS 리소스들의 규정 준수 여부를 감사하고 기록하는 것과
시간에 따른 환경설정의 변화를 기록하는 것을 돕는다.
환경설정 데이터를 S3에 저장함으로써 Athena에 의해 분석할 수도 있다.
모든 변화에 대한 알림을 받을 수 있으며, 리전별 서비스임에도 모든 지역과 계정에 걸쳐 결과를 집계할 수 있다.
⚙️ AWS Macie
Macie는 AWS에 존재하는 사용자의 민감한 데이터를 발견하거나 보호하기 위해
머신러닝과 패턴매칭을 사용하는 완전관리형 데이터 보안 & 데이터 프라이버시 서비스이다.
🔒 AWS Security Hub
Security Hub은 여러 AWS 계정의 보안을 관리 및 자동 보안 검사를 위한 중앙집중형 보안 도구이다.
통합 대시보드를 통해 현재의 보안 및 규정 준수 상태를 보여줌으로써 빠르게 대처할 수 있도록 돕는다.
다양한 AWS 서비스 및 AWS의 파트너 도구들로부터
사전정의된 알림이나 개인적으로 검색된 형식을 자동으로 집계한다.
AWS Security Hub을 사용하기 위해서는 AWS Config Service를 먼저 활성화해야 한다.
🔍 Amazon Detective
GuardDuty, Macie, Security Hub은 잠재적 보안 이슈나 조사 결과를 식별하기 위해 사용되는데,
가끔은 근본 원인을 분리하기 위해서는 조사 결과가 아주 깊은 분석을 요구하는 경우가 있다.
Amazon Detective는 이런 경우, 근본 원인을 분석, 조사하고 빠르게 식별해주는 서비스로,
VPC Flow Logs, CloudTrail, GuardDuty로부터 사건들을 자동적으로 수집 및 처리하여 통합된 뷰를 생성하며,
근본 원인에 도달하기 위한 세부적인 시각화 자료를 만들어준다.
😈 AWS Abuse
악의적이거나 불법적인 목적으로 사용된 AWS 리소스들은 신고해야 한다.
❌ 악의적 & 금지된 행동들
- 스팸
- 포트 스캐닝
- DoS, DDoS 공격
- 침입 시도
- 불쾌감을 주거나 저작권이 있는 콘텐츠 호스팅
- 악성코드 배포
🧑🏻💻 Root user privileges
루트 사용자가 곧 계정의 소유자로, 모든 AWS 서비스와 리소스에 대한 완전한 엑세스 권한을 가진다.
사용자 AWS 계정의 루트 사용자 엑세스 키는 반드시 잠궈두어야 하며,
반드시 특별한 작업들에만 루트 계정을 사용해야 한다.
✅ 루트 사용자에 의해서만 실행 가능한 것들
- 계정 설정 변경
- 세금 계산서 확인
- AWS 계정 닫기
- AWS 지원 계획을 변경하거나 취소하기
- 예약된 인스턴스의 판매자로 등록하려는 경우
- MFA를 활성화하기 위해 S3 버킷을 구성하는 경우
- 존재하지 않는 VPC ID나 VPC 엔드포인트 ID를 포함하는 S3 버킷 정책을 편집하거나 삭제하는 경우
- GovCloud에 등록하는 경우
⚙️ IAM Access Analyzer
IAM Access Analyzer는 어떤 리소스를 외부와 공유할지 찾아내거나, 트러스트존을 정의하는데 사용된다.
만약 트러스트존을 벗어나 리소스에 접근하는 경우는 보고된다.