맨땅에 코딩

보안운영관리/인프라/컨설팅 - 클라우드 기초 본문

화이트햇 스쿨 2기/이론교육

보안운영관리/인프라/컨설팅 - 클라우드 기초

나는 푸딩 2025. 2. 26. 16:31

*화이트햇 스쿨 2기에서 이수한 이론교육 내용을 바탕으로 작성되었습니다.

 

1. 클라우드(AWS) 개념 잡기

 

AWS Organization:
- AWS Organization은 다수의 AWS 계정을 그룹화하여 계층적 구조를 형성하고 중앙에서 관리하는 기능을 제공합니다.
- 기업이 여러 개의 계정을 보다 효과적으로 관리하고 보안 및 리소스 공유를 관리하기 위해 사용됩니다.
- AWS Organization 내에서는 여러 계정을 루트 계정 아래에 조직 단위(Organizational Unit, OU)로 그룹화할 수 있습니다.
- OU는 계정 그룹을 만들어 계정들을 논리적으로 분류하고 각 그룹에 정책을 적용할 수 있게 해줍니다.

 

AWS 계정 (AWS Account):
- AWS 계정은 AWS의 서비스와 리소스를 사용하기 위한 가장 기본적인 단위입니다.
- 각 계정은 고유한 AWS 계정 ID를 가지며, 이를 통해 계정을 식별합니다.
- 계정마다 별도의 비용과 자원 할당량, 보안 설정을 갖게 됩니다.
- 리소스를 생성하고 관리하며, 해당 계정에 속한 사용자들이 리소스에 액세스할 수 있습니다.

 

AWS 리소스 (AWS Resources):
- AWS 계정 내에서 생성되는 가상 서버, 데이터베이스, 스토리지, 네트워크 등의 서비스와 객체를 말합니다.
- 예를 들어, Amazon EC2 인스턴스, Amazon S3 버킷, Amazon RDS 데이터베이스 등이 리소스의 예시입니다.
- 각 리소스는 특정 리전(Region)에 생성되며, 해당 리전 내에서 사용 가능한 용량과 기능을 제공합니다.

 

2. AWS 환경에서의 인프라 구성

 

용어
- VPC (Virtual Private Cloud)
  - 아마존 가상 사설 클라우드
- EC2 (Amazon Elastic Compute Cloud)
  - 아마존 가상 컴퓨터

 

VPC 구조:
- 기본적으로 EC2를 생성할 때 VPC를 사용해야 합니다.
- 가상 네트워크(VPC)를 설계하고 VPC내에서 다양한 기능으로 네트워크를 제어할 수 있습니다.
- 모든 서버는 네트워크 환경의 설정에 제어를 받고 라우팅, 서브넷, 네트워크 ACL등에 영향을 받습니다.

 

 

VPC가 없다면?:
- 인터넷과 서버 역할을 하는 EC2(인스턴스)가 직접 연결되어 있습니다.
- 모든 서버는 네트워크 망에서 독립적으로 인터넷과 통신하거나 EC2간의 상호 통신을 합니다.

 

 

용어
- Availability Zone(AZ)
  - 가용 영역(Zone)
- Subnet
  - Sub Network (서브 네트워크)

 

Availability Zone과 Subnet:
- 가용 영역은 VPC의 논리적인 데이터 센터 개념 입니다. AZ는 다른 모든 AZ와 수 킬로미터에 상당하는 거리를 두고 물리적으로 분리되어 있습니다.
- Subnet(서브넷)은 가상 네트워크(VPC)안의 세부 네트워크 입니다.
- 더욱 효율적으로 네트워크를 관리할 수 있게 해주며 VPC안에 Subnet이 분리되어 있어 더욱 많은 네트워크 망을 구성할 수 있게 됩니다.

 

 

용어
- Public
  - 인터넷 접근이 가능한 공공의 대역(VPC 외부-내부 통신)
- Private
  - 인터넷 접근이 불가능한 사설의 대역(VPC 내부에서만 통신)

 

