개발하는지호

[4주차] AWS 환경에서 보안 이해와 자동화 구성

by 개발하는지호

Object. AWS 환경에서 보안 이해와 자동화 구성

Key Result : AWS 클라우드 보안 가이드 확인하여 대응방안 정리 및 해당 가이드 대로 실습 진행


 

실습 목표 : IAM 사용자 및 역할 정책을 변경 했을 때, 관리자가 메일을 받을 수 있도록 자동화 구성 및 보안 가이드 충족 확인

 

[아키텍쳐 구성도]

 

  1. 기본 아키텍쳐 구성
    1. VPC 10.0.0.0/16 생성
    2. 서브넷 10.0.0.0/24 생성
    3. 외부 통신을 위한 인터넷 게이트웨이 생성 및 라우팅 테이블에 인터넷 게이트웨이 추가
    4. EC2 생성
    5. S3 생성 및 권한 설정
    6. VPC 엔드포인트 생성하여 S3 통신
    7. SSM(Session Manager)로 EC2 접근 구현
    8. IAM User(사용자) 생성
      • 최소한의 권한을 부여하기 위해 root 계정이 아닌, IAM User 를 생성
    9. IAM User(사용자) SSM 접근을 위한 정책권한 설정 (SSM : AmazonSSMFullAccess)
    10. EC2 SSM 연결을 위한 역할 및 S3 접근을 위한 역할 생성 (S3 : AmazonS3FullAccess, SSM : AmazonSSMManagerInstanceCore)
    11. IAM User (사용자) Access Key 생성
    12. AWS CLI 설치 및 설정
    13. Session Manager Plugin 설치 (CLI로 EC2 SSM 접근 하기 위함)
      • ssm plugin, brew로 설치
    14. AWS CLI로 SSM 접근이 되는 지 확인
      • 접근 확인
    15. 접근 성공 확인 후, EC2 외부 통신 및 S3 접근 확인
  2. 로깅 자동화 구축(IAM 변경 사항 이메일로 전달)
    1. CloudTrail 로그 저장용 S3 생성
    2. CloudTrail 활성화 및 실시간 로깅 확인
    3. CloudTrail 다중 리전 추적 활성화
      • IAM 변환은 미국 동부 리전에서만 확인이 되기에 서울 리전 외에도 추적해야함
    4. SNS 주제(Topic) 생성
    5. 프로토콜 이메일로 설정 후, 전달 할 이메일 주소 지정

    6. 해당 이메일 메일에서 SNS 승인
    7. 미국 동부(버지니아 북부) 리전에 EventBridge 생성
      • IAM 변경사항 추적은 미국 동부(버지니아 북부)에서만 확인이 되므로 탐지하려면 해당 리전에 생성해야한다.
    8. EventBridge 패턴 생성
      • 이벤트 패턴 코드
    9. EventBridge 대상 (Target)을 위에서 생성한 SNS로 지정
    10. IAM 정책 추가 및 삭제 해서 메일이 정상적으로 오는지 확인
      • IAM 정책 변경시 발생한 SNS 메일
    11. 메일이 정성적으로 확인이 되므로 구축완료

 

[보안 가이드 준수 목록]

 

1. 계정관리

  • 1.1 사용자 계정 관리
    • 진단 기준 : 관리자 권한을 보유한 다수 계정이 존재하지 않고 불필요한 계정이 존재하지 않아야 한다.
    • 진단 결과 : 양호
    • 실습 내용 : https://jiholine10.tistory.com/700
 

클라우드 보안 가이드 - 계정 관리 [1-1] -

1.1 사용자 계정 관리분류 : 계정 관리중요도 : 상항목명 : 사용자 계정 관리 항목 설명 :모든 AWS 리소스는 AWS 계정의 소유이고, 리소스 생성 또는 액세스 권한은 권한 정책에 따라 결정됩니다. 계

jiholine10.tistory.com

 

 

 

  • 1.2 IAM 사용자 계정 단일화 관리
 

클라우드 보안 가이드 - 계정 관리 [1-2] -

1.2 IAM 사용자 계정 단일화 관리분류 : 계정 관리중요도 : 상항목명 : IAM 사용자 계정 단일화 관리 항목 설명 : 모든 AWS 리소스는 AWS 계정의 소유이고, 리소스 생성 또는 액세스 권한은 권한 정책에

jiholine10.tistory.com

 

 

  • 1.5 Key Pair 접근 관리
 

클라우드 보안 가이드 - 계정 관리 [1-5] -

1.5 Key Pair 접근 관리 분류 : 계정 관리중요도 : 상항목명 : Key Pair 접근 관리 항목 설명 : EC2는 키(Key)를 이용한 암호화 기법을 제공한다. 해당 기법은 퍼블릭/프라이빗 키를 통해 각각 데이터의 암

jiholine10.tistory.com

 

 

  • 1.6 Key Pair 보관 관리
    • 진단 기준 : Key Pair(PEM) File의 보관 위치가 쉽게 유추할 수 없는 공간에 보관되어 있어야 한다.
    • 진단 결과 : 취약
    • 대응 방안 : Session Manager 방식을 채택하여 키 이용을 통한 취약점으로 부터 벗어날 수 있다.
    • 실습 내용 : https://jiholine10.tistory.com/711
 

클라우드 보안 가이드 - 계정 관리 [1-6] -

1.6 Key Pair 보관 관리 분류 : 계정 관리중요도 : 상항목명 : Key Pair 보관 관리 항목 설명 : EC2는 키(Key)를 이용한 암호화 기법을 제공한다. 해당 기법은 퍼블릭/프라이빗 키를 통해 각각 데이터의 암

jiholine10.tistory.com

 

 

  • 1.8 Admin Console Access Key 활성화 및 사용주기 관리
    • 진단 기준 : AWS Admin Console 계정에 Access Key가 존재하지 않고 IAM 사용자 계정에 대한 Access Key 사용, 사용 주기가 60일 이내일 경우
    • 진단 결과 : 양호
    • 실습 내용 : https://jiholine10.tistory.com/712
 

클라우드 보안 가이드 - 계정 관리 [1-8] -

1.8 Admin Console 계정 Access Key 활성화 및 사용주기 관리분류 : 계정 관리중요도 : 상항목명 : Admin Console 계정 Access Key 활성화 및 사용주기 관리 항목 설명 : Access Key는 AWS의 CLI 도구나 API를 사용할 때

jiholine10.tistory.com

 

 

2. 권한 관리

  • 2.1 인스턴스 서비스 정책 관리
    • 진단 기준 : 인스턴스 서비스 IAM 사용 권한이 각각 서비스 역할에 맞게 설정되어 있다.
    • 진단 결과 : 양호
    • 실습 내용 : https://jiholine10.tistory.com/701
 

클라우드 보안 가이드 - 권한 관리 [2-1] -

2.1 인스턴스 서비스 정책 관리분류 : 권한 관리중요도 : 상항목명 : 인스턴스 서비스 정책 관리 항목 설명 : AWS 인스턴스 서비스(EC2, RDS, S3 등)의 리소스 생성 또는 액세스 권한은 권한 정책에 따

jiholine10.tistory.com

 

 

  • 2.2 네트워크 서비스 정책 관리
    • 진단 기준 : 네트워크 서비스 IAM 사용 권한이 각각 서비스 역할에 맞게 설정되어 있다.
    • 진단 결과 : 양호
    • 실습 내용 : https://jiholine10.tistory.com/702
 

클라우드 보안 가이드 - 권한 관리 [2-2] -

2.2 네트워크 서비스 정책 관리분류 : 권한 관리중요도 : 상항목명 : 네트워크 서비스 정책 관리 AWS 네트워크 서비스(VPC, Route 53, Direct Connect 등)의 리소스 생성 또는 액세스 권한은 권한 정책에 따

jiholine10.tistory.com

 

 

  • 2.3 기타 서비스 정책 관리
    • 진단 기준 : 기타 서비스 IAM 사용 권한이 각각 서비스 역할에 맞게 설정되어 있다.
    • 진단 결과 : 양호
    • 실습 내용 : https://jiholine10.tistory.com/703
 

클라우드 보안 가이드 - 권한 관리 [2-3] -

2.3 기타 서비스 정책 관리분류 : 권한 관리중요도 : 상항목명 : 기타 서비스 정책 관리 AWS 기타 서비스(CloudWatch, CloudTrail, KMS 등)의 리소스 생성 또는 액세스 권한은 권한 정책에 따라 결정된다. 계

jiholine10.tistory.com

 

 

 

3. 가상 리소스 관리

  • 3.1 보안 그룹 인/아웃바운드 ANY 설정 관리
    • 진단 기준 : 보안 그룹 내 인/아웃바운드의 포트가 ANY로 허용되어 있지 않아야 한다.
    • 진단 결과 : 취약
    • 대응 방안 : 특정 범위의 포트로 제한하는 것이 보안 취약점에 있어 안전하다.
    • 실습 내용 : https://jiholine10.tistory.com/704
 

클라우드 보안 가이드 - 가상 리소스 관리 [3-1] -

3.1 보안 그룹 인/아웃바운드 ANY 설정 관리분류 : 가상 리소스 관리중요도 : 상항목명 : 보안 그룹 인/아웃바운드 ANY 설정 관리 항목 설명 : VPC에서의 보안 그룹은 EC2 인스턴스에 대한 인/아웃바운

jiholine10.tistory.com

 

 

  • 3.2 보안 그룹 인/아웃바운드 불필요 정책 관리
    • 진단 기준 : 보안 그룹 인/아웃바운드 규칙 내 불필요한 정책(Source, Destination)이 존재하지 않아야 한다.
    • 진단 결과 : 취약
    • 대응 방안 : 특정 범위의 IP로 제한하는 것이 보안 취약점에 있어 안전하다.
    • 실습 내용 : https://jiholine10.tistory.com/705
 

클라우드 보안 가이드 - 가상 리소스 관리 [3-2] -

3.2 보안 그룹 인/아웃바운드 불필요 정책 관리분류 : 가상 리소스 관리중요도 : 상항목명 : 보안 그룹 인/아웃바운드 불필요 정책 관리 항목 설명 : VPC에서의 보안 그룹은 EC2 인스턴스에 대한 인/

jiholine10.tistory.com

 

 

 

4. 운영 관리

  • 4.1 EBS 및 볼륨 암호화 설정
    • 진단 기준 : EBS 및 볼륨 리소스에 암호화가 활성화되어 있다.
    • 진단 결과 : 취약
    • 대응 방안 : 직접 기존 볼륨의 암호화 설정만 켜는 것은 불가능하다. 따라서 아래 순서로 암호화된 볼륨으로 전환할 수 있다. 
      1. 스냅샷 생성
        • 암호화 되지 않은 원본 볼륨에서 스냅샷을 만든다.
      2. 스냅샷 복사 시 암호화 설정
        • AWS 콘솔 또는 CLI로 해당 스냅샷을 복사하면서 encrypted 플래그를 켠다.
      3. 암호화된 볼륨 생성 및 교체
        • 복사된(암호화된) 스냅샷으로부터 새 EBS 볼륨을 생성한 뒤, 인스턴스에 연결되어 있던 기존 볼륨을 분리하고 새 볼륨을 연결한다.
          • 루트 볼륨인 경우 인스턴스를 중지한 뒤 작업해야 한다.
      4. (선택) AMI 생성 후 재배포
        • 간편하게, 암호화되지 않은 인스턴스에서 AMI(이미지)를 생성 -> 복사 시 암호화 -> 해당 AMI로 새 인스턴스를 띄우는 방법도 있다.

 

  • 4.3 S3 암호화 설정
    • 진단 기준 : Amazon S3 키 (SSE-S3)로 서버 측 암호화 사용 또는 SSE-KMS로 서버 측 암호화가 설정되어 있다.
    • 진단 결과 : 양호
    • 실습 내용 : https://jiholine10.tistory.com/708
 

클라우드 보안 가이드 - 운영 관리 [4-3] -

4.3 S3 암호화 설정분류 : 운영 관리중요도 : 중항목명 : S3 암호화 설정 항목 설명 : 버킷 기본 암호화 설정은 S3 버킷에 저장되는 모든 객체를 암호화 되도록 하는 설정이며 Amazon S3 관리형 키 (SSE-S3

jiholine10.tistory.com

 

 

참고자료:

 

1. SK쉴더스 클라우드 시큐리티 보안 가이드.pdf

2. AWS 공식 문서

3. https://twodragon.tistory.com/category

블로그의 정보

DevSecOps

개발하는지호

활동하기