Study/Cloud

[AWS] 계정 보안 향상을 위한 Config

AC 2019. 2. 18. 18:53





처음 AWS 계정을 생성한 후 바로 서비스를 구성하여 사용할 수도 있지만, 사전에 몇 가지 서비스를 활ㅇ성화 시켜 AWS 계정을 더욱 안전하게 사용할 수 있다. 이번 장에서는 Cloudtrail과 Config 서비스슬 사용하여 해당 계정 내의 각종 감사 데이터를 수집하도록 설정하고, MFA설정을 통해 계정 보안을 향상 시키는 방법을 배워보자.



3-1 Cloudtrail 설정

Cloudtrail은 해당 AWS 계정에서 수신된 모든 API Call을 기록, 수집하는 서비스이다. 최초 AWS 계정 생성 직후에 활성화하는 것이 좋으며, 원시 데이터(Raw data)는 S3 버킷 내에 객체 형태로 저장된다.


[AWS Management Console] > [CloudTrail] > [Get Started Now]



Cloudtrail 활성화


Cloudtrail 로그 내역 확인



Cloudtrail 로그는 위와 같이 사용자, 리전, 이벤트 이름, 시간, 사용자 IP 등의 정보를 담고 있다.


[AWS Management Console] > [CloudTrail] > [API activity history] > [Event]



CloudTrail 로그 형태



AWS Management Console이 아닌 S3 Bucket에 저장된 원시 데이터를 통해서 로그를 확인할 수 있다.

로그를 확인하면 다음과 같이 JSON 형식으로 관련 정보가 저장되어 있다.



여기서 잠깐 Q&A


Q. Cloudtrail은 제 AWS 계정으로 들어오는 모든 API Call을 로깅하나요?


A. 아니다. 특정 AWS 서비스의 경우 Cloudtrail의 로깅 범위에서 재외될 수 있다. 또한 하나의 AWS 서비스 내에서도 API 종류에 따라 로깅이 되는 항목과 로깅이 되지 않는 항목이 있다. 다만 일반적으로 사용하는 주요 AWS 서비스(EC2, VPC 등)를 포함한 대부분의 AWS 서비스는 로깅을 지원하며, 그 로깅 범위도 지속적으로 확대되고 있다.


Q. Cloudtrail 로그가 차후에 위/변조될 가능성은 없나요?


A. Cloudtrail 로그는 S3에 파일 형태로 저장되며, 따라서 S3 권한이 있는 사용자가 변조할 가능성이 존재한다. AWSD에서는 이런 경우를 방지하기 위해 주기적으로 로그 파일에 대한 해시(Hash)값을 별도로 저장하도록 설정할 수 있다. AWS CLI의 validate-logs 등의 명령을 사용하면 원본 데이터와 해시값을 비교하여 로그파일의 무결성을 검증할 수 있다.


Q. Cloudtrail 로그는 어떤 경우에 활용할 수 있나요?


A. 자신이 사용하는 AWS 계정 내에 예측되지 않은 Action이 수행되었을 때, 어느 사용자가(IAM User) 언제(일시) 어디서(IP주소값) 어떤 명령을(API 종류) 내렸는지 사후 추적할 수 있다. 이외에도 Cloudtrail 로그는 다양한 용도로 사용될 수 있으니 반드시 활성화 할 것을 권장한다.


 


3-2 보안/감사를 위한 Config 설정

AWS Config는 AWS 계정 내에서 생성/변경/삭제된 각종 리소스 내역을 단위 시간별로 기록하고, 변경사항 및 리소스간 매핑 내역을 손쉽게 확인할 수 있도록 가시성을 제공하는 서비스



[AWS Management Console] > [Config] > [Get started]


Step 1. Settings

AWS Config 활성화



Step2. AWS Config Rules


AWS Config Rules은 현재 계정의 환경 설정이 권장하는 보안 규격에 부합하는지를 정기적으로 점검해주는 서비스이다.


AWS Config Rule 설정



각 항목을 선택하여 "Cloudtrail이 활성화되어 있는지", "EIP가 ENI에 매핑되어 있는지, 미사용중은 아닌지", "EBS Volume은 암호화되어 있는지", "루트 계정에 EFA가 설정되어 있는지" 등을 주기적으로 체크할 수 있다. AWS Config Rule에서 체크하는 항목은 주기적으로 늘어나고 있다.



[AWS Management Console] > [Config] > [Resources 선택] > [Look up] > [하단, 리스트에서 확인할 Resources 선택]




Config Resource Inventory



Config Resource Inventory 확인




선택한 Resource의 정보, 연관 Resource, 변경 상태, CloudTrail Event log의 정보 등을 확인할 수 있다.




여기서 잠깐 Q&A


Q. CloudTrail과 Config 서비스의 차이점은 무엇인가요?


A. CloudTrail, Config 모두 보안/감사와 관련된 서비스이다. 차이점은 CloudTrail의 경우 해당 AWS 계정 단위의 API 호출 데이터 수집이 주목적이고, Config의 경우 AWS 리소스간의 연관관계 및 히스토리를 보여주는 것이 주목적이고, Config의 경우 AWS 리소스간의 연관관계 및 히스토리를 보여주는 것이 주 목적이다. 따라서 두 가지 서비스를 상호보완적으로 이용하면 AWS 보안/감사 수준을 한 차원 더 높일 수 있다.


 



3-3 루트 계정 MFA 설정

AWS에서는 AWS Root Account 및 IAM User가 추가인증도구(MFA)를 사용하여 인증하도록 구성할 수 있으며, 이를 통해 계정 보안을 더욱 향상시킬 수 있다. MFA 수단으로는 물리 OTP, 가상 OTP, SMS 등을 사용할 수 있다. Root Account에 가상 OTP를 설정해보자.


AWS 루트 계정 MFA 설정



MFA 기기 선택



MFA 설정



Mobile Application Market에서 OTP Application(Google OTP 등)을 다운받고, QR Code를 스캔하여 출력되는 코드를 순서대로 2번 입력한다. 해당 설정 이후부터는 OTP Application에 표시되는 OTP code를 반드시 패스워드와 함께 입력해야 로그인할 수 있다.




여기서 잠깐 Q&A


Q. 지원하는 MFA 수단은 어떤 것들이 있나요?


A. 크게 세 가지를 지원한다. 첫 번째는 물리 MFA 디바이스이다. 가장 보안성이 높으며 전용 물리 디바이스를 구매하여 사용한다. 두 번째는 구글 OTP같은 가상 MFA 디바이스이다. 보안성은 다소 떨어지지만 물리 MFA 디바이스처럼 별도 구매 비용이 필요 없는 장점이 있다. 세 번째는 SMS이다. 문자메시지를 통해 OTP Code를 제공받기 때문에 물리/가상 MFA 디바이스와 달리 배터리 만룐아 분실에 대한 리스트가 상대적으로 적은 장점이 있다.


 



3-4 패스워드 정책 설정


IAM User가 AWS Management Console 로그인용 암호를 설정할 때, 일정한 암호 규칙을 만족하도록 패스워드 정책을 설정할 수 있다.




[AWS Management Console] > [IAM] > [Account Settings]



패스워드 정책 설정




대소문자, 패스워드 길이, 특수문자, 유효기간 등 암호 규칙과 관련된 여러 가지 설정이 가능하다.






LIST