brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jan 12. 2023

25탄-(요약) AWS 보안 - 운영 관리

보안 그룹 등 인프라  운영  관리 부분을 확인 점검하자.

내용은 확인하며 계속 업데이트됩니다.



<1> 보안 그룹의  ANY허용  확인 점검

<2> 네트워크 ACL  ANY허용  확인 점검

<3> 라우팅 테이블 점검

<4> S3  버킷 보안 점검

<5> RDS 서브넷 가용 영역 관리

<6> EBS 볼륨 암호화

<7> RDS 암호화 설정

<8> S3 암호화 설정

<9> 통신 구간 암호화

<10> CloudTrail  로그  암호화

<11> CloudWatch  로그  암호화 

<! 2> 사용자 계정 로깅 설정

<13> 인스턴스 로깅 설정

<14>  RDS 로깅 설정

<15> S3 버킷 로깅 설정

<16> VPC 플로 로깅 설정

<17> 로그 보관 기간 설정

<18> 백업 사용 여부

<20> 체크 리스트



<1>  보안 그룹의  ANY허용  확인 점검


1

보안그룹 중 ANY로 허용된 부분이 있는지 확인

0.0.0.0/0에서 접속 허용 되어 있는지 확인

특히 ssh의 경우 ANY(

0.0.0.0)에서

 허용되면 안 된다.  특정 IP에서만 접속되도록   수정해야 한다.



2

Admin서버는 특별히 별도 점검

외부에서 접속 여부 확인 - 외부에서 접속이 되면 안 된다.

0.0.0.0/0에서 접속 허용 되어 있는지 확인. 


3

보안 그룹은 상태 저장 방식이다. StateFull.

유입 상태를 저장하므로 허용만 해주면 된다.




<2> 네트워크 ACL  ANY허용  확인 점검


1

Network ACL의 경우 기본은 모두 허용이다.

따로 설정하지 않으면 모두 허용된다.

필요한 포트만 허용 허는 정책을 적용하자.


2

상제 비저장 방식이다. 

Stateless 방식이라  상태를 저장하지 않는다.

그래서, 인바운드와 아웃바운드 모두 열어주어야 한다.



<3> 라우팅 테이블 점검


불필요한 라우팅 테이블이 있는지 점검.


1

디폴트 라우팅 테이블이 서브넷에 반영되어, DB 서브넷에  0.0.0.0/0  IGW 등  인터넷이 되도록 설정되어 있지는 않은지 점검


2

DB 서브넷에  0.0.0.0/0   NATGW 등  인터넷이 되도록 설정되어 있지는 않은지 점검


3

이런 부분은  CloudFormation이나 테라폼, 랜딩존으로 자동화하면  수동 점검이 필요 없고 해결될 문제임



<4> S3  버킷 보안 점검


1

퍼블릭 액세스가 차단되어 있는지 확인한다.

외부에  노출하지 않는 경우  퍼블릭 액세스가 차단되어 있어야 한다.


2

예외)

외부에 S3로  Static 사이트를 운영하는 경우는 public 허용이 필요하다.



<5> RDS 서브넷 가용 영역 관리


1

RDS는  Private-DB Subnet에 설치되어야 한다.

외부와 통신이 되어서는 안 된다.


2

RDS  서브넷 그룹 세부 정보에서, 불필요한 서브넷에  존재하는지 확인하자.




<6> EBS 볼륨 암호화


EC2 인스턴스 생성 시 EBS 볼륨 암호화를 할 수 있다.

암호화  활성화 후 KMS키 값을 추가하여 설정해야 한다.



<7> RDS 암호화 설정


로그, 백업, 스냅 셔 암호화가 가능하다.

암호화 활성화를 확인하자.



<8> S3 암호화 설정


1

Amazon S3 버킷에 대한  디폴트 값이  서버 측 암호화 설정이 자동으로 되는 것으로 변경되었다.


Amazon S3 버킷에 대한 기본 서버 측 암호화 동작 설정

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/bucket-encryption.html


2

실습

암호화 사용하여 서버에서 S3로 데이터 올리기, 내리기

https://brunch.co.kr/@topasvga/1791