Public과 Private Subnet
- VPC Subnet을 Public과 Private으로 분리하여 구성할 수 있습니다.
- Public 서브넷에는 인터넷과 직접 통신이 필요한 리소스를 위치할 수 있습니다.
- Public 서브넷에 속한 리소스는 공인 IP주소 또는 Elastic IP를 통해 인터넷에서 직접 접근이 가능합니다.
- Private 서브넷에는 네트워크 개념에서 보안이 필요한 리소스를 위치 시킬 수 있습니다. DB 등이 있습니다.
- 공인 IP가 할당되지 않으며, Private IP 주소만 사용하여 내부 네트워크 안에서만 접근 가능합니다.
- Private Subnet은 NAT 게이트웨이나 NAT 인스턴스를 통해 인터넷으로부터 아웃바운드 트래픽을 전달받을 수 있습니다.

 

 

- Security Group(SG)
  - 보안 그룹
  - 허용 기반의 IP, Port 네트워크 트래픽 통제 서비스

 

Security Group:
- Security Group은 가상 머신(EC2 인스턴스 등) 및 다른 AWS 리소스 간의 트래픽을 제어하고 보호하기 위한 가상 방화벽 역할을 하는 네트워크 보안 그룹입니다.
- Security Group은 AWS 리소스의 인바운드(Inbound) 및 아웃바운드(Outbound) 트래픽을 관리하며, 특정 규칙을 통해 어떤 트래픽을 허용하거나 차단할지 설정합니다.

 

 

용어
- Routing Table
  - 네트워크 트래픽이 다음으로 가야할 경로를 지정하는 서비스

 

Routing Table:
- 네트워크 트래픽의 전달 경로를 결정하는 구성 요소입니다.
- 라우팅 테이블은 서브넷(Subnet)에 연결되어 있는데, 트래픽이 어떤 대상으로 전달되어야 하는지를 결정하는 데 사용됩니다.

 

 

용어
- Load Balancing
  - 네트워크 트래픽을 여러 대상 인스턴스로 분산해주는 기능
- Target Group
  - 로드밸런싱한 트래픽을 부하 분산할 대상 리소스 그룹

 

Elastic Load Balancer:
- 네트워크 트래픽을 분산시켜서 부하를 고르게 분산하고 가용성을 향상시키는 서비스입니다.
- 로드 밸런서는 애플리케이션의 성능 및 신뢰성을 향상시키기 위해 사용되며, 여러 가용 영역(Availability Zone)에 걸쳐 배치된 리소스들 사이의 트래픽 분산을 지원합니다.

 

3. AWS 보안 서비스 알아보기

 

용어
- IAM(Identity and Access Management)
  - AWS 계정 내에서 리소스에 대한 보안 및 엑세스 관리 서비스

 

IAM 구성 개념:
- 사용자 (Users): AWS 계정 내에서 작업하는 개별 사용자를 나타냅니다.
각 사용자는 고유한 액세스 권한을 가질 수 있으며, 개별적으로 식별됩
니다.
- 그룹 (Groups): 그룹은 하나 이상의 사용자를 묶어서 같은 권한을 부여할 수 있습니다. 이를 통해 여러 사용자에게 일괄적으로 액세스 권한을 관리할 수 있습니다.
- 역할 (Roles): 역할은 AWS 리소스에 일시적으로 액세스 권한을 부여하는 데 사용됩니다. 예를 들어 EC2 인스턴스에 역할을 할당하여 해당 인스턴스가 특정 AWS 서비스에 액세스할 수 있게 할 수 있습니다.
- 정책 (Policies): 정책은 어떤 사용자, 그룹 또는 역할이 특정 작업 또는 리소스에 액세스할 수 있는지를 정의합니다. 정책은 JSON 형식으로 작성되며, 권한을 세밀하게 제어하는 데 사용됩니다.

 

정책 설명 :
- 첫 번째 규칙 ("Deny"): "Effect"가 "Deny"로 설정되어 있으며, 모든 EC2 인스턴스(Resource: "*")에 대한 "실행" 및 "중지" 작업(Action)에 대한 액세스를 거부합니다. 이 정책을 사용자 또는 역할에 연결하면 모든 EC2 인스턴스에 대한 작업이 거부됩니다.
- 두 번째 규칙 ("Allow"): "Effect"가 "Allow"로 설정되어 있으며, 특정 EC2 인스턴스의 Amazon 리소스 이름(ARN)을 지정한 리소스에 대한 "실행" 및 "중지" 작업에 대한 액세스를 허용합니다. 이 규칙을 사용자 또는 역할에 연결하면 특정 EC2 인스턴스에 대한 작업만 허용됩니다.

 

IAM을 관리하는 방법:

- 원칙 기반 관리 (Policy-Based Management):
  - IAM 정책을 사용하여 사용자, 그룹, 역할의 권한을 세밀하게 제어합니다. 이 때 필요한 액세스만 허용하고, 불필요한 액세스는 거부합니다.
- 최소 권한 원칙 (Principle of Least Privilege):
  - 사용자와 역할에게 최소한의 권한만 부여합니다.
- 그룹화 (Grouping):
  - 비슷한 업무나 역할을 하는 사용자를 그룹으로 묶어 권한을 관리합니다. 그룹별 정책을 사용하여 일괄적으로 권한을 설정할 수 있습니다.
- 외부 IDP 연동 (Identity Provider Integration):
  - IDP (Identity Provider)와 연동하여 싱글 사인온 (SSO)을 구현하고, 사용자 관리 및 인증을 중앙 집중화 합니다.
- 비활성 사용자 및 권한 검토 (Inactive User and Permission Review):
  - 주기적으로 IAM 사용자와 그룹의 권한을 검토하고, 비활성 사용자의 액세스를 제거합니다. IAM 리소스를 불필요하게 사용하지 않도록 유지합니다.
- IAM 롤 및 역할 사용 (Use IAM Roles and Assume Role):
  - EC2 인스턴스 또는 Lambda 함수와 같은 AWS 리소스에 자격증명을 하드코딩 하지 않고 IAM 역할을 이용해 엑세스를 제어합니다.
- 액세스 기록 모니터링 (Access Logging and Monitoring):
  - AWS CloudTrail을 사용하여 모든 IAM 작업을 모니터링하고, 보안 이벤트를 검출합니다.
- IAM 리소스 태그 (Resource Tagging)
  - IAM에 태그를 지정하여 관리합니다.

 

IAM Accesskey 개념과 보안 가이드

 

용어
- Accesskey
  - AWS 리소스에 프로그래밍 방식으로 액세스하는 데 사용되는 보안 자격 증명

 

Accesskey 개념:
- API 호출, AWS CLI (Command Line Interface), SDK (Software Development Kit), 클라우드 서비스 및 다른 AWS 서비스와의 상호 작용에 사용됩니다.

 

Accesskey 구성:
- Access Key ID는 고유한 문자열로, IAM 사용자 또는 역할을 식별하는 데 사용됩니다. 대문자와 숫자로 구성되며, 20자리 문자열입니다.
- Secret Access Key는 Access Key ID와 연결된 보안 비밀번호로, 실제로 AWS 리소스에 액세스하는 데 사용됩니다. 이 비밀 키는 절대로 다른 사람과 공유해서는 안 되며, 안전하게 보관해야 합니다.

 

Accesskey 관리 방법:
- 액세스 키 생성: IAM 사용자 또는 역할을 만들 때 액세스 키를 생성할 수 있습니다. 각 사용자 또는 역할 당 최대 두 개의 액세스 키를 가질 수 있습니다.
- 비활성화 및 삭제: IAM 콘솔 또는 AWS CLI를 사용하여 액세스 키를 비활성화하거나 삭제할 수 있습니다. 보안 문제 또는 더 이상 필요하지 않을 때 비활성화 또는 삭제해야 합니다.
- 키 회전 (Key Rotation): 보안을 유지하기 위해 정기적으로 액세스 키를 변경해야 합니다. 새로운 액세스 키를 생성하여 교체하고 이전 액세스 키를 비활성화하는 순서로 진행합니다.
- 액세스 키 사용 모니터링: 액세스 키를 사용하는 활동을 모니터링하기 위해 AWS CloudTrail을 활성화하여 주기적으로 모니터링 및 조사를 합니다.

 

용어
- S3(Simple Storage Service)
  - AWS 스토리지 서비스로, 클라우드에서 데이터를 안전하게 저장하고 관리하는 데 사용됩니다.

 

S3 안전한 관리 방법:
- 버킷 및 객체 네이밍: 명확하고 의미 있는 버킷 및 객체 네이밍을 설정합니다.
- 접근 제어 관리: 객체 및 버킷에 대한 접근을 적절히 관리합니다. 필요한 최소한의 권한만 부여하고, IAM 정책, 버킷 정책 및 ACL을 사용하여 액세스 제어를 설정합니다.
- 암호화: S3 자체 암호화 기능 또는 AWS Key Management Service(KMS)를 사용하여 데이터 보호 수준을 높입니다.
- 버전 관리: 중요한 데이터의 경우 버전 관리를 활성화하여 이전 버전의 데이터를 복원할 수 있도록 합니다.
- 라이프사이클(Lifecycle) 규칙: 데이터의 수명 주기에 따라 데이터를 자동으로 관리하는 라이프사이클 규칙을 설정합니다. 이를 통해 데이터를 자동으로 삭제하거나 아카이브 처리할 수 있습니다.
- 모니터링 및 로깅: AWS CloudWatch 및 AWS CloudTrail과 같은 서비스를 사용하여 S3 활동을 모니터링하고 로깅합니다.
- 비용 관리: S3 비용을 관리하기 위해 스토리지 클래스 및 요금 설정을 고려하고, 불필요한 데이터를 정기적으로 삭제하거나 아카이브 처리합니다.
- 정기적 백업: 중요한 데이터의 백업을 정기적으로 수행하여 데이터 손실을 방지하세요.

 

S3 보안에서 가장 중요한 매커니즘
- ACL
  - S3 ACL은 AWS계정의 리소스에 대한 특정 사용자 및 그룹 권한을 부여하거나 거부하는데 사용
- Bucket Policy
  - Bucket Policy는 버킷의 모든 객체에 대한 액세스를 제어하며 주로 버킷 수준의 권한을 정의할 때 사용됩니다.

 

 

용어
- AWS WAF (Web Application Firewall)
  - AWS 에서 제공하는 웹 애플리케이션 방화벽 입니다.

 

AWS WAF 에 대한 이해
- 웹 애플리케이션 보호 : AWS WAF를 사용하여 웹 애플리케이션을 다양한 보안 위협으로부터 보호할 수 있습니다. 이 서비스는 SQL 인젝션, 크로스 사이트 스크립팅(XSS), 크로스 사이트 요청 위조(CSRF) 및 기타 웹 공격을 탐지하고 차단합니다.
- 사용자 정의 규칙 : AWS WAF는 사용자가 자체 규칙을 생성하여 특정한 보안 요구사항에 맞게 웹 트래픽을 필터링하거나 차단할 수 있도록 지원합니다. 이를 통해 애플리케이션에 특화된 보안 정책을 쉽게 적용할 수 있습니다.
- 인티그레이션 : AWS WAF는 다른 AWS 서비스와 원활하게 통합되므로, AWS 클라우드 환경에서 보안 정책을 자동화gk고 관리할 수 있습니다. 예를 들어, AWS CloudFront나 AWS Application Load Balancer와 쉽게 통합하여 웹 애플리케이션 트래픽을 필터링할 수 있습니다.
- 확장성 : 클라우드의 큰 특징 중 하나는 확장성이 가능하다는 점입니다. 트래픽이 늘어났을 때, 수용할 수 있는 장비의 스펙이나 수가 증가가 자유롭고 빠르다는 점인데, AWS WAF도 이 점을 함께 충족할 수 있습니다.

 

 

용어
- AWS Shield Advanced
  - AWS 에서 제공하는 DDoS 서비스 입니다.

 

AWS Shield Advanced 에 대한 이해
- DDoS 보호: AWS Shield Advanced는 DDoS 공격으로부터 애플리케이션을 보호합니다. 이 서비스는 대규모 네트워크 및 애플리케이션 계층 DDoS 공격을 식별하고 차단하는 데 도움을 줍니다.
- 가시성: AWS Shield Advanced는 애플리케이션 트래픽에 대한 가시성을 제공합니다. DDoS 공격 및 웹 애플리케이션 보안 이벤트를 모니터링하고 식별할 수 있으며, AWS WAF와 통합하여 웹 애플리케이션 보안을 강화할 수 있습니다.
- 실시간 공격 알림: AWS Shield Advanced는 실시간으로 공격 알림을 제공합니다. 이를 통해 공격이 발생하는 즉시 대응할 수 있습니다.
- 웹 애플리케이션 보안: AWS Shield Advanced는 AWS WAF와 통합되어 웹 애플리케이션 취약성을 탐지하고 차단하는 데 도움을 줍니다. 이를 통해 웹 애플리케이션 측면에서의 공격을 방어할 수 있습니다.
- 보안 엔지니어 지원: AWS Shield Advanced 구독자에게는 AWS의 보안 엔지니어 팀의 지원도 제공됩니다. 이 팀은 공격 대응 및 보안 전문 지원을 제공합니다.

 

 

용어
- AWS Guardduty
  - AWS 에서 제공하는 지능형 위협 탐지 서비스입니다.

 

AWS Guardduty 에 대한 이해
- 보안 위협 탐지: GuardDuty는 AWS 계정에서 활성화된 서비스와 리소스를 모니터링하며 다양한 보안 위협을 탐지합니다. 이러한 위협은 외부 공격, 내부 위협, 권한 상실, 데이터 이탈 등과 관련될 수 있습니다.
- 알려진 공격 패턴 감지: GuardDuty는 알려진 공격 패턴 및 해킹 도구를 사용하는 활동을 식별합니다.
- 비정상적인 활동 탐지: 사용자 및 리소스의 활동 패턴을 모니터링하고, 이상 징후를 감지하여 계정 내의 비정상적인 활동을 식별합니다. 예를 들어, 이상한 API 호출이나 특정 사용자의 비정상적인 접근을 탐지할 수 있습니
다.
- 통합 및 경고: GuardDuty는 AWS CloudWatch 및 AWS CloudTrail과 통합되어 중앙 집중식 모니터링 및 로깅을 지원하며, Amazon SNS 등의 서비스를 통해 경고를 보내거나 이벤트를 다른 AWS 서비스로 전달할 수 있습니다.
- 사용자 정의 규칙: ThreatList를 만들어 조직 고유의 IoC를 적용할 수 있습니다.

 

 

용어
- AWS Network Access Control List
  - NACL(네트워크 액세스 제어 목록, Network Access Control List)은 Amazon Virtual Private Cloud(VPC) 환경에서 네트워크 트래픽을 제어하는 데 사용되는 서비스입니다.

 

AWS NACL 에 대한 이해
- 서브넷 수준 보안: NACL은 서브넷 단위로 적용되며, 각 서브넷에 대한 인바운드 및 아웃바운드 트래픽을 제어합니다. 서브넷 내의 모든 리소스에 대한 공통 규칙을 적용합니다.
- 순서 기반 규칙: NACL은 규칙을 순서대로 평가하며, 첫 번째 일치하는 규칙을 적용합니다. 따라서 규칙의 순서가 중요합니다.
- 기본 NACL: 각 VPC에는 기본 NACL이 있으며 모든 규칙이 거부로 설정되어 있습니다. 따라서 사용자 지정 NACL을 구성하지 않으면 모든 트래픽이 차단됩니다.
- 인바운드 및 아웃바운드 규칙: NACL은 인바운드 규칙과 아웃바운드 규칙을 지원합니다. 인바운드 규칙은 외부에서 VPC로 들어오는 트래픽을 제어하며, 아웃바운드 규칙은 VPC에서 외부로 나가는 트래픽을 제어합니다.
- 규칙의 허용 및 거부: 각 규칙은 특정 IP 주소 범위 또는 포트와 연결됩니다. 사용자는 이러한 규칙을 사용하여 어떤 트래픽을 허용하고 어떤 트래픽을 거부할지 정의할 수 있습니다.

 

 

Security Group 과 NACL의 차이점

 

용어
- AWS Config
  - AWS 리소스의 구성을 추적하고 모니터링하여 리소스 구성 및 변경 사항을 관리하고 보안 및 규정 준수를 준수하기 위한 서비스입니다.

 

AWS Config 에 대한 이해
- 리소스 추적: AWS Config는 AWS 계정 내의 모든 리소스의 현재 및 이전 구성 정보를 추적합니다. 이 정보는 리소스 유형, 상태, 속성 등을 포함하며 변경 사항을 모니터링하는 데 사용됩니다.
- 구성 변경 감지: AWS Config는 리소스 구성 변경 사항을 감지하고 관련 정보를 기록합니다. 이로써 언제, 어떤 변경이 발생했는지를 추적할 수 있으며, 변경사항의 원인을 파악할 수 있습니다.
- 이력 관리: AWS Config는 리소스 구성 변경에 대한 이력을 제공합니다. 변경 내역은 저장소 (Amazon S3 버킷)에 저장되므로 관리 및 검색이 용이합니다.
- 규정 준수 검사: AWS Config를 사용하여 AWS 리소스가 회사의 보안 규정 및 규정 준수 요구 사항을 준수하는지 확인할 수 있습니다. AWS Config 규칙을 활용하여 규정 준수 규칙을 설정하고 평가할 수 있습니다.
- 비용 및 리소스 최적화: AWS Config는 리소스 사용량 추적과 리소스 최적화에 도움이 되는 정보를 제공합니다. 예를 들어, 미사용 리소스를 식별하거나 비용이 많이 드는 리소스를 최적화하는 데 도움이 됩니다,

 

 

기술 스택
- AWS Config
- Lambda
- Cloudwatch Event Bridge
- SNS

 

 

용어
- AWS Trusted Advisor
  - AWS 인프라 및 리소스 사용에 대한 실시간 권장 사항과 모범 사례를 제공하는 자동화된 품질 및 보안 검사 도구입니다. Trusted Advisor는 AWS 계정의 다양한 측면에서 최적화 및 개선 기회를 식별하고 리소스 관리 및 비용 절감을 지원합니다.

 

AWS Trusted Advisor 에 대한 이해
- 비용 최적화: Trusted Advisor는 비용 관리 및 최적화를 위한 다양한 권장 사항을 제공합니다. 예를 들어, 미사용 리소스 식별, 예약 인스턴스 추천, 리소스의 잘못된 용량 설정 등을 포함합니다. 이를 통해 AWS 비용을 절감하고 비용 효율성을 높일 수 있습니다.
- 보안 그룹 및 네트워크 규칙 검사: Trusted Advisor는 보안 관련 권장 사항을 제공하여 보안 그룹 및 네트워크 규칙 설정에 대한 개선 기회를 식별합니다. 예를 들어, 불필요한 포트를 열거나 액세스 권한을 최소한으로 제한하는 권장 사항을 제공합니다.
- 성능 최적화: 이 카테고리에서 Trusted Advisor는 리소스 성능에 관한 권장 사항을 제공합니다. 예를 들어, 리소스의 로드 밸런서 또는 데이터베이스 설정을 최적화하거나, 리소스가 효과적으로 활용되도록 돕는 권장 사항을 제공합니다.
- 서비스 한도: Trusted Advisor는 AWS 계정의 서비스 한도를 모니터링하고 규모를 늘리거나 필요한 경우 AWS Support와의 연락을 통해 제한을 늘릴 수 있는 권장 사항을 제공합니다.

 

4. AWS 보안 모니터링 알아보기

 

용어
- AWS Cloudtrail: AWS 계정 내에서 발생하는 API 활동 및 리소스 변경 사항을 기록하고 모니터링하는 데 사용됩니다. CloudTrail을 사용하면 보안 감사, 규정 준수, 장애 분석 등 다양한 목적으로 AWS 환경을 추적할 수 있습니다.

 

AWS Cloudtrail에 대한 이해
- 이벤트 로깅: CloudTrail은 AWS 계정 내의 다양한 서비스 및 리소스에서 발생하는 이벤트를 로깅합니다. 이벤트는 API 호출, 관리 작업, 리소스 변경 및 다른 활동을 포함합니다.
- 로그 저장 위치: CloudTrail 로그는 Amazon S3 버킷에 저장됩니다. 이러한 로그는 보안을 유지하고 장애 시 복구를 위해 안전하게 저장됩니다.
- 로그 형식: 로그는 JSON 또는 CloudWatch Logs 형식으로 제공됩니다. JSON 형식의 로그는 효과적인 검색 및 분석을 위해 구조화되어 있습니다.
- 보안 및 규정 준수: CloudTrail을 사용하면 계정 활동을 모니터링하고, 보안 이슈를 탐지하며, 규정 준수를 유지할 수 있습니다. 예를 들어 권한 부여 문제, 비인가된 API 호출 등을 탐지할 수 있습니다.
- 감사 추적: 감사 추적(Audit Trail)은 특정 리소스 또는 계정에서 발생한 모든 이벤트를 기록하는 기능입니다. 이를 통해 특정 이벤트의 원인을 추적하거나 장애 분석을 수행할 수 있습니다.
- 로그 파일 암호화: CloudTrail 로그 파일은 기본적으로 암호화되어 저장됩니다. 이것은 데이터 보안을 강화하는 데 도움이 됩니다.

 

용어
- AWS Cloudwatch: AWS 클라우드 환경에서 리소스 및 애플리케이션의 모니터링, 로깅 및 알림을 제공하는 서비스입니다. CloudWatch를 사용하면 AWS 리소스의 상태 및 성능을 지속적으로 모니터링하고, 이 데이터를 기반으로 경보를 설정하거나 자세한 분석을 수행할 수 있습니다.

 

AWS Cloudwatch에 대한 이해
- 지표 (Metrics): 지표는 모니터링 대상인 AWS 리소스 또는 애플리케이션의 성능 및 상태 정보를 나타내는 데이터 포인트입니다. 예를 들어, EC2 인스턴스의 CPU 사용률, S3 버킷의 객체 수 등이 지표가 될 수 있습니다.
- 로그 (Logs): CloudWatch Logs는 애플리케이션, 서비스 또는 AWS 리소스에서 생성되는 로그 데이터를 수집하고 저장하는 데 사용됩니다. 예를 들어, EC2 인스턴스 또는 Lambda 함수의 로그 데이터를 수집할 수 있습니다.
- 알람 (Alarms): CloudWatch 알람은 정의한 지표 값이 특정 임계값을 초과하거나 미달할 때 알림을 생성하도록 설정할 수 있습니다. 이를 통해 문제를 신속하게 감지하고 대응할 수 있습니다. 알람은 이메일, SMS, SNS (Simple Notification Service), Lambda 함수 실행 등과 같은 여러 종류의 알림 작업과 연동할 수 있습니다.
- 이벤트 (Events): CloudWatch 이벤트는 AWS 리소스 및 서비스 간의 이벤트 및 상태 변경을 감지하고, 이를 기반으로 자동화된 작업을 트리거할 수 있는 이벤트 라우팅 서비스입니다. Lambda 함수나 SNS 주제와 같은 리소스와 연동하여 사용됩니다.

 

5. AWS 침해사고 사례 알아보기

 

AWS 자격증명 탈취에 의한 침해사고

 

Spring Boot 애플리케이션 단에서의 조치 방법

- Actuator endpoint는 all disable 상태에서 필요한 것만 include 하여 화이트리스트 형태로 운영함

  - Actuator는 shutdown endpoint를 제외한 나머지 endpoint는 enable 되어있는 것이 기본 설정이지만, 이 기본 설정 그대로 유지할 경우, 불필요한 endpoint가 활성화되어 추후 잠재적 위험이 될 수 있어, 기본 설정을 따르지 않겠다는 설정을 해두어야함

- Actuator는 서비스 운영에 사용되는 포트와 다른 포트를 사용함

  - 서비스를 운영하는 포트와 다른 포트로 Actuator를 사용할 경우, 공격자들의 스캔으로부터 1차적으로 보호받을 수 있다는 장점이 있음, 이에 management.server.port 속성을 통해 서비스를 운영하느 포트와 다른 포트로 설정하여 사용할 수 있음

- Actuator Default 경로를 사용하지 않고, 경로를 변경하여 운영함

  - Actuator 서비스에서 주로 사용하는 알려진 기본 경로(/actuator/[endpoint]) 대신 다른 경로를 사용함으로써 외부 공격자의 스캐닝으로부터 보호받을 수 있음, management.endpoints,web.base-path 속성을 통해 설정이 가능하며, 유추하기 어려운 문자열의 경로로 설정함으로써 보안성을 향상시킬 수 있음