<9> 통신 구간 암호화


중요 정보 전송 시 암호화 정책 수립

공공기관 데이터 이관 시 암호회된 통신  수단 사용 필요 (VPN, SSH, SFTP 사용)



<10>  CloudTrail  로그  암호화


1

중요/주요 정보에 대한 암호화 기준이 별도 존재하는 경우 해당 정보에 대해서도 암호화를 적용해 시스템을 운영해야 한다.


2

 CloudTrail  추적 속성 활성화 후, 고객 관리형 AWS KMS키 추가 설정.




<11>  CloudWatch  로그  암호화 


1

중요/주요 정보에 대한 암호화 기준이 별도 존재하는 경우 해당 정보에 대해서도 암호화를 적용해 시스템을 운영해야 한다.


2

Cloudwatch 로그 그룹 생성 및 KMS KEY ARN 설정

서비스 > CloudWatch  로그 그룹 생성

로그 그룹 생성 시 사전에 생성한 KSM Key ARN을 입력한다.




<12> 사용자 계정 로깅 설정


CloudTrail  대시보드 > 추적 설정 > 새 S3 버킷 설정 

관리 이벤트 체크

검토 및 생성



<13> 인스턴스 로깅 설정


1

Cloudwatch logs는 EC2, CloudTrail , Route53 등  기타 소스에서 로그 파일을 모니터링, 저장, 액세스가능하다.


2

EC2에  CloudWatch  에이전트 설치

CloudWatch 내 로그 그룹 확인

CloudWatch 내 로그 스트림 확인



<14>  RDS 로깅 설정


1

RDS  > 로그 내보내기 옵션에서 로그 모두 체크한다.


2

CloudWatch 내 로그 그룹 확인

RDSMetrics

CloudWatch 내 로그 스트림 확인


3

최초 DB생성 시 로그가 다 남도록 체크하자.

로그 스트림 확인 하자.



<15> S3 버킷 로깅 설정


1

디폴트로 서버 액세스 로그를 수집하지 않는다.

콘솔로 액세스 로깅을 활성화하자.


2

CloudTrail 대시보드 >  일반 세부정보에서  추적로그 위치 확인


3

CloudTrail 추적로그 S3버킷 위치 접근?

S3 >  추적 로그 클릭 > 속성  > 서버 로깅   비활성화를   활성화로 변경한다.


4

S3 버킷 로깅 설정이  활성화 인지 확인한다.



<16> VPC 플로 로깅 설정


1

VPC 플로로깅 활성화 확인

 VPC  > 플로우 로그 


2

VPC에서 발생하는 트래픽에 대해 정보를 수집할 수 있다.

허용, 차단 로그 확인 가능


3

설정법




<17> 로그 보관 기간 설정


1

CloudWatch Logs에 저장되는 로드는 기본 무기한 저장이다.

비용 관리 측면에서도 기간을 정의하는 게  맞다.


2

CloudWatch  logs  > 서비스 로그는 최소 1년 이상 보관으로 설정하자.



<18> 백업 사용 여부


1

백업 정책이 존재하는지 확인

백업 및 복구 절차 수립 확인, 담당자 확인


2

주요 데이터에 대해서  백업을 하고  있는지 확인




<20> 체크 리스트


<1> 보안 그룹의  ANY허용  확인 점검

<2> 네트워크 ACL  ANY허용  확인 점검

<3> 라우팅 테이블 점검

<4> S3  버킷 보안 점검

<5> RDS 서브넷 가용 영역 관리

<6> EBS 볼륨 암호화

<7> RDS 암호화 설정

<8> S3 암호화 설정

<9> 통신 구간 암호화

<10> CloudTrail  로그  암호화

<11> CloudWatch  로그  암호화 

<! 2> 사용자 계정 로깅 설정

<13> 인스턴스 로깅 설정

<14>  RDS 로깅 설정

<15> S3 버킷 로깅 설정

<16> VPC 플로 로깅 설정

<17> 로그 보관 기간 설정

<18> 백업 사용 여부



같이 볼만한 자료

https://brunch.co.kr/@topasvga/2929



감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